summaryrefslogtreecommitdiff
path: root/keyboards/jd45
diff options
context:
space:
mode:
authorChristopher Browne <cbbrowne@ca.afilias.info>2016-06-22 11:26:26 -0400
committerChristopher Browne <cbbrowne@ca.afilias.info>2016-06-22 11:26:26 -0400
commitb0caf32741cf415a45333828f1661d9f6b72570f (patch)
tree5e2b8203ab232c0a89264e96716ebf1a859f6189 /keyboards/jd45
parentee3c7892ad585e2e702d8975420d25ae052d97bb (diff)
parent8c1bfdf0bd9aae13d8722fd107deca40ffc7932c (diff)
Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware
Diffstat (limited to 'keyboards/jd45')
-rw-r--r--keyboards/jd45/Makefile71
-rw-r--r--keyboards/jd45/config.h80
-rw-r--r--keyboards/jd45/jd45.c81
-rw-r--r--keyboards/jd45/jd45.h13
-rw-r--r--keyboards/jd45/keymaps/default/compiled.hex1113
-rw-r--r--keyboards/jd45/keymaps/default/keymap.c31
-rw-r--r--keyboards/jd45/keymaps/justin/compiled.hex1153
-rw-r--r--keyboards/jd45/keymaps/justin/keymap.c101
8 files changed, 2643 insertions, 0 deletions
diff --git a/keyboards/jd45/Makefile b/keyboards/jd45/Makefile
new file mode 100644
index 0000000000..75d544f16a
--- /dev/null
+++ b/keyboards/jd45/Makefile
@@ -0,0 +1,71 @@
+
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# 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
+# 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 - not yet supported in LUFA
+BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
+MIDI_ENABLE ?= YES # MIDI controls
+# UNICODE_ENABLE ?= YES # Unicode
+BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
+
+ifndef QUANTUM_DIR
+ include ../../Makefile
+endif
diff --git a/keyboards/jd45/config.h b/keyboards/jd45/config.h
new file mode 100644
index 0000000000..ffedb6a1a9
--- /dev/null
+++ b/keyboards/jd45/config.h
@@ -0,0 +1,80 @@
+/*
+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 geekhack
+#define PRODUCT JD45
+#define DESCRIPTION q.m.k. keyboard firmware for JD45
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 13
+
+/* Planck PCB default pin-out */
+#define MATRIX_ROW_PINS { F0, F1, F5, B4 }
+#define MATRIX_COL_PINS { F4, D7, B5, B6, C6, C7, D4, D6, D5, D0, D1, D2, B0 }
+#define UNUSED_PINS
+
+/* 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 DEBOUNCING_DELAY 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)) \
+)
+
+/*
+ * 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/keyboards/jd45/jd45.c b/keyboards/jd45/jd45.c
new file mode 100644
index 0000000000..5437b2bffc
--- /dev/null
+++ b/keyboards/jd45/jd45.c
@@ -0,0 +1,81 @@
+#include "jd45.h"
+
+__attribute__ ((weak))
+void matrix_init_user(void) {
+
+};
+
+__attribute__ ((weak))
+void matrix_scan_user(void) {
+
+};
+
+#define CHANNEL OCR1C
+
+void backlight_init_ports(void)
+{
+
+ // Setup PB7 as output and output low.
+ DDRB |= (1<<7);
+ PORTB &= ~(1<<7);
+
+ // Use full 16-bit resolution.
+ ICR1 = 0xFFFF;
+
+ // I could write a wall of text here to explain... but TL;DW
+ // Go read the ATmega32u4 datasheet.
+ // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on
+
+ // Pin PB7 = OCR1C (Timer 1, Channel C)
+ // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0
+ // (i.e. start high, go low when counter matches.)
+ // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0
+ // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1
+
+ TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010;
+ TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001;
+
+ backlight_init();
+}
+
+void backlight_set(uint8_t level)
+{
+ if ( level == 0 )
+ {
+ // Turn off PWM control on PB7, revert to output low.
+ TCCR1A &= ~(_BV(COM1C1));
+ CHANNEL = 0x0;
+ // Prevent backlight blink on lowest level
+ PORTB &= ~(_BV(PORTB7));
+ }
+ else if ( level == BACKLIGHT_LEVELS )
+ {
+ // Prevent backlight blink on lowest level
+ PORTB &= ~(_BV(PORTB7));
+ // Turn on PWM control of PB7
+ TCCR1A |= _BV(COM1C1);
+ // Set the brightness
+ CHANNEL = 0xFFFF;
+ }
+ else
+ {
+ // Prevent backlight blink on lowest level
+ PORTB &= ~(_BV(PORTB7));
+ // Turn on PWM control of PB7
+ TCCR1A |= _BV(COM1C1);
+ // Set the brightness
+ CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2));
+ }
+}
+
+void matrix_init_kb(void) {
+ #ifdef BACKLIGHT_ENABLE
+ backlight_init_ports();
+ #endif
+
+ matrix_init_user();
+};
+
+void matrix_scan_kb(void) {
+ matrix_scan_user();
+};
diff --git a/keyboards/jd45/jd45.h b/keyboards/jd45/jd45.h
new file mode 100644
index 0000000000..1e9de2123b
--- /dev/null
+++ b/keyboards/jd45/jd45.h
@@ -0,0 +1,13 @@
+#ifndef JD45_H
+#define JD45_H
+
+#include "matrix.h"
+#include "keymap.h"
+#include "backlight.h"
+#include <stddef.h>
+#include <avr/io.h>
+
+void matrix_init_user(void);
+void matrix_scan_user(void);
+
+#endif
diff --git a/keyboards/jd45/keymaps/default/compiled.hex b/keyboards/jd45/keymaps/default/compiled.hex
new file mode 100644
index 0000000000..cc20ee3c53
--- /dev/null
+++ b/keyboards/jd45/keymaps/default/compiled.hex
@@ -0,0 +1,1113 @@
+:100000000C9480010C94C4010C94C4010C94C401A0
+:100010000C94C4010C94C4010C94C4010C94C4014C
+:100020000C94C4010C94C4010C94D40B0C94A60C35
+:100030000C94B2190C94C4010C94C4010C94C40126
+:100040000C94C4010C94C4010C94C4010C94C4011C
+:100050000C94C4010C941A1A0C94C4010C94C4019D
+:100060000C94C4010C946C0E0C94C4010C94C40147
+:100070000C94C4010C94C4010C94C4010C94C401EC
+:100080000C94C4010C94C4010C94C4010C94C401DC
+:100090000C94C4010C94C4010C94C4010C94C401CC
+:1000A0000C94C4010C94C4010C94C401130D350DBF
+:1000B000230E350D230E7A0D9D0D230EF20D050E28
+:1000C0002E112E115D115D119C11BC111213121312
+:1000D000C711121377127712DE12E71212130C13E4
+:1000E0008412841284128412841284128412841260
+:1000F0008412841284128412841284128412841250
+:100100009412A212A912B012BA12290014001A00F5
+:100110000800150017001C0018000C001200130046
+:1001200034002A002B0004001600070009000A0012
+:100130000B000D000E000F00330028000000E1004E
+:100140001D001B00060019000500110010003600FC
+:1001500037003800E50000004800E000E2004C00F5
+:100160002C0000004C0000005000520051004F00D5
+:1001700000000A034A004400340035000000120366
+:100180006700650065006B006800610063006B003C
+:1001900000000403090409027400040100A0FA0924
+:1001A00004000001030101000921110100012240A6
+:1001B000000705810308000A090401000103010288
+:1001C00000092111010001224D00070582030800EA
+:1001D0000A090402000103000000092111010001C5
+:1001E0002236000705830308000A090403000203FE
+:1001F00000000009211101000122200007058403ED
+:100200002000010705040320000112011001000075
+:100210000008EDFE60600100010200010631FF09E7
+:1002200074A1010975150025FF9520750881020943
+:1002300076150025FF952075089102C005010980FB
+:10024000A101850216010026B7001A01002AB70095
+:10025000751095018100C0050C0901A101850316E7
+:100260000100269C021A01002A9C0275109501814A
+:1002700000C005010902A1010901A1000509190138
+:100280002905150025019505750181029501750364
+:1002900081010501093009311581257F9502750815
+:1002A000810609381581257F950175088106050CA1
+:1002B0000A38021581257F950175088106C0C005A1
+:1002C000010906A101050719E029E7150025019597
+:1002D0000875018102950175088101050819012938
+:1002E00005950575019102950175039101050719A1
+:1002F0000029FF150026FF00950675088100C00043
+:1003000011241FBECFEFDAE0DEBFCDBF04B603FE7F
+:1003100024C08091ED029091EE02A091EF02B09185
+:10032000F0028730904BA740B04BB9F41092ED0229
+:100330001092EE021092EF021092F00214BE84B7F7
+:10034000877F84BF88E10FB6F89480936000109295
+:1003500060000FBEE0E0F8E3099511E0A0E0B1E035
+:10036000E8E2F5E402C005900D92A434B107D9F794
+:1003700012E0A4E4B1E001C01D92AD3EB107E1F787
+:100380000E9443090C9492220C9400000895089551
+:10039000279A2F988FEF9FEF909387008093860086
+:1003A0008AE08093800089E1809381000C94692029
+:1003B000282F81110BC080918000877F809380005F
+:1003C00010928D0010928C002F9808952F98809194
+:1003D0008000886080938000233019F48FEF9FEFB6
+:1003E0000FC083E090E0821B9109880F991F2FEFC7
+:1003F0003FEFA90102C0569547958A95E2F7CA01D9
+:1004000090938D0080938C0008950E94C8010C94F5
+:10041000C6010C94C70181E0089581E008950C9411
+:100420000D0208950F931F93CF93DF938C01FC016E
+:10043000C081D181CE010E947618BE010E9446057E
+:10044000EC01B8010E940F02882309F470C1F80181
+:100450008281882309F45BC080914F0181111FC004
+:10046000C431F0E7DF0709F00AC10E94110281E000
+:1004700080934F010E94E41990934E0180934D01A7
+:1004800010924601109248011092470110924A01C1
+:100490001092490110924C0110924B0148C1809179
+:1004A0004D0190914E010E94F019883C910570F425
+:1004B00080914601E82FF0E0EE0FFF1FE95BFE4F51
+:1004C000D183C0838F5F8093460131C1C43120E75F
+:1004D000D20708F024C1C23080E7D80710F5C11553
+:1004E00090E7D90709F0DAC0F8018281882309F47E
+:1004F000BFC00E947D13FFEF24E38CE0F150204049
+:100500008040E1F700C000000E943F1A10C1C431D2
+:10051000F0E7DF0708F0CFC0C23020E7D20708F4C9
+:100520009BC0F8018281882309F4A2C00E94F11BBC
+:10053000811102C00E94D21B0E940E1C90E0909379
+:10054000DE028093DD02C230F0E7DF0721F4809104
+:10055000DD0281607AC0C33020E7D20721F48091A8
+:10056000DD02826072C0C43080E7D80721F4809138
+:10057000DD0284606AC0C53090E7D90719F4809124
+:10058000DD0227C0C630E0E7DE0721F48091DD02FE
+:1005900080615BC0C730F0E7DF0721F48091DD02A6
+:1005A000806253C0C83020E7D20721F48091DD0279
+:1005B00080644BC0C93080E7D80721F48091DD0208
+:1005C000806843C0CA3090E7D90729F48091DD02E2
+:1005D000846088603AC0CB30E0E7DE0721F4809188
+:1005E000DD028E7F32C0CC30F0E7DF0721F480914E
+:1005F000DD028D7F2AC0CD3020E7D20721F4809123
+:10060000DD028B7F22C0CE3080E7D80719F48091BD
+:10061000DD021AC08091DD02CF3090E7D90711F4D6
+:100620008F7E13C0C031E0E7DE0711F48F7D0DC06F
+:10063000C131F0E7DF0711F48F7B07C0C231D0472B
+:1006400011F48F7702C08B7F877F8093DD028091CA
+:10065000DD020E94121C6BC0C11580E7D80741F073
+:10066000C130D047F1F081E080934401809345018F
+:10067000C801DF91CF911F910F910C940B02C431EF
+:1006800020E7D20708F04BC0C23080E7D80708F057
+:1006900048CFC11590E7D90709F42BCFC130D04717
+:1006A00011F7F8018281882319F38091CC028160CF
+:1006B0008093CC023CC0C333E0E7DE07A1F4F8012D
+:1006C0008281882321F01092440182E017C080913A
+:1006D0004401811106C086E20E94D20F86E20E9488
+:1006E0009A1082E019C0C433D04709F0BCCFF8019A
+:1006F0008281882331F01092450180E20E94E91046
+:1007000016C080914501811106C087E20E94D20F78
+:1007100087E20E949A1080E20E94F01008C0C33362
+:10072000F0E7DF0761F2C433D04709F39CCF80E0E4
+:10073000DF91CF911F910F9108950C9405020C94B5
+:1007400009022DE0729FF001112434E3839FE00D34
+:10075000F11D1124E60FF11DEE0FFF1FE65FFE4FA6
+:10076000859194910E945805811540E5940708F001
+:1007700047C0811520E4920708F013C1883E910517
+:1007800020F5803E910508F07CC1883A910578F407
+:10079000853A910508F0A5C08130910509F471C131
+:1007A00008F42EC18430910508F06BC129C18B3B40
+:1007B000910508F4A1C0803C910508F421C1FC0119
+:1007C000EE0FFF1FE657F040E6C0811530E29307B9
+:1007D00058F4811541E0940708F053C1803F91051A
+:1007E00008F40EC190650895811520E3920708F082
+:1007F000D5C0FC01FF70EE0FFF1FE65FFE4FCBC0C0
+:10080000811535E5930708F043C0811544E5940749
+:1008100008F0DEC0811522E5920708F5811531E563
+:10082000930708F0C1C0482F437021E030E002C0B8
+:10083000220F331F4A95E2F73C68AC0164E05695FD
+:1008400047956A95E1F74370342B8F7086958695AE
+:1008500040E2849FC0011124822B932B0895282FFE
+:1008600026952695AC01437055278115934508F0D0
+:10087000A0C080E2289F9001112481E090E002C096
+:10088000880F991F4A95E2F7822B932B9C68089555
+:100890008F3240E7940790F48F3120E7920708F0F9
+:1008A000A2C0811536E5930708F497C09C01305625
+:1008B0002115304108F0A4C09F7093C0803320E719
+:1008C000920709F497C008F492C0813340E7940777
+:1008D00009F493C08233904709F092C080E093ED11
+:1008E0000895853A910509F48EC0863A910509F07C
+:1008F0008DC082E890E40895883A910509F489C092
+:10090000893A910509F488C08A3A910509F487C0AB
+:100910008B3A910509F486C08C3A910509F485C09B
+:100920008D3A910509F484C0803B910509F483C098
+:100930008E3A910509F482C08F3A910509F481C07D
+:10094000813B910509F480C0823B910509F47FC089
+:10095000833B910509F47EC0843B910509F47DC079
+:10096000853B910509F47CC0863B910509F47BC069
+:10097000873B910509F47AC0883B910509F479C059
+:10098000893B910509F478C08A3B910509F477C049
+:1009900080E094E408958591949108959927906C4E
+:1009A00008959F70906A0895982F8827816F906AA4
+:1009B000089590E2299F9001112481E090E002C007
+:1009C000880F991F4A95E2F7822B932B9A68089516
+:1009D000982F8827846F906A08958F719927982F90
+:1009E0008827906208958F519047946D089580E014
+:1009F00091ED089580E090ED089580E092ED0895E6
+:100A000080E090E0089581E890E4089583E890E420
+:100A1000089582EE94E4089589EE94E408958AEEB0
+:100A200094E4089585EB94E4089586EB94E40895A6
+:100A300087EB94E408958CEC94E408958DEC94E4B1
+:100A4000089583E895E408958AE895E4089582E995
+:100A500095E4089584E995E4089581E296E4089583
+:100A600083E296E4089584E296E4089585E296E4AC
+:100A7000089586E296E4089587E296E408958AE26E
+:100A800096E4089580E090E0089508959DE0799FB0
+:100A9000F001112494E3899FE00DF11D1124E60F6C
+:100AA000F11DEE0FFF1FE65FFE4F859194910895B3
+:100AB0008238910549F1B0F48133910509F458C0A9
+:100AC00048F48932910509F44EC08A32910509F43F
+:100AD00054C008958533910509F440C089339105C8
+:100AE00099F00895833E910529F138F4803E9105EF
+:100AF00091F0823E9105A1F00895863E9105F9F0AE
+:100B0000873E910531F108952091DD0220FD3AC024
+:100B100021FD38C008958091DD0280FD35C032C0CE
+:100B20008091DD0282FF32C08091DD0284FD30C001
+:100B300083EE39C08091DD0282FD28C0F5CF80911F
+:100B4000DD0283FF27C08091DD0284FD21C087EE96
+:100B50002AC08091DD0283FD1DC0F5CF8091DD02AA
+:100B600085FD1AC01BC08091DD0285FD17C014C031
+:100B70008091DD0286FD14C015C08091DD0286FDE6
+:100B800011C00EC080EE0FC089E30DC082EE0BC015
+:100B900080E009C086EE07C089E205C085E303C096
+:100BA0008AE201C081E390E0089508950C94D50590
+:100BB000E82FF0E0EF5DFE4F8081E82FEF70F0E06E
+:100BC00082958F7021E030E0A90102C0440F551FCB
+:100BD0008A95E2F740A308950F931F93CF93DF9375
+:100BE00085B7806885BF85B7806885BFC3E0D0E0E2
+:100BF00001E010E0FE01EF5DFE4F8081E82FEF7015
+:100C0000F0E021A182958F70A80102C0440F551F0A
+:100C10008A95E2F7CA01822B81A38C2F0E94D80506
+:100C2000219740F78CE090E061E070E0FC01EC5E21
+:100C3000FE4F2081E22FEF70F0E042A122952F704D
+:100C4000DB0102C0AA0FBB1F2A95E2F79D01242BEE
+:100C500022A3019758F7DF91CF911F910F910C9428
+:100C60009D03EF92FF920F931F93CF93DF9308E5BD
+:100C700011E0C3E0EE24E394F12CD5E08C2F0E9428
+:100C8000D8058CE090E040E050E0FC01EC5EFE4FC7
+:100C90006081E62FEF70F0E020A130E062956F7088
+:100CA00002C0359527956A95E2F720FD09C09701A6
+:100CB000082E02C0220F331F0A94E2F7422B532B57
+:100CC000019718F7F801929182918F018417950787
+:100CD00021F051834083D09300018C2F0E94D805CE
+:100CE000C15060F68091000187FD2CC08150809337
+:100CF00000018F3F39F08FE99FE00197F1F700C0C5
+:100D0000000020C0809156019091570190935F019F
+:100D100080935E01809154019091550190935D0103
+:100D200080935C01809152019091530190935B01FB
+:100D300080935A01809150019091510190935901F3
+:100D4000809358010E949F0381E0DF91CF911F9112
+:100D50000F91FF90EF900895E82FF0E0EE0FFF1F46
+:100D6000E85AFE4F808191810895089580916C0129
+:100D700008950F931F93CF93DF9300D000D01F925D
+:100D8000CDB7DEB79C018091610190916201281777
+:100D9000390709F493C03093620120936101223E28
+:100DA0003105F1F1293E310559F12A3E310559F15C
+:100DB000253B310559F1263B310551F1273B3105E2
+:100DC00051F12C3C310561F12D3C310531F12338D5
+:100DD00081E0380729F12A3891E0390709F12239F1
+:100DE00081E03807E9F0243991E03907C9F0213270
+:100DF00082E03807B9F0233292E0390789F415C050
+:100E000090E040E114C090E040E211C092E001C0E7
+:100E100094E040E00CC090E1FCCF90E040E407C0DB
+:100E200090E0F7CF90E044E002C090E041E089011B
+:100E30008DEF4C839D830E94560E80E00E94560EDB
+:100E400082E00E94560E4C81842F0E94560E9D8196
+:100E5000892F0E94560E80E00E94560E80E00E946C
+:100E6000560E80E00E94560E80E00E94560E809141
+:100E7000E302843019F583E089831B830A8380931E
+:100E8000E9008FEF9091E800815095FD06C095ED47
+:100E90009A95F1F700008111F5CF8091E80085FF68
+:100EA0000DC040E050E063E070E0CE0101960E948A
+:100EB000C4098091E8008E778093E8000F900F902E
+:100EC0000F900F900F90DF91CF911F910F91089588
+:100ED000CF93DF9300D01F92CDB7DEB72091E3020E
+:100EE000243021F522E029839B838A8383E0809349
+:100EF000E9008FEF9091E800815095FD06C095EDD7
+:100F00009A95F1F700008111F5CF8091E80085FFF7
+:100F10000DC040E050E063E070E0CE0101960E9419
+:100F2000C4098091E8008E778093E8000F900F90BD
+:100F30000F90DF91CF910895CF93DF93EC018DEF68
+:100F40000E94560E80E00E94560E83E00E94560ECC
+:100F500088810E94560E89810E94560E8A810E94C5
+:100F6000560E8B810E94560E8C810E94560E80E098
+:100F70000E94560E8091E3028430F9F482E080935F
+:100F8000E9008FEF9091E800815095FD06C095ED46
+:100F90009A95F1F700008111F5CF8091E80085FF67
+:100FA0000CC040E050E065E070E0CE010E94C40952
+:100FB0008091E8008E778093E800DF91CF910895CB
+:100FC000EF92FF920F931F93CF93DF93EC018DEF7E
+:100FD0000E94560E8E017E0188E0E80EF11CF80199
+:100FE00081918F010E94560E0E151F05C1F7809149
+:100FF000E302843039F581E08093E9008FEF90912E
+:10100000E800815095FD06C0F5EDFA95F1F7000076
+:101010008111F5CF8091E80085FF14C040E050E0D9
+:1010200068E070E0CE010E94C4098091E8008E77EC
+:101030008093E80088E0FE01A4E6B1E001900D9203
+:101040008A95E1F7DF91CF911F910F91FF90EF907B
+:1010500008958091E202811109C00E94590B0E94FB
+:10106000B60B8091E20084608093E20008951092B4
+:10107000E2020895089508950C94A7192091600143
+:101080002F5F822F62E30E942222992319F020937E
+:10109000600108951092600180916301882371F1CD
+:1010A0008091E302843041F58091E9008F702091B6
+:1010B000EC00922F917020FD90E8892B94E09093A2
+:1010C000E9009091EB0090FF14C09091EE0097FF23
+:1010D00010C09091E80095FF03C01092F100F9CF85
+:1010E0009091E80090FF05C09091E8009E77909362
+:1010F000E8008F708093E90010926301089542E048
+:1011000061EC81E00E94D30A42E061EC82E00E943F
+:10111000D30A42E061EC83E00E94D30A42E261EC30
+:1011200084E00C94D30A8091E502833009F453C023
+:1011300030F4813071F0823009F48CC008958A3027
+:1011400009F478C08B3009F45EC0893009F09AC088
+:1011500020C08091E402813A09F094C08091E800B7
+:10116000877F8093E8008091E8029091E902892BC3
+:1011700021F468E084E691E003C060E080E090E064
+:1011800070E00E940F0A8091E8008B778093E8005E
+:1011900008958091E402813209F074C08091E802E0
+:1011A0009091E902892B09F06DC08091E800877F5A
+:1011B0008093E8008091E80082FD05C08091E30201
+:1011C0008111F8CF5FC08091F10080936C01809114
+:1011D000E8008B7753C08091E402813A09F052C055
+:1011E0008091E8029091E902892B09F04BC080912F
+:1011F000E800877F8093E8008091E80080FFFCCFC3
+:1012000080910B0136C08091E4028132D9F5809142
+:10121000E8029091E902892BA9F58091E800877F87
+:101220008093E8000E94080B8091E60280930B01F6
+:101230000C947D138091E402813221F58091E800C5
+:10124000877F8093E8000E94080B8091E7028093DB
+:101250006D0108958091E402813AA1F48091E80043
+:10126000877F8093E8008091E80080FFFCCF809129
+:101270006D018093F1008091E8008E778093E80003
+:101280000C94080B089584B7877F84BF88E10FB65C
+:10129000F89480936000109260000FBE80E8809305
+:1012A0006100109261000E94EA0E0E94590B0E9498
+:1012B000B60B8091E20084608093E20078940E94F3
+:1012C000580E0E943B0E0E94EC0E81E091E00E94BD
+:1012D000960E0E94F40EFDCF292F332723303105BF
+:1012E000C9F064F42130310581F02230310509F074
+:1012F00043C084E790E026E931E042C02132310565
+:10130000F1F02232310541F137C082E190E02AE06C
+:1013100032E036C099278130910541F08230910545
+:1013200041F0892B49F5E2E9F1E005C0EEE7F1E093
+:1013300002C0E2E7F1E0849190E09F0121C06430B7
+:10134000D8F4E62FF0E0EE0FFF1FEF5CFE4F208198
+:10135000318189E090E014C0643070F470E0FB01EA
+:10136000EE0FFF1FE75DFE4F20813181FB01EB5D3A
+:10137000FE4F808190E004C080E090E020E030E00B
+:10138000FA01318320830895CF92DF92EF92FF928A
+:101390000F931F93CF93DF93EC018B016A010E949F
+:1013A000270B811133C0C114D10439F0F6018081BB
+:1013B0009181081B190BC80FD91FE12CF12C0115C5
+:1013C000110519F18091E80085FD16C08091E800B3
+:1013D0008E778093E800C114D10449F0F601808132
+:1013E0009181E80EF91EF182E08285E00FC00E9433
+:1013F000270B882321F30AC089918093F1000150C3
+:101400001109FFEFEF1AFF0ADACF80E0DF91CF91E9
+:101410001F910F91FF90EF90DF90CF900895209152
+:10142000EA023091EB022617370748F06115710583
+:1014300039F42091E8002E772093E80001C0B9012B
+:1014400040E061157105A9F12091E302222309F41E
+:1014500043C0253009F442C02091E80023FD40C07C
+:101460002091E80022FD32C02091E80020FFE9CF62
+:101470004091F3002091F20030E0342BFC01CF01C9
+:101480006115710559F02830310540F48191809340
+:10149000F100615071092F5F3F4FF1CF41E02830DB
+:1014A000310509F040E02091E8002E772093E80014
+:1014B000C8CF4111C9CF0AC08091E302882361F0EF
+:1014C000853061F08091E80083FD0AC08091E800DA
+:1014D00082FFF2CF80E0089582E0089583E00895CE
+:1014E00081E008952091EA023091EB022617370738
+:1014F00048F06115710539F42091E8002E772093AA
+:10150000E80001C0B901FC0120E06115710591F10D
+:101510008091E302882309F440C0853009F43FC07C
+:101520008091E80083FD3DC08091E80082FD2FC0DE
+:101530008091E80080FFE9CF2091F3008091F200D4
+:1015400090E0922B6115710559F08830910540F4B7
+:1015500024912093F1003196615071090196F2CFE8
+:1015600021E0089709F020E08091E8008E778093D1
+:10157000E800CBCF2111CCCF0AC08091E3028823B1
+:1015800061F0853061F08091E80083FD0AC08091B0
+:10159000E80082FFF2CF80E0089582E0089583E0C2
+:1015A000089581E00895982F973058F59093E900B9
+:1015B000981739F07091EC002091ED005091F000F7
+:1015C00003C0242F762F50E021FF19C03091EB008B
+:1015D0003E7F3093EB003091ED003D7F3093ED0086
+:1015E0003091EB0031603093EB007093EC0020936E
+:1015F000ED005093F0002091EE0027FF07C09F5FA1
+:10160000D3CF8F708093E90081E0089580E0089542
+:101610008091E40287FF11C08091E80082FD05C03F
+:101620008091E3028111F8CF11C08091E8008B779F
+:101630000BC08091E302882349F08091E80080FF8D
+:10164000F8CF8091E8008E778093E800089520918C
+:10165000E4003091E50095E64091EC00842F817024
+:1016600040FF22C08091E80080FD1CC08091E30211
+:10167000882391F0853091F08091EB0085FD10C0BA
+:101680004091E4005091E5004217530729F39A0175
+:10169000915011F784E0089582E0089583E0089561
+:1016A00081E0089580E008954091E80042FFDECF98
+:1016B00008950E94C70B0E94CF0BE0EEF0E08081FE
+:1016C00081608083E8EDF0E080818F77808319BCB2
+:1016D000A7EDB0E08C918E7F8C9380818F7E80838C
+:1016E0001092E20208950F931F93CF93DF930E940D
+:1016F000C70B0E94CF0BC8EDD0E088818F7788831D
+:1017000088818068888388818F7D888319BC109246
+:10171000E3021092DF021092E1021092E00200EE6A
+:1017200010E0F80180818B7F8083888181608883CD
+:1017300042E060E080E00E94D30AE1EEF0E08081C8
+:101740008E7F8083E2EEF0E0808181608083808103
+:1017500088608083F80180818E7F808388818061AA
+:101760008883DF91CF911F910F910895E8EDF0E00C
+:1017700080818F7E8083E7EDF0E0808181608083CF
+:1017800084E082BF81E08093E2020C94730BE8ED69
+:10179000F0E080818E7F80831092E20008951092A5
+:1017A000DA001092E10008951F920F920FB60F9287
+:1017B00011242F933F934F935F936F937F938F9356
+:1017C0009F93AF93BF93EF93FF938091E10082FFCC
+:1017D0000BC08091E20082FF07C08091E1008B7F07
+:1017E0008093E1000E943E088091DA0080FF1FC0D4
+:1017F0008091D80080FF1BC08091DA008E7F80939B
+:10180000DA008091D90080FF0DC080E189BD82E1BE
+:1018100089BD09B400FEFDCF81E08093E3020E9400
+:10182000290805C019BC1092E3020E943708809174
+:10183000E10080FF19C08091E20080FF15C0809117
+:10184000E2008E7F8093E2008091E20080618093CD
+:10185000E2008091D80080628093D80019BC85E0B6
+:101860008093E3020E943B088091E10084FF30C036
+:101870008091E20084FF2CC080E189BD82E189BDB6
+:1018800009B400FEFDCF8091D8008F7D8093D800F1
+:101890008091E1008F7E8093E1008091E2008F7E55
+:1018A0008093E2008091E20081608093E200809169
+:1018B000DF02882311F084E007C08091E30087FDF8
+:1018C00002C081E001C083E08093E3020E943C08F3
+:1018D0008091E10083FF29C08091E20083FF25C051
+:1018E0008091E100877F8093E10082E08093E302B2
+:1018F0001092DF028091E1008E7F8093E100809161
+:10190000E2008E7F8093E2008091E200806180930C
+:10191000E20042E060E080E00E94D30A8091F000A3
+:1019200088608093F0000E943A08FF91EF91BF9188
+:10193000AF919F918F917F916F915F914F913F9167
+:101940002F910F900FBE0F901F9018951F920F921E
+:101950000FB60F9211242F933F934F935F936F9382
+:101960007F938F939F93AF93BF93CF93DF93EF9327
+:10197000FF93C091E900CF708091EC00D82FD17017
+:1019800080FDD0E81092E9008091F000877F80937D
+:10199000F00078940E94EA0C1092E9008091F00027
+:1019A00088608093F000CD2BCF70C093E900FF9149
+:1019B000EF91DF91CF91BF91AF919F918F917F91E7
+:1019C0006F915F914F913F912F910F900FBE0F90AC
+:1019D0001F9018951F93CF93DF93CDB7DEB7AA97CB
+:1019E0000FB6F894DEBF0FBECDBFE4EEF2E088E0A4
+:1019F0008E0F9091F10091938E13FBCF0E9493086C
+:101A00008091E80083FF1FC18091E4029091E5027C
+:101A1000492F50E04A30510508F015C1FA01EA5A41
+:101A2000FF4F0C944222803881F0823809F00BC1BC
+:101A30008091E8028F708093E9008091EB0085FB34
+:101A4000882780F91092E90006C08091E002909109
+:101A5000E102911182609091E800977F9093E800F5
+:101A60008093F1001092F100C8C0282F2D7F09F05B
+:101A7000EAC0882319F0823061F0E5C08091E60267
+:101A8000813009F0E0C0933009F080E08093E102FA
+:101A90002BC08091E602811127C08091E8028F70EF
+:101AA00009F4D1C08093E9002091EB0020FF1CC015
+:101AB000933021F48091EB00806214C09091EB0090
+:101AC00090619093EB0021E030E0A90102C0440F47
+:101AD000551F8A95E2F74093EA001092EA00809140
+:101AE000EB0088608093EB001092E9008091E800A1
+:101AF000877F86C08111A7C01091E6021F77809171
+:101B0000E3008078812B8093E3008091E800877F59
+:101B10008093E8000E94080B8091E80080FFFCCFD2
+:101B20008091E30080688093E300111102C082E09D
+:101B300001C083E08093E30286C08058823008F0C1
+:101B400082C08091E6029091E7028C3D53E09507B8
+:101B500079F583E08A838AE289834FB7F894DE01BE
+:101B6000139620E03EE051E2E32FF0E0509357005F
+:101B7000E49120FF03C0E295EF703F5FEF708E2F7E
+:101B800090E0EA3010F0C79601C0C0968D939D9307
+:101B90002F5F243149F74FBF8091E800877F809302
+:101BA000E8006AE270E0CE0101960E940F0A14C0BC
+:101BB000AE014F5F5F4F6091E8020E946C09BC016B
+:101BC000009709F440C09091E800977F9093E80057
+:101BD00089819A810E94720A8091E8008B778093B4
+:101BE000E80031C0803879F58091E800877F8093E4
+:101BF000E8008091DF028093F1008091E8008E7709
+:101C00008093E8000E94080B1EC081111CC09091B7
+:101C1000E6029230C0F48091E800877F8093E8006C
+:101C20009093DF020E94080B8091DF02811106C0B1
+:101C30008091E30087FD02C081E001C084E08093D1
+:101C4000E3020E947F088091E80083FF0AC0809130
+:101C5000E800877F8093E8008091EB0080628093AA
+:101C6000EB00AA960FB6F894DEBF0FBECDBFDF9192
+:101C7000CF911F910895CF938091E3028823A1F023
+:101C8000C091E900CF709091EC00892F817090FD98
+:101C900080E8C82B1092E9008091E80083FD0E9443
+:101CA000EA0CCF70C093E900CF9108950C94650EB3
+:101CB00087E68093CC001092CD0088E08093C90025
+:101CC00086E08093CA00789408959091C80095FFAB
+:101CD000FCCF8093CE0008951F920F920FB60F9203
+:101CE00011242F933F934F938F939F93EF93FF93E1
+:101CF00080916F0190E09C012F5F3F4F40916E01FA
+:101D0000421741F03091CE00FC01E059FE4F308384
+:101D100020936F01FF91EF919F918F914F913F9190
+:101D20002F910F900FBE0F901F90189590937502F2
+:101D3000809374020895E0917402F09175023097D7
+:101D400021F00190F081E02D099480E00895E09168
+:101D50007402F0917502309721F00280F381E02D3A
+:101D600009940895E0917402F0917502309721F082
+:101D70000480F581E02D099408952091720230913C
+:101D800073028217930771F090937302809372022B
+:101D9000E0917402F0917502309721F00680F7818E
+:101DA000E02D0994089520917002309171028217FC
+:101DB000930771F09093710280937002E091740226
+:101DC000F0917502309721F00084F185E02D09949F
+:101DD000089508950C94E90E0E94DB190E94EC0509
+:101DE0000E94A91A0C9469205F926F927F928F9241
+:101DF0009F92AF92BF92CF92DF92EF92FF920F939A
+:101E00001F93CF93DF9300D000D01F92CDB7DEB7E2
+:101E10000E9431069FE7C92E92E0D92E03E010E020
+:101E2000AA24A394B12C502E802F0E94AC064C0102
+:101E3000F601729062906F01682679266114710430
+:101E4000A1F40150110978F78FEF89838A831B82EF
+:101E50000E94E4198160782F9D838C8349815A8187
+:101E60006B818D810E94A40F38C08091CC0281FDCE
+:101E70000E94B5062CE030E07501022E02C0EE0C87
+:101E8000FF1C0A94E2F7C70186219721892B09F1EB
+:101E900029835A828E209F2091E0892809F490E0BE
+:101EA0009B830E94E4198160782F9D838C834981F4
+:101EB0005A816B818D810E94A40F000F111FF801C0
+:101EC000E958FD4F80819181E826F926F182E08270
+:101ED00004C02150310980F6B4CF0E949A1D1091A0
+:101EE00076020E949B0E1817D1F00E949B0E8093E1
+:101EF00076020F900F900F900F900F90DF91CF917F
+:101F00001F910F91FF90EF90DF90CF90BF90AF9017
+:101F10009F908F907F906F905F900C94D6050F905C
+:101F20000F900F900F900F90DF91CF911F910F9115
+:101F3000FF90EF90DF90CF90BF90AF909F908F90E9
+:101F40007F906F905F900895CF93DF93CDB7DEB70A
+:101F50002B970FB6F894DEBF0FBECDBF4F835887C7
+:101F600069877A878B87DE01119686E0FD011192E1
+:101F70008A95E9F785E0FE01379601900D928A95E2
+:101F8000E1F749815A816B817C818D819E810E941C
+:101F90001B162B960FB6F894DEBF0FBECDBFDF9198
+:101FA000CF910895CF93882309F4C2C0C82F8238F7
+:101FB00059F40E949B0E81FDBBC089E30E94F51875
+:101FC0000E94781989E30CC0833879F40E949B0E33
+:101FD00080FDAEC083E50E94F5180E94781983E564
+:101FE0000E941219CF910C947819843859F40E94E8
+:101FF0009B0E82FD9DC087E40E94F5180E9478190F
+:1020000087E4EECF8CEF8C0F813A48F48C2F0E943E
+:10201000D21F81118DC08C2F0E94F518E3CF80E272
+:102020008C0F883048F4C77081E001C0880FCA95D2
+:10203000EAF70E943119D6CF8BE58C0F833078F404
+:10204000C53A29F0C63A31F083E890E005C081E84E
+:1020500090E002C082E890E0CF910C94BD0E88E53C
+:102060008C0F833108F064C0C83A39F1C93A41F1A4
+:10207000CA3A49F1CB3A51F1CC3A59F1CD3A61F132
+:10208000C03B69F1CE3A71F1CF3A79F1C13B81F1B0
+:10209000C23B89F1C33B91F1C43B99F1C53BA1F12E
+:1020A000C63BA9F1C73BB1F1C83BB9F1C93BC1F18E
+:1020B000CA3BC9F180E090E038C082EE90E035C0C4
+:1020C00089EE90E032C08AEE90E02FC085EB90E080
+:1020D0002CC086EB90E029C087EB90E026C08CEC0A
+:1020E00090E023C08DEC90E020C083E891E01DC01B
+:1020F0008AE891E01AC082E991E017C084E991E092
+:1021000014C081E292E011C083E292E00EC084E24A
+:1021100092E00BC085E292E008C086E292E005C042
+:1021200087E292E002C08AE292E0CF910C94D30E53
+:10213000CF910895882309F44BC0823859F40E9446
+:102140009B0E81FF45C089E30E94F5180E94781913
+:1021500089E30CC0833871F40E949B0E80FF38C065
+:1021600083E50E94F5180E94781983E50E941219F0
+:102170000C947819843859F40E949B0E82FF28C071
+:1021800087E40E94F5180E94781987E4EFCF9CEF4E
+:10219000980F913A58F390E2980F983050F4877066
+:1021A00091E001C0990F8A95EAF7892F0E943719AB
+:1021B000DFCF9BE5980F933020F480E090E00C9403
+:1021C000BD0E885A833120F480E090E00C94D30E49
+:1021D0000895882321F00E9431190C9478190895EC
+:1021E000882321F00E9437190C94781908957F9262
+:1021F0008F929F92AF92BF92CF92DF92EF92FF9217
+:102200000F931F93CF93DF931F92CDB7DEB77C015F
+:10221000C62E772EFC01058102950F7012811111D7
+:102220000E944E190E94EE18882379F0112369F05C
+:1022300080E28C0D883048F082E00E94D7180E941E
+:10224000EE1891E0D82ED92601C0D12CE72DE295C9
+:10225000EF70F0E0E05AFF4F0C944222872D807F10
+:10226000072D0F70882311F00295007F112389F04C
+:10227000002309F499C180E28C0D883020F4802F6E
+:102280000E94311903C0802F0E9441190E947819C1
+:102290008BC18C2D0E949A10002309F4C3C180E2E7
+:1022A0008C0D883020F4802F0E94371903C0802FB6
+:1022B0000E9447190E947819B5C1872D807F972DFC
+:1022C0009F70803211F4892F03C0892F8295807FFF
+:1022D000CC2021F0F1E0CF16A1F01DC0112339F080
+:1022E000002319F1013009F50E9461199BC10023F7
+:1022F00019F0013009F496C189830E94641989811B
+:1023000010C1112321F0063008F08CC10EC0053039
+:1023100008F088C106C1112359F0002331F0F701FC
+:10232000958190FF41C19F7095830E94E9107AC109
+:10233000002309F4F6C03EC1872D869586958370EB
+:1023400090E0009719F0019761F06CC1112321F022
+:102350008C2D972D937002C080E090E00E94BD0EFE
+:1023600061C1112321F08C2D972D937002C080E064
+:1023700090E00E94D30E56C18C2D112319F00E94BB
+:10238000A21C02C00E940A1D0E948F1D4BC1872DF6
+:10239000837009F052C0111145C18C2D829586952C
+:1023A0008770880F880F9C2D9F70892E912CA12CEF
+:1023B000B12C082E04C0880C991CAA1CBB1C0A94C2
+:1023C000D2F7C4FE14C00FE010E020E030E0B90105
+:1023D000A80104C0440F551F661F771F8A95D2F7C6
+:1023E000CB01BA01609570958095909503C060E02F
+:1023F00070E0CB01272D26952695237030E0223002
+:10240000310569F02330310589F0682979298A2955
+:102410009B292130310571F00E94631703C168299F
+:1024200079298A299B290E947F17FCC00E94631783
+:10243000C501B4010E944717F5C0112319F0872D7B
+:10244000817001C08695882309F4ECC08C2D82959B
+:1024500086958770880F880F9C2D9F70892E912CF0
+:10246000A12CB12C082E04C0880C991CAA1CBB1CE2
+:102470000A94D2F7C4FE14C00FE010E020E030E070
+:10248000B901A80104C0440F551F661F771F8A9524
+:10249000D2F7CB01BA01609570958095909503C0F5
+:1024A00060E070E0CB01272D269526952370422F02
+:1024B00050E04230510569F04330510589F06829F8
+:1024C00079298A299B294130510571F00E943D18D4
+:1024D000A9C0682979298A299B290E945918A2C074
+:1024E0000E943D18C501B4010E9421189BC08C2D8B
+:1024F00090E0FC01E05EF109E531F10508F050C023
+:10250000E059FF4F0C9442220C2D0F70872D8F71D4
+:10251000112321F00E94BA17802F07CF0E94DB17EA
+:10252000802F0E94F0107EC0112341F0053008F08A
+:1025300079C0872D8F710E94001874C0063008F092
+:1025400071C0F7CF112339F0872D8F710E94BA1710
+:1025500069C01123C9F3872D8F710E94DB1762C0F8
+:10256000112329F0872D8F710E94A5175BC00E944F
+:102570009B1758C0112351F0172D1F71812F0E94F6
+:10258000BA1763E0812F0E94CE184CC081E00E94F0
+:10259000D718023008F446C082E00E94D71842C023
+:1025A000112331F0002381F28C2D0E94D20F3AC00A
+:1025B000002389F28C2D0E949A1034C0472D4F7051
+:1025C0006C2DC7010E9442050E94BF162BC011113D
+:1025D00029C0472D4F7050E042305105B9F04CF4FE
+:1025E0004115510581F041305105E1F40E949120DF
+:1025F00019C04330510569F04430510599F48C2DD0
+:102600000E94E3200FC00E947A200CC00E94AD20DF
+:1026100009C00E94C02006C0472D4F706C2DC70115
+:102620000E944505DD20F9F00E94CA1880FD1BC0FC
+:10263000F70112820E94C4180E94BA17C7010E94B3
+:1026400042130E94C4180F90DF91CF911F910F91F8
+:10265000FF90EF90DF90CF90BF90AF909F908F90C2
+:102660007F900C94DB170F90DF91CF911F910F910A
+:10267000FF90EF90DF90CF90BF90AF909F908F90A2
+:102680007F9008950F931F93CF93DF93EC01888180
+:1026900099812B813C81232BB9F09F3F11F48F3F0F
+:1026A00099F0CE010E941202882371F0688179812D
+:1026B0008A810E94C0188C010E9475180E943C17E4
+:1026C000B801CE010E94F710DF91CF911F910F91B9
+:1026D00008950E944E190E945E190E9423190E94BB
+:1026E00078190E94401E0E948F1D80E090E00E9499
+:1026F000BD0E80E090E00C94D30E0E943E190C9425
+:1027000069130E94B518292F22952F7030E02C30C4
+:1027100031054CF42A3031056CF422503109223055
+:102720003105A8F407C02C30310569F02F30310590
+:1027300051F00DC0803F69F018F4803E40F409C0AC
+:10274000843F29F406C093FB882780F9089580E030
+:10275000089581E00895CF93DF9300D000D01F92B9
+:10276000CDB7DEB70F900F900F900F900F90DF91C5
+:10277000CF910895CF93DF9300D000D000D0CDB794
+:10278000DEB726960FB6F894DEBF0FBECDBFDF9141
+:10279000CF9108951F93CF93DF93C0917F0216E0EE
+:1027A00080918002C81799F0D0E01C9FF0011D9F16
+:1027B000F00D1124EF57FD4F4081518162817381EB
+:1027C000848195810E94BA132196C770E9CFDF9169
+:1027D000CF911F9108954091B1025091B202609142
+:1027E000B3027091B4028091B5029091B6020C943C
+:1027F000BA138091B60282958F7009F054C080910F
+:10280000B302882309F44FC080917F02A091800217
+:102810006091B1027091B2024091B4025091B50240
+:10282000B6E08A1709F43FC090E041155105C1F1A7
+:102830007F3F11F46F3FA1F1B89FF001B99FF00DF8
+:102840001124EF57FD4F218172132AC0208162139A
+:1028500027C02281211124C0238134812417350708
+:1028600010F421503109241B350B283C3105C0F4EC
+:102870002091B6022F7020612093B60226E0289F97
+:10288000F001299FF00D1124EA57FD4F80818F70D0
+:102890008061808381EB92E00E9442130C94CA1302
+:1028A00001968770BECF0895CF92DF92EF92FF928C
+:1028B0000F931F93CF93DF93CDB7DEB762970FB619
+:1028C000F894DEBF0FBECDBF8C0185E0F801DE01BC
+:1028D0001D9601900D928A95E1F7D8014C911196C1
+:1028E0005C91119712966C9112971396CD90DC9093
+:1028F00014973091B1027091B2028091B40290911C
+:10290000B502009709F46BC17F3F19F43F3F09F40A
+:1029100066C1E090B302EE2009F4C0C02091B60277
+:10292000C816D90628F0F601E81BF90BCF0104C040
+:10293000809590958C0D9D1DFF24F394883C910506
+:1029400078F0F12C207F09F0C6C07C2DD98AC88A86
+:1029500089890E94AB1381EB92E00E944213B1C0BF
+:10296000822F807F09F046C0751314C0341312C043
+:10297000611110C02F7020612093B6020E94EB13EA
+:1029800081EB92E00E9442138091B602D801159625
+:102990008C932EC0CD2819F15F3F11F44F3FF9F011
+:1029A000F62E61111CC080917F022091800236E0DA
+:1029B000821709F45AC090E0389FF001399FF00D5A
+:1029C0001124EF57FD4F7181571306C070814713D3
+:1029D00003C07281711103C001968770E9CFF62E92
+:1029E000662309F418C18091B60281608093B60213
+:1029F000F12C11C1751308C0341306C0611104C055
+:102A00008091B602D801C3C04D875E878D859E85B3
+:102A10006A8B0E9481136A898823E1F16623D1F1D0
+:102A20002091B602822F82958F7090E0029774F009
+:102A30008091B1029091B20298878F831986DB86CC
+:102A4000CA862C87CE0107960E94421386E0F801C1
+:102A5000A1EBB2E001900D928A95E1F70E94F91383
+:102A60000E94EB13FF24F394D6C04D875E878D85BB
+:102A70009E850E94B518292F22952F7030E02230B4
+:102A800031050CF0BCC09F7009F0B6C0805E883084
+:102A900008F4C1C0C8010E944213E4CFC816D90689
+:102AA00008F453C0F601E81BF90BCF01883C9105EF
+:102AB00008F450C0F12C7C2DD98AC88A89890E94DB
+:102AC000AB13E1EBF2E086E0DF011D928A95E9F7B6
+:102AD0000E94EB13A0C0751314C0341312C061110F
+:102AE00010C08091B602F8018583C8010E9442138C
+:102AF00086E0E1EBF2E0DF011D928A95E9F7FE2C1A
+:102B00008AC04D875E878D859E856A8B0E94811362
+:102B10006A89882309F4BECF662309F4BBCF2091CC
+:102B2000B602822F82958F7090E002970CF48ECFC0
+:102B30008091B1029091B2029A8389831B82DD82D7
+:102B4000CC822E83CE0101967FCF809590958C0DFF
+:102B50009D1DACCFF62E662309F49CCF75132EC0B5
+:102B600034132CC02091B60220FD1FC0822F829505
+:102B70008F70D9F0D80115962C9315978F3049F0A6
+:102B80008F5F982F9295907F822F8F70892B15964B
+:102B90008C93C8010E94421386E0F801A1EBB2E0D9
+:102BA00001900D928A95E1F793CF86E0F801A1EBB1
+:102BB000B2E001900D928A95E1F72DC04D875E87B6
+:102BC0008D859E850E948113811140CF8091B60230
+:102BD00081608093B602C8010E9442131CC0662324
+:102BE00009F458CF4D875E878D859E850E9481139D
+:102BF000882309F44FCF2ACF811148CF0CC024304D
+:102C000031050CF047CF9F7009F440CFF801958152
+:102C1000907F09F03BCF8F2D62960FB6F894DEBF00
+:102C20000FBECDBFDF91CF911F910F91FF90EF901D
+:102C3000DF90CF9008951F93CF93DF93CDB7DEB78A
+:102C40002C970FB6F894DEBF0FBECDBF4F835887C9
+:102C500069877A878B879C87CE0107960E945414D8
+:102C6000882369F08F8198852A853B85232BF1F194
+:102C70009F3F09F063C08F3F09F060C037C086E016
+:102C8000FE013796DE01119601900D928A95E1F7CB
+:102C90006F817885EA85FB85309741F17F3F11F49C
+:102CA0006F3F21F12091800230E0C90101968770C9
+:102CB000992740917F0250E08417950709F447C097
+:102CC00069837A83FD83EC8396E0929FD001939F82
+:102CD000B00D1124AF57BD4FFE01319601900D92FA
+:102CE0009A95E1F7809380020E94CA1316E08091C2
+:102CF0007F02909180028917C1F1189FC0011124B1
+:102D00008F579D4F0E945414882379F1E0917F02E0
+:102D10001E9FF0011124EF57FD4F408151816281C8
+:102D20007381848195810E94BA1380917F0290E023
+:102D300001968770992780937F02D9CF4F8158855C
+:102D400069857A858B859C850E94BA13CFCF0E94B6
+:102D50007D131092800210927F02E1EBF2E086E098
+:102D6000DF011D928A95E9F7C1CF2C960FB6F89432
+:102D7000DEBF0FBECDBFDF91CF911F910895EF92BF
+:102D8000FF920F931F93CF93DF938C01009709F469
+:102D90006CC0F12CEE24E394E8012196F8018491B3
+:102DA000843740F4843008F051C0813081F08230A3
+:102DB00019F15BC0853709F444C0A8F19CE7980F6E
+:102DC000903708F052C08F770E949A1041C00E5F72
+:102DD0001F4FFE01C49180E28C0F883048F4C77009
+:102DE0008E2D01C0880FCA95EAF70E94511914C0B0
+:102DF0008C2F0E94D20F2DC00E5F1F4FFE01C49179
+:102E000080E28C0F883058F4C7708E2D01C0880F77
+:102E1000CA95EAF70E9457190E9478191AC08C2F98
+:102E20000E949A1016C00E5F1F4FFE01C491CC2362
+:102E300081F08FE99FE00197F1F700C00000C150D9
+:102E4000F6CF0E5F1F4FFE01F49003C00E94D20F19
+:102E50008E018F2D882309F49FCFEFE9FFE0319792
+:102E6000F1F700C000008150F5CFDF91CF911F91A5
+:102E70000F91FF90EF90089508956093BB027093B7
+:102E8000BC028093BD029093BE020C9469130F9311
+:102E90001F930091BB021091BC022091BD023091A2
+:102EA000BE02DC01CB01802B912BA22BB32B809394
+:102EB000BB029093BC02A093BD02B093BE021F91CF
+:102EC0000F910C9469130F931F930091BB02109103
+:102ED000BC022091BD023091BE02DC01CB018023F7
+:102EE0009123A223B3238093BB029093BC02A093AF
+:102EF000BD02B093BE021F910F910C9469130F9302
+:102F00001F930091BB021091BC022091BD02309131
+:102F1000BE02DC01CB0180279127A227B327809333
+:102F2000BB029093BC02A093BD02B093BE021F915E
+:102F30000F910C9469131092B7021092B80210927C
+:102F4000B9021092BA020C94691341E050E060E0BB
+:102F500070E004C0440F551F661F771F8A95D2F793
+:102F60004093B7025093B8026093B9027093BA02CB
+:102F70000C94691341E050E060E070E004C0440F3D
+:102F8000551F661F771F8A95D2F78091B7029091DF
+:102F9000B802A091B902B091BA02482B592B6A2B02
+:102FA0007B2B4093B7025093B8026093B9027093A1
+:102FB000BA020C94691341E050E060E070E004C094
+:102FC000440F551F661F771F8A95D2F7409550957D
+:102FD000609570958091B7029091B802A091B90266
+:102FE000B091BA02482359236A237B234093B70246
+:102FF0005093B8026093B9027093BA020C946913AB
+:1030000041E050E060E070E004C0440F551F661FCF
+:10301000771F8A95D2F78091B7029091B802A0915C
+:10302000B902B091BA02482759276A277B274093F3
+:10303000B7025093B8026093B9027093BA020C942D
+:1030400069130F931F930091B7021091B80220915A
+:10305000B9023091BA02DC01CB01802B912BA22B5B
+:10306000B32B8093B7029093B802A093B902B093A8
+:10307000BA021F910F910C9469130F931F93009143
+:10308000B7021091B8022091B9023091BA02DC0166
+:10309000CB0180239123A223B3238093B702909383
+:1030A000B802A093B902B093BA021F910F910C9489
+:1030B00069130F931F930091B7021091B8022091EA
+:1030C000B9023091BA02DC01CB0180279127A227F7
+:1030D000B3278093B7029093B802A093B902B0933C
+:1030E000BA021F910F910C9469130895CF92DF9249
+:1030F000EF92FF920F931F93CF93DF938C01C090B9
+:10310000BB02D090BC02E090BD02F090BE02809164
+:10311000B7029091B802A091B902B091BA02C82A40
+:10312000D92AEA2AFB2ACFE1D0E0D701C6010C2E2A
+:1031300004C0B695A795979587950A94D2F780FF16
+:1031400006C0B8018C2F0E94A103019721F421979A
+:1031500060F780E001C08C2FDF91CF911F910F911C
+:10316000FF90EF90DF90CF900895CF93DF93EC0125
+:103170000E947618BE010E94A103DF91CF910895AD
+:10318000CB010E94B51808958091BF028595859561
+:10319000859508958091BF028770089598E0899F72
+:1031A00090011124262B2093BF020C94BA17209172
+:1031B000BF02809582238093BF02982F977069F495
+:1031C00030E0482F552747FD50952417350729F043
+:1031D0008595859585950C94DB1708959091BF0290
+:1031E000977081E009F480E0089520910C013091FE
+:1031F0000D01F90132969FEF40E05191581789F087
+:103200009F3F19F4511101C0942F4F5F4630A9F729
+:103210009F3F39F0F901E90FF11D97FDFA9582837F
+:103220000895089520910C0130910D01F901329615
+:10323000285F3F4F9081981301C010823196E217AA
+:10324000F307C1F7089581E090E0E0910C01F0915F
+:103250000D01E80FF91F1082019688309105A9F73A
+:1032600008959091CB02892B8093CB02089580958D
+:103270009091CB0289238093CB0208951092CB02C8
+:1032800008959091CA02892B8093CA02089580956F
+:103290009091CA0289238093CA0208951092CA02AB
+:1032A00008959091C902892B8093C9020895809551
+:1032B0009091C90289238093C90208951092C9028E
+:1032C00008958093C00208951092C00208958091DD
+:1032D0000C0190910D01FC0131969C01285F3F4F3C
+:1032E00080E0919191118F5FE217F307D1F7089574
+:1032F000E0910C01F0910D018091CB028083E0916F
+:103300000C01F0910D0190818091CA02892B80837C
+:10331000E0910C01F0910D0190818091C902892BFF
+:1033200080838091C002882361F0E0910C01F091CC
+:103330000D019081892B80830E9467198111109261
+:10334000C00280910C0190910D010C94A70E0E9477
+:103350007D1380E00E94D8010E9469200E949B0E8C
+:103360000C94D6051F920F920FB60F9211248F93D3
+:103370009F93AF93BF938091CD02811113C0809131
+:10338000CE029091CF02A091D002B091D10241968D
+:10339000A11DB11D8093CE029093CF02A093D002C5
+:1033A000B093D102BF91AF919F918F910F900FBEBB
+:1033B0000F901F90189582E084BD93E095BD9AEF21
+:1033C00097BD80936E0008952FB7F8948091CE0238
+:1033D0009091CF02A091D002B091D1022FBF089559
+:1033E000CF92DF92EF92FF920F931F932FB7F89433
+:1033F0004091CE025091CF026091D0027091D102E3
+:103400002FBF6A017B01EE24FF248C0120E030E015
+:10341000C016D106E206F30610F4415051099A0194
+:10342000281B390BC9011F910F91FF90EF90DF907E
+:10343000CF9008951F920F920FB60F9211248F9381
+:103440009F93AF93BF938091CE029091CF02A091B2
+:10345000D002B091D1020196A11DB11D8093CE0280
+:103460009093CF02A093D002B093D102BF91AF91BD
+:103470009F918F910F900FBE0F901F9018950E94F3
+:10348000590BF8942FEF87EA91E621508040904045
+:10349000E1F700C0000087E090EBDC018093ED02D3
+:1034A0009093EE02A093EF02B093F0029CE088E1CB
+:1034B0000FB6F894A895809360000FBE90936000BB
+:1034C000FFCFAF92BF92CF92DF92EF92FF920F9316
+:1034D0001F93CF93C3E0CC24C394D12CE82EF12CBE
+:1034E0008C2F0E94AC065C010CE010E09601002ECF
+:1034F00002C0220F331F0A94E2F72A213B21232B1B
+:1035000051F0602F7C2F80E00E944605E816F906F6
+:1035100011F481E006C00150110940F7C15000F7D5
+:1035200080E0CF911F910F91FF90EF90DF90CF90AF
+:10353000BF90AF900895CF93C82F8CE20E94611A7C
+:10354000882321F08C2FCF910C94611A80E0CF91C9
+:103550000895CF930E94F11B811102C00E94D21BDB
+:10356000C5E6C15049F00E9431068FE39CE90197FE
+:10357000F1F700C00000F5CF89E20E949B1A81118B
+:103580000FC18AE20E949B1A81110E94D21B85E022
+:103590000E949B1A81110E943F1A0E94FC1B80937B
+:1035A000CC0287E00E949B1A8823A9F18BE10E943C
+:1035B0009B1A882351F08091CC0281FB222720F9AD
+:1035C00091E0922790FB81F90EC08EE00E949B1A39
+:1035D000882361F08091CC0282FB222720F991E0C0
+:1035E000922790FB82F98093CC0215C080E10E9463
+:1035F0009B1A9091CC02882341F093FB222720F95B
+:1036000081E0822780FB93F904C0892F809580FB9D
+:1036100090F99093CC028091CC020E94001C0E94F1
+:103620000E1C90E09093DE028093DD0280EE0E94FB
+:103630009B1A882341F08091DD02982F909590FB92
+:1036400080F98093DD0289E30E949B1A882359F058
+:103650008091DD0281FB222720F991E0922790FBE7
+:1036600081F98093DD0282EE0E949B1A882359F033
+:103670008091DD0282FB222720F991E0922790FBC6
+:1036800082F98093DD0286EE0E949B1A882359F00E
+:103690008091DD0283FB222720F991E0922790FBA5
+:1036A00083F98093DD0283EE0E949B1A882359F0F0
+:1036B0008091DD0284FB222720F991E0922790FB84
+:1036C00084F98093DD0285E30E949B1A882359F0D8
+:1036D0008091DD0285FB222720F991E0922790FB63
+:1036E00085F98093DD0281E30E949B1A882359F0BB
+:1036F0008091DD0286FB222720F991E0922790FB42
+:1037000086F98093DD0281E10E949B1A882359F09B
+:103710008091DD0287FB222720F991E0922790FB20
+:1037200087F98093DD028091DD020E94121C87E2FE
+:103730000E949B1AC82F8EE10E949B1A8111C260C1
+:103740008FE10E949B1A8111C46080E20E949B1A43
+:103750008111C86081E20E949B1A8111C06182E2DE
+:103760000E949B1A8111C06283E20E949B1A811100
+:10377000C06484E20E949B1A882311F0C06802C0D2
+:10378000CC2329F08C2F0E94091C6C2F03C00E94AF
+:10379000051C682F70E080E090E0CF910C943D17FD
+:1037A000CF9108956DEE7EEF80E090E00E947C2244
+:1037B00060E082E090E00E946A2260E083E090E0B6
+:1037C0000E946A2260E084E090E00E946A2260E049
+:1037D00085E090E00E946A2260E086E090E00C9430
+:1037E0006A2280E090E00E94642221E08D3E9E4F9C
+:1037F00009F020E0822F089582E090E00C945C2292
+:10380000682F82E090E00C946A2283E090E00C94B0
+:103810005C22682F83E090E00C946A2284E090E0C0
+:103820000C945C22682F84E090E00C946A2286E07D
+:1038300090E00C945C22682F86E090E00C946A2261
+:103840008091D40280FF0BC06091110185E0689FD8
+:10385000B001112475956795759567952BC081FF0B
+:1038600009C06091110185E0689FB0011124759530
+:10387000679520C082FF07C06091110185E0689FB5
+:10388000B001112417C09091D5029923D1F0609115
+:103890001001961788F72091110185E0289F90016B
+:1038A0001124929FA001939F500D112470E0CA0132
+:1038B0000E942E226038710540F46115710539F0BF
+:1038C00002C065E070E0862F08958FE7089581E0DB
+:1038D00008958091D40280FF08C060910F0170E0CC
+:1038E000759567957595679521C081FF06C06091B4
+:1038F0000F0170E07595679519C082FF04C0609153
+:103900000F0170E010C09091D5029923C1F0609131
+:103910000E019617A0F780910F01899FC001112415
+:1039200070E00E942E226038710528F4611571053F
+:1039300021F0862F08958FE7089581E0089561E0D2
+:1039400070E0F4CF803F21F40E94201C819504C0D8
+:10395000813F29F40E94201C8093D8020895823F61
+:1039600021F40E94201C819504C0833F29F40E9409
+:10397000201C8093D7020895893F19F40E94691C86
+:1039800005C08A3F31F40E94691C81958093D90259
+:1039900008958B3F21F40E94691C819504C08C3FDF
+:1039A00029F40E94691C8093DA020895843F21F46F
+:1039B0008091D602816017C0853F21F48091D602A4
+:1039C000826011C0863F21F48091D60284600BC0D2
+:1039D000873F21F48091D602886005C0883F31F48A
+:1039E0008091D60280618093D60208958D3F21F4A4
+:1039F0008091D40281600BC08E3F21F48091D4026B
+:103A0000826005C08F3F29F48091D4028460809346
+:103A1000D4020895803F39F48091D80287FF6CC0AA
+:103A20001092D80269C0813F29F48091D8021816FB
+:103A3000BCF362C09091D702823F29F497FF5CC02B
+:103A40001092D70259C0833F19F41916CCF354C011
+:103A5000893F41F48091D90218160CF04DC01092A4
+:103A6000D9024AC08A3F29F48091D90287FF44C015
+:103A7000F6CF8B3F39F48091DA0287FF3DC0109278
+:103A8000DA023AC08C3F29F48091DA021816BCF3AE
+:103A900033C0843F21F48091D6028E7F17C0853FCA
+:103AA00021F48091D6028D7F11C0863F21F4809150
+:103AB000D6028B7F0BC0873F21F48091D602877F8F
+:103AC00005C0883F31F48091D6028F7E8093D60264
+:103AD00013C08D3F21F48091D4028E7F0BC08E3FA6
+:103AE00021F48091D4028D7F05C08F3F29F480910D
+:103AF000D4028B7F8093D4028091D70281110EC0B3
+:103B00008091D80281110AC08091D902811106C02A
+:103B10008091DA02811102C01092D502089586EDDB
+:103B200092E00E94B20E0E94E4199093D302809317
+:103B3000D20208951F93CF93DF938091D202909188
+:103B4000D3020E94F019AC019091D502992321F083
+:103B50002091120130E006C0209113018AE0289FD5
+:103B6000900111244217530708F486C08091D702B0
+:103B7000C091D802D091D9021091DA02811107C008
+:103B8000C11176C0D11174C0111172C075C09F3FB0
+:103B900019F09F5F9093D502181624F40E94201C00
+:103BA0008093D7028091D70287FF05C00E94201C16
+:103BB00081958093D7021C1624F40E94201C8093C8
+:103BC000D8028091D80287FF05C00E94201C8195F1
+:103BD0008093D8026091D702662339F1C091D80250
+:103BE000CC2319F1772767FD7095872F972F0E94B7
+:103BF000332123E333E343E35FE30E9497210E94F1
+:103C000000216093D7026C2F772767FD7095872F6F
+:103C1000972F0E94332123E333E343E35FE30E94C2
+:103C200097210E9400216093D8021D1624F40E945F
+:103C3000691C8093D9028091D90287FF05C00E9438
+:103C4000691C81958093D902111624F40E94691C85
+:103C50008093DA028091DA0287FF05C00E94691C16
+:103C600081958093DA02DF91CF911F910C948F1D83
+:103C70009F3F09F08ECF96CFDF91CF911F9108958E
+:103C8000E6EDF2E085E0DF011D928A95E9F71092FA
+:103C9000D5021092D4020895833081F128F4813046
+:103CA00059F08230D1F00895853009F449C0B8F157
+:103CB000863009F456C0089580911301262F30E014
+:103CC000280F311D2F3F310524F4680F6093130135
+:103CD00008958FEF80931301089580911201262F8C
+:103CE00030E0280F311D2F3F310524F4680F609319
+:103CF000120108958FEF80931201089580911101B0
+:103D0000262F30E0280F311D2F3F310524F4680F96
+:103D10006093110108958FEF8093110108958091B0
+:103D20001001262F30E0280F311D2F3F310524F4DC
+:103D3000680F6093100108958FEF8093100108952C
+:103D400080910F01262F30E0280F311D2F3F3105C4
+:103D500024F4680F60930F0108958FEF80930F0193
+:103D6000089580910E01262F30E0280F311D2F3F3E
+:103D7000310524F4680F60930E0108958FEF80934E
+:103D80000E010895833011F128F4813049F082301A
+:103D900091F00895853081F120F18630C1F10895C8
+:103DA00080911301681720F4861B809313010895F6
+:103DB00010921301089580911201681720F4861B58
+:103DC00080931201089510921201089580911101BB
+:103DD000681720F4861B8093110108951092110139
+:103DE000089580911001681720F4861B80931001BC
+:103DF000089510921001089580910F01681720F422
+:103E0000861B80930F01089510920F0108958091F1
+:103E10000E01681720F4861B80930E0108951092FE
+:103E20000E0108950F931F93873208F040C08E3122
+:103E300008F08AC08E3009F474C0C0F4873009F4E9
+:103E40005EC068F4863009F09AC08091CC02817F10
+:103E50008E7F8093CC0281E08093DC0291C0883019
+:103E600009F486C08B3009F483C089C0863109F417
+:103E70007FC068F4803109F082C08091CC0283FB5E
+:103E8000222720F991E0922790FB83F953C08931D2
+:103E900009F46EC08B3109F072C08091CC0281FBB5
+:103EA000222720F991E0922790FB81F943C08833C3
+:103EB00009F45EC050F4893209F45CC0853309F41A
+:103EC00059C0873209F456C05AC0833409F452C02D
+:103ED00028F48A3308F453C0895337C0883409F072
+:103EE0004EC00E947D130FEF13ED20E301501040F0
+:103EF0002040E1F700C000000E943F1A39C09091B5
+:103F0000CC02892F8095817080FB90F929F0966012
+:103F100098609093CC0234C0997F977F9093CC02A5
+:103F200027C08091CC0282FB222720F991E09227C2
+:103F300090FB82F98093CC029923D1F08091CC023E
+:103F400081608093CC0214C08D5141E050E060E06C
+:103F500070E08A019B0104C0000F111F221F331F54
+:103F60008A95D2F7C901B8010E943D170E947D13BE
+:103F700081E006C061E070E080E090E0F5CF80E095
+:103F80001F910F91089580E0089580E008958E516B
+:103F90008A3030F4E82FF0E0E75CFE4F808108952E
+:103FA00080E00895CF93C82F8091DC02813069F0C2
+:103FB00018F08230C9F183C0E0910C01F0910D013D
+:103FC0008081823209F07DC007C0E0910C01F09140
+:103FD0000D018081823261F48C2F0E94C31F8111F8
+:103FE00004C08C2F0E94121F1DC081E090E01AC0F7
+:103FF0008C2F0E94C51F811114C0C43179F048F480
+:10400000CB3079F0C03109F060C082E08093DC02EF
+:1040100008C0C93219F0C83321F057C01092DC0231
+:1040200054C081E0817053C0C93289F118F5C431A0
+:1040300071F1B0F4C73009F046C08EE180931301EE
+:1040400082E3809312018AE08093110184E18093DE
+:10405000100188E080930F0188E280930E0133C045
+:1040600082EE8C0F863078F58C2F0E94C71F8093CC
+:10407000DB0229C0CE34E9F020F4CB3421F56AE02C
+:1040800013C0C13579F0C235F1F461E00DC0809103
+:10409000DB02882319F01092DB0215C081E08093C7
+:1040A000DC0215C061E006C08091DB020E944C1E5C
+:1040B0000AC06AE08091DB020E94C21E04C0109216
+:1040C000DC0280E004C081E002C080E0ABCFCF9191
+:1040D00008950E94F11B811102C00E94D21B0E9410
+:1040E000171C8093EC0280FF02C0869501C080E01F
+:1040F0000C94D8018091EC02982F9695292F30E0EE
+:10410000233031054CF49F5F990F8170892B8160BA
+:104110008093EC020E941B1C8091EC0286950C940B
+:10412000D8018091EC02982F969591F09158990FB3
+:104130008170892B8093EC028E7F91E009F490E0EE
+:104140008091EC0290FB80F98093EC020E941B1C92
+:104150008091EC0286950C94D8018091EC02982F06
+:10416000909590FB80F98093EC020E941B1C80913B
+:10417000EC0280FF02C0869501C080E00C94D8015B
+:104180009091EC02892F86958F5F8F7791708430A4
+:1041900028F4880F892B8093EC0202C09093EC02E4
+:1041A0008091EC028E7F91E009F490E08091EC0226
+:1041B00090FB80F98093EC020E941B1C8091EC0222
+:1041C00086950C94D8012091EC02922F9695892720
+:1041D000982F990F822F8170892B8093EC028E7F0C
+:1041E00091E009F490E08091EC0290FB80F98093DB
+:1041F000EC020E941B1C8091EC0286950C94D80165
+:1042000004D06894B1118DC0089570D088F09F5784
+:1042100090F0B92F9927B751A0F0D1F0660F771F12
+:10422000881F991F1AF0BA95C9F712C0B13081F0F2
+:1042300077D0B1E0089574C0672F782F8827B85FD2
+:1042400039F0B93FCCF3869577956795B395D9F753
+:104250003EF490958095709561957F4F8F4F9F4F5D
+:104260000895E89409C097FB3EF490958095709569
+:1042700061957F4F8F4F9F4F9923A9F0F92F96E9B2
+:10428000BB279395F695879577956795B795F11127
+:10429000F8CFFAF4BB0F11F460FF1BC06F5F7F4FC4
+:1042A0008F4F9F4F16C0882311F096E911C07723D6
+:1042B00021F09EE8872F762F05C0662371F096E8DF
+:1042C000862F70E060E02AF09A95660F771F881FAE
+:1042D000DAF7880F9695879597F9089557FD9058C6
+:1042E000440F551F59F05F3F71F04795880F97FBBA
+:1042F000991F61F09F3F79F0879508951216130674
+:104300001406551FF2CF4695F1DF08C016161706A2
+:104310001806991FF1CF86957105610508940895D7
+:10432000E894BB2766277727CB0197F908950BD030
+:1043300078C069D028F06ED018F0952309F05AC0E3
+:104340005FC01124EECFCADFA0F3959FD1F3950F84
+:1043500050E0551F629FF001729FBB27F00DB11D09
+:10436000639FAA27F00DB11DAA1F649F6627B00D99
+:10437000A11D661F829F2227B00DA11D621F739F82
+:10438000B00DA11D621F839FA00D611D221F749F90
+:104390003327A00D611D231F849F600D211D822FD7
+:1043A000762F6A2F11249F5750408AF0E1F088231E
+:1043B0004AF0EE0FFF1FBB1F661F771F881F91502B
+:1043C0005040A9F79E3F510570F014C0AACF5F3F3F
+:1043D000ECF3983EDCF3869577956795B795F7955E
+:1043E000E7959F5FC1F7FE2B880F911D96958795E6
+:1043F00097F9089597F99F6780E870E060E0089565
+:104400009FEF80EC089500240A94161617061806EC
+:104410000906089500240A941216130614060506C8
+:104420000895092E0394000C11F4882352F0BB0F59
+:1044300040F4BF2B11F460FF04C06F5F7F4F8F4FBC
+:104440009F4F0895991B79E004C0991F961708F0B3
+:10445000961B881F7A95C9F78095089597FB072EBC
+:1044600016F4009407D077FD09D00E94482207FC7B
+:1044700005D03EF4909581959F4F08957095619574
+:104480007F4F0895EE0FFF1F0590F491E02D0994E2
+:10449000AA1BBB1B51E107C0AA1FBB1FA617B7076A
+:1044A00010F0A61BB70B881F991F5A95A9F7809586
+:1044B0009095BC01CD010895F999FECF92BD81BDC3
+:1044C000F89A992780B50895A8E1B0E042E050E05D
+:1044D0000C948422262FF999FECF92BD81BDF89AC3
+:1044E000019700B4021639F01FBA20BD0FB6F89438
+:1044F000FA9AF99A0FBE08950196272F0E946B220F
+:104500000C946A22DC01CB01FC01F999FECF06C0B4
+:10451000F2BDE1BDF89A319600B40D924150504081
+:08452000B8F70895F894FFCFED
+:10452800FFB606E0079C076807B90601C10228081C
+:10453800140A321E4F795363667649695909192955
+:10454800030F1F5F43404D3620BF0272023C021C1E
+:1045580002A801C101DA01F30101020304050607FB
+:04456800080900003E
+:00000001FF
diff --git a/keyboards/jd45/keymaps/default/keymap.c b/keyboards/jd45/keymaps/default/keymap.c
new file mode 100644
index 0000000000..05dd46e792
--- /dev/null
+++ b/keyboards/jd45/keymaps/default/keymap.c
@@ -0,0 +1,31 @@
+#include "jd45.h"
+#include "backlight.h"
+
+/* this keymap is to provide a basic keyboard layout for testing the matrix
+ * for more practical and complicated keymap refer to other keymaps in the same folder
+ */
+/* JD45 keymap definition macro
+ */
+#define KEYMAP( \
+ K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, \
+ K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, \
+ K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, K37, \
+ K38, K39, K40, K41, K42, K43, K44, K45, K46, K47 \
+) { \
+ { KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K10, KC_##K11, KC_##K12, KC_##K13 }, \
+ { KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_NO }, \
+ { KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_NO }, \
+ { KC_##K38, KC_##K39, KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_##K43, KC_NO, KC_##K44, KC_##K45, KC_##K46, KC_##K47, KC_NO } \
+}
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = KEYMAP(
+ ESC, Q, W, E, R, T, Y, U, I, O, P, QUOT, BSPC,
+ TAB, A, S, D, F, G, H, J, K, L, SCLN, ENT,
+ LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT,
+ PAUSE, LCTL, LALT, DEL, SPC, DEL, LEFT, UP, DOWN, RIGHT ),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+
+};
diff --git a/keyboards/jd45/keymaps/justin/compiled.hex b/keyboards/jd45/keymaps/justin/compiled.hex
new file mode 100644
index 0000000000..3f0ab6524b
--- /dev/null
+++ b/keyboards/jd45/keymaps/justin/compiled.hex
@@ -0,0 +1,1153 @@
+:100000000C94AA020C94EE020C94EE020C94EE02F4
+:100010000C94EE020C94EE020C94EE020C94EE02A0
+:100020000C94EE020C94EE020C94170D0C94E90D56
+:100030000C94F51A0C94EE020C94EE020C94EE0261
+:100040000C94EE020C94EE020C94EE020C94EE0270
+:100050000C94EE020C945D1B0C94EE020C94EE02D8
+:100060000C94EE020C94AF0F0C94EE020C94EE0282
+:100070000C94EE020C94EE020C94EE020C94EE0240
+:100080000C94EE020C94EE020C94EE020C94EE0230
+:100090000C94EE020C94EE020C94EE020C94EE0220
+:1000A0000C94EE020C94EE020C94EE02560E780EB6
+:1000B000660F780E660FBD0EE00E660F350F480F07
+:1000C00071127112A012A012DF12FF1255145514F2
+:1000D0000A135514BA13BA1321142A1455144F14C1
+:1000E000C713C713C713C713C713C713C713C71340
+:1000F000C713C713C713C713C713C713C713C71330
+:10010000D713E513EC13F313FD137500011E021E44
+:10011000011F021F012002200121022101220222CF
+:10012000012302230124022401250225012802289B
+:10013000007500011E021E011F021F012002200186
+:10014000210221012202220123022301240224018F
+:1001500025022501280228007500011E021E011F2C
+:10016000021F01200220012102210122022201237B
+:100170000223012402240125022501280228002D42
+:1001800021F1A1F1A2F1A33522E7323932E2A42B09
+:1001900021000000C001C002C000000000000000FB
+:1001A000000000000000000000000000000000004F
+:1001B00000000000000000000000D200D000D129A3
+:1001C0000014001A00090013000A000D000F0018A7
+:1001D000001C00330034002A00C80004001500167B
+:1001E00000170007000B00110008000C0012002887
+:1001F000000000E1001D001B000600190005000EB4
+:10020000001000360037003800C6000000C400E3CC
+:1002100000C700C200C10000002C000000C500E6BD
+:1002200000C300C00000000100CA00CB00CC0001E8
+:100230000001000100010001000100010052004C1A
+:1002400000010001000100010001000100010001A6
+:10025000004A004B0050004F000000010001000167
+:1002600000010001000100010001004D004E00519D
+:100270000001000000010001000100010001000078
+:100280000001000000010001000100010000000168
+:10029000000100010001000100010001002400250F
+:1002A00000260027000100010001000100010001FB
+:1002B00000010001002F002100220023003700016F
+:1002C00000000001000100010001000100010030F8
+:1002D000001E001F0020003100010000000100DDB1
+:1002E000000100010001000000480000002E002D68
+:1002F0000001000100000001003A003B003C003D0D
+:10030000003E003F004000410042004300440045E1
+:1003100000010001000100010001000100010001D5
+:1003200000010001000100010000000100010001C6
+:1003300000010001000100010001000100010001B5
+:1003400000010000000100010001000100010000A7
+:100350000001000000010001000100010000000197
+:10036000000100010001000100010001002400253E
+:10037000002600270001000100010001000100012A
+:1003800000010001002F002100220023003700019E
+:100390000000000100010001000100010001003027
+:1003A000001E001F0020003100010000000100DDE0
+:1003B000000100010001000000480000002E002D97
+:1003C000000100010000000A034A00440034003527
+:1003D00000000012036700650065006B00680061A3
+:1003E0000063006B000000040309040902740004A8
+:1003F0000100A0FA09040000010301010009211114
+:100400000100012240000705810308000A090401D8
+:10041000000103010200092111010001224D000722
+:1004200005820308000A0904020001030000000914
+:1004300021110100012236000705830308000A0983
+:100440000403000203000000092111010001222021
+:1004500000070584032000010705040320000112A2
+:1004600001100100000008EDFE60600100010200C3
+:10047000010631FF0974A1010975150025FF9520BA
+:10048000750881020976150025FF952075089102EF
+:10049000C005010980A101850216010026B7001AD6
+:1004A00001002AB700751095018100C0050C0901F3
+:1004B000A1018503160100269C021A01002A9C0254
+:1004C000751095018100C005010902A1010901A172
+:1004D00000050919012905150025019505750181FA
+:1004E0000295017503810105010930093115812546
+:1004F0007F95027508810609381581257F9501755C
+:10050000088106050C0A38021581257F95017508BA
+:100510008106C0C005010906A101050719E029E708
+:100520001500250195087501810295017508810165
+:1005300005081901290595057501910295017503B5
+:1005400091010507190029FF150026FF0095067582
+:10055000088100C011241FBECFEFDAE0DEBFCDBF9F
+:1005600004B603FE24C08091ED029091EE02A091AA
+:10057000EF02B091F0028730904BA740B04BB9F436
+:100580001092ED021092EE021092EF021092F00221
+:1005900014BE84B7877F84BF88E10FB6F894809338
+:1005A0006000109260000FBEE0E0F8E3099511E0F2
+:1005B000A0E0B1E0EEEAF7E402C005900D92A434A9
+:1005C000B107D9F712E0A4E4B1E001C01D92AD3E3D
+:1005D000B107E1F70E94860A0C94D5230C94000021
+:1005E00008950895279A2F988FEF9FEF9093870093
+:1005F000809386008AE08093800089E18093810067
+:100600000C94AC21282F81110BC080918000877F32
+:100610008093800010928D0010928C002F98089586
+:100620002F9880918000886080938000233019F497
+:100630008FEF9FEF0FC083E090E0821B9109880F3E
+:10064000991F2FEF3FEFA90102C0569547958A9554
+:10065000E2F7CA0190938D0080938C0008950E9468
+:10066000F2020C94F0020C94F102FC01613051F0A2
+:1006700018F0623069F012C08281882379F088E531
+:1006800091E008958281882349F081E391E0089503
+:100690008281882319F08AE091E0089580E090E05B
+:1006A000089581E0089581E008950C94530308951E
+:1006B0000F931F93CF93DF938C01FC01C081D181F5
+:1006C000CE010E94B919BE010E948906EC01B80151
+:1006D0000E945503882309F470C1F80182818823A0
+:1006E00009F45BC080914F0181111FC0C431F0E754
+:1006F000DF0709F00AC10E94570381E080934F0190
+:100700000E94271B90934E0180934D011092460149
+:10071000109248011092470110924A01109249012B
+:1007200010924C0110924B0148C180914D01909163
+:100730004E010E94331B883C910570F48091460164
+:10074000E82FF0E0EE0FFF1FE95BFE4FD183C0837F
+:100750008F5F8093460131C1C43120E7D20708F092
+:1007600024C1C23080E7D80710F5C11590E7D9073A
+:1007700009F0DAC0F8018281882309F4BFC00E9421
+:10078000C014FFEF24E38CE0F15020408040E1F7FB
+:1007900000C000000E94821B10C1C431F0E7DF07D7
+:1007A00008F0CFC0C23020E7D20708F49BC0F801A0
+:1007B0008281882309F4A2C00E94341D811102C0E5
+:1007C0000E94151D0E94511D90E09093DE028093BF
+:1007D000DD02C230F0E7DF0721F48091DD028160A5
+:1007E0007AC0C33020E7D20721F48091DD02826015
+:1007F00072C0C43080E7D80721F48091DD028460A4
+:100800006AC0C53090E7D90719F48091DD0227C08E
+:10081000C630E0E7DE0721F48091DD0280615BC035
+:10082000C730F0E7DF0721F48091DD02806253C01A
+:10083000C83020E7D20721F48091DD0280644BC0EC
+:10084000C93080E7D80721F48091DD02806843C079
+:10085000CA3090E7D90729F48091DD02846088606E
+:100860003AC0CB30E0E7DE0721F48091DD028E7FD5
+:1008700032C0CC30F0E7DF0721F48091DD028D7FBC
+:100880002AC0CD3020E7D20721F48091DD028B7F92
+:1008900022C0CE3080E7D80719F48091DD021AC05B
+:1008A0008091DD02CF3090E7D90711F48F7E13C01D
+:1008B000C031E0E7DE0711F48F7D0DC0C131F0E7F4
+:1008C000DF0711F48F7B07C0C231D04711F48F7757
+:1008D00002C08B7F877F8093DD028091DD020E94C2
+:1008E000551D6BC0C11580E7D80741F0C130D04716
+:1008F000F1F081E08093440180934501C801DF91CC
+:10090000CF911F910F910C945103C43120E7D2076E
+:1009100008F04BC0C23080E7D80708F048CFC115B7
+:1009200090E7D90709F42BCFC130D04711F7F80170
+:100930008281882319F38091CC0281608093CC025C
+:100940003CC0C333E0E7DE07A1F4F80182818823CD
+:1009500021F01092440182E017C08091440181117E
+:1009600006C086E20E94151186E20E94DD1182E037
+:1009700019C0C433D04709F0BCCFF8018281882365
+:1009800031F01092450180E20E942C1216C0809135
+:100990004501811106C087E20E94151187E20E947D
+:1009A000DD1180E20E94331208C0C333F0E7DF0795
+:1009B00061F2C433D04709F39CCF80E0DF91CF913F
+:1009C0001F910F9108950C942F030C9433032DE085
+:1009D000729FF001112434E3839FE00DF11D112477
+:1009E000E60FF11DEE0FFF1FE154FE4F859194912C
+:1009F0000E949B06811540E5940708F047C08115C9
+:100A000020E4920708F013C1883E910520F5803E4E
+:100A1000910508F07CC1883A910578F4853A9105F2
+:100A200008F0A5C08130910509F471C108F42EC108
+:100A30008430910508F06BC129C18B3B910508F406
+:100A4000A1C0803C910508F421C1FC01EE0FFF1FFD
+:100A5000E150F040E6C0811530E2930758F481156B
+:100A600041E0940708F053C1803F910508F40EC19E
+:100A700090650895811520E3920708F0D5C0FC0128
+:100A8000FF70EE0FFF1FE158FE4FCBC0811535E51B
+:100A9000930708F043C0811544E5940708F0DEC0D1
+:100AA000811522E5920708F5811531E5930708F0D5
+:100AB000C1C0482F437021E030E002C0220F331F35
+:100AC0004A95E2F73C68AC0164E0569547956A9513
+:100AD000E1F74370342B8F708695869540E2849FB2
+:100AE000C0011124822B932B0895282F269526953B
+:100AF000AC01437055278115934508F0A0C080E2F2
+:100B0000289F9001112481E090E002C0880F991F76
+:100B10004A95E2F7822B932B9C6808958F3240E729
+:100B2000940790F48F3120E7920708F0A2C0811556
+:100B300036E5930708F497C09C01305621153041E3
+:100B400008F0A4C09F7093C0803320E7920709F497
+:100B500097C008F492C0813340E7940709F493C02A
+:100B60008233904709F092C080E093ED0895853A72
+:100B7000910509F48EC0863A910509F08DC082E88E
+:100B800090E40895883A910509F489C0893A91055D
+:100B900009F488C08A3A910509F487C08B3A910517
+:100BA00009F486C08C3A910509F485C08D3A910507
+:100BB00009F484C0803B910509F483C08E3A910505
+:100BC00009F482C08F3A910509F481C0813B9105F7
+:100BD00009F480C0823B910509F47FC0833B9105F5
+:100BE00009F47EC0843B910509F47DC0853B9105E5
+:100BF00009F47CC0863B910509F47BC0873B9105D5
+:100C000009F47AC0883B910509F479C0893B9105C4
+:100C100009F478C08A3B910509F477C080E094E438
+:100C200008958591949108959927906C08959F70E7
+:100C3000906A0895982F8827816F906A089590E2AE
+:100C4000299F9001112481E090E002C0880F991F34
+:100C50004A95E2F7822B932B9A680895982F88275C
+:100C6000846F906A08958F719927982F88279062D2
+:100C700008958F519047946D089580E091ED089507
+:100C800080E090ED089580E092ED089580E090E09E
+:100C9000089581E890E4089583E890E4089582EE51
+:100CA00094E4089589EE94E408958AEE94E4089516
+:100CB00085EB94E4089586EB94E4089587EB94E43F
+:100CC00008958CEC94E408958DEC94E4089583E801
+:100CD00095E408958AE895E4089582E995E40895F5
+:100CE00084E995E4089581E296E4089583E296E428
+:100CF000089584E296E4089585E296E4089586E2F4
+:100D000096E4089587E296E408958AE296E40895C9
+:100D100008959DE0799FF001112494E3899FE00DEF
+:100D2000F11D1124E60FF11DEE0FFF1FE154FE4FE0
+:100D30008591949108958238910549F1B0F48133F9
+:100D4000910509F458C048F48932910509F44EC060
+:100D50008A32910509F454C008958533910509F448
+:100D600040C08933910599F00895833E910529F19A
+:100D700038F4803E910591F0823E9105A1F00895EE
+:100D8000863E9105F9F0873E910531F10895209155
+:100D9000DD0220FD3AC021FD38C008958091DD02BA
+:100DA00080FD35C032C08091DD0282FF32C080916B
+:100DB000DD0284FD30C083EE39C08091DD0282FD0A
+:100DC00028C0F5CF8091DD0283FF27C08091DD022E
+:100DD00084FD21C087EE2AC08091DD0283FD1DC005
+:100DE000F5CF8091DD0285FD1AC01BC08091DD0228
+:100DF00085FD17C014C08091DD0286FD14C015C0AA
+:100E00008091DD0286FD11C00EC080EE0FC089E327
+:100E10000DC082EE0BC080E009C086EE07C089E2FB
+:100E200005C085E303C08AE201C081E390E0089534
+:100E300008950C941807E82FF0E0EF5DFE4F8081D5
+:100E4000E82FEF70F0E082958F7021E030E0A9018B
+:100E500002C0440F551F8A95E2F740A308950F93EF
+:100E60001F93CF93DF9385B7806885BF85B7806870
+:100E700085BFC3E0D0E001E010E0FE01EF5DFE4F72
+:100E80008081E82FEF70F0E021A182958F70A8019A
+:100E900002C0440F551F8A95E2F7CA01822B81A335
+:100EA0008C2F0E941B07219740F78CE090E061E0B7
+:100EB00070E0FC01EC5EFE4F2081E22FEF70F0E06D
+:100EC00042A122952F70DB0102C0AA0FBB1F2A95F9
+:100ED000E2F79D01242B22A3019758F7DF91CF91D0
+:100EE0001F910F910C94E304EF92FF920F931F93C5
+:100EF000CF93DF9308E511E0C3E0EE24E394F12CF7
+:100F0000D5E08C2F0E941B078CE090E040E050E081
+:100F1000FC01EC5EFE4F6081E62FEF70F0E020A157
+:100F200030E062956F7002C0359527956A95E2F7BB
+:100F300020FD09C09701082E02C0220F331F0A941A
+:100F4000E2F7422B532B019718F7F8019291829107
+:100F50008F018417950721F051834083D0930001BE
+:100F60008C2F0E941B07C15060F68091000187FD05
+:100F70002CC08150809300018F3F39F08FE99FE0B2
+:100F80000197F1F700C0000020C0809156019091B8
+:100F9000570190935F0180935E018091540190917D
+:100FA000550190935D0180935C0180915201909175
+:100FB000530190935B0180935A018091500190916D
+:100FC000510190935901809358010E94E50481E0FA
+:100FD000DF91CF911F910F91FF90EF900895E82F2F
+:100FE000F0E0EE0FFF1FE85AFE4F808191810895D7
+:100FF000089580916C0108950F931F93CF93DF9311
+:1010000000D000D01F92CDB7DEB79C018091610166
+:10101000909162012817390709F493C03093620157
+:1010200020936101223E3105F1F1293E310559F14C
+:101030002A3E310559F1253B310559F1263B310551
+:1010400051F1273B310551F12C3C310561F12D3C2B
+:10105000310531F1233881E0380729F12A3891E050
+:10106000390709F1223981E03807E9F0243991E0A4
+:101070003907C9F0213282E03807B9F0233292E013
+:10108000390789F415C090E040E114C090E040E2D7
+:1010900011C092E001C094E040E00CC090E1FCCFB0
+:1010A00090E040E407C090E0F7CF90E044E002C059
+:1010B00090E041E089018DEF4C839D830E94990F60
+:1010C00080E00E94990F82E00E94990F4C81842F4A
+:1010D0000E94990F9D81892F0E94990F80E00E94A4
+:1010E000990F80E00E94990F80E00E94990F80E0A4
+:1010F0000E94990F8091E302843019F583E089837F
+:101100001B830A838093E9008FEF9091E800815060
+:1011100095FD06C095ED9A95F1F700008111F5CF88
+:101120008091E80085FF0DC040E050E063E070E092
+:10113000CE0101960E94070B8091E8008E77809384
+:10114000E8000F900F900F900F900F90DF91CF91CC
+:101150001F910F910895CF93DF9300D01F92CDB7C9
+:10116000DEB72091E302243021F522E029839B831E
+:101170008A8383E08093E9008FEF9091E8008150AB
+:1011800095FD06C095ED9A95F1F700008111F5CF18
+:101190008091E80085FF0DC040E050E063E070E022
+:1011A000CE0101960E94070B8091E8008E77809314
+:1011B000E8000F900F900F90DF91CF910895CF939B
+:1011C000DF93EC018DEF0E94990F80E00E94990F50
+:1011D00083E00E94990F88810E94990F89810E9463
+:1011E000990F8A810E94990F8B810E94990F8C819F
+:1011F0000E94990F80E00E94990F8091E302843051
+:10120000F9F482E08093E9008FEF9091E80081503B
+:1012100095FD06C095ED9A95F1F700008111F5CF87
+:101220008091E80085FF0CC040E050E065E070E090
+:10123000CE010E94070B8091E8008E778093E80032
+:10124000DF91CF910895EF92FF920F931F93CF9369
+:10125000DF93EC018DEF0E94990F8E017E0188E0F3
+:10126000E80EF11CF80181918F010E94990F0E1573
+:101270001F05C1F78091E302843039F581E0809346
+:10128000E9008FEF9091E800815095FD06C0F5EDE3
+:10129000FA95F1F700008111F5CF8091E80085FF04
+:1012A00014C040E050E068E070E0CE010E94070BFF
+:1012B0008091E8008E778093E80088E0FE01A4E644
+:1012C000B1E001900D928A95E1F7DF91CF911F91E6
+:1012D0000F91FF90EF9008958091E202811109C073
+:1012E0000E949C0C0E94F90C8091E2008460809323
+:1012F000E20008951092E2020895089508950C9472
+:10130000EA1A209160012F5F822F62E30E94652319
+:10131000992319F020936001089510926001809143
+:101320006301882371F18091E302843041F580915B
+:10133000E9008F702091EC00922F917020FD90E8D1
+:10134000892B94E09093E9009091EB0090FF14C0FA
+:101350009091EE0097FF10C09091E80095FF03C0B8
+:101360001092F100F9CF9091E80090FF05C09091A4
+:10137000E8009E779093E8008F708093E9001092C8
+:101380006301089542E061EC81E00E94160C42E0A6
+:1013900061EC82E00E94160C42E061EC83E00E9466
+:1013A000160C42E261EC84E00C94160C8091E5028C
+:1013B000833009F453C030F4813071F0823009F485
+:1013C0008CC008958A3009F478C08B3009F45EC06F
+:1013D000893009F09AC020C08091E402813A09F076
+:1013E00094C08091E800877F8093E8008091E802B4
+:1013F0009091E902892B21F468E084E691E003C032
+:1014000060E080E090E070E00E94520B8091E80084
+:101410008B778093E80008958091E402813209F08F
+:1014200074C08091E8029091E902892B09F06DC0A7
+:101430008091E800877F8093E8008091E80082FD3A
+:1014400005C08091E3028111F8CF5FC08091F10067
+:1014500080936C018091E8008B7753C08091E40207
+:10146000813A09F052C08091E8029091E902892BFB
+:1014700009F04BC08091E800877F8093E80080915D
+:10148000E80080FFFCCF80910B0136C08091E40220
+:101490008132D9F58091E8029091E902892BA9F572
+:1014A0008091E800877F8093E8000E944B0C809138
+:1014B000E60280930B010C94C0148091E402813207
+:1014C00021F58091E800877F8093E8000E944B0C13
+:1014D0008091E70280936D0108958091E402813A42
+:1014E000A1F48091E800877F8093E8008091E80074
+:1014F00080FFFCCF80916D018093F1008091E80026
+:101500008E778093E8000C944B0C089584B7877F06
+:1015100084BF88E10FB6F894809360001092600059
+:101520000FBE80E880936100109261000E942D1030
+:101530000E949C0C0E94F90C8091E20084608093D0
+:10154000E20078940E949B0F0E947E0F0E942F1051
+:1015500081E091E00E94D90F0E943710FDCF292F22
+:10156000332723303105C9F064F42130310581F08F
+:101570002230310509F043C084E790E02BEE33E0E0
+:1015800042C021323105F1F02232310541F137C03C
+:1015900082E190E02FE534E036C099278130910553
+:1015A00041F08230910541F0892B49F5E7EEF3E0F7
+:1015B00005C0E3EDF3E002C0E7ECF3E0849190E0D6
+:1015C0009F0121C06430D8F4E62FF0E0EE0FFF1F3A
+:1015D000EF5CFE4F2081318189E090E014C06430DF
+:1015E00070F470E0FB01EE0FFF1FE75DFE4F2081FE
+:1015F0003181FB01EB5DFE4F808190E004C080E013
+:1016000090E020E030E0FA01318320830895CF920A
+:10161000DF92EF92FF920F931F93CF93DF93EC0132
+:101620008B016A010E946A0C811133C0C114D1047C
+:1016300039F0F60180819181081B190BC80FD91F61
+:10164000E12CF12C0115110519F18091E80085FDBF
+:1016500016C08091E8008E778093E800C114D10411
+:1016600049F0F60180819181E80EF91EF182E08255
+:1016700085E00FC00E946A0C882321F30AC089917B
+:101680008093F10001501109FFEFEF1AFF0ADACF42
+:1016900080E0DF91CF911F910F91FF90EF90DF904D
+:1016A000CF9008952091EA023091EB022617370778
+:1016B00048F06115710539F42091E8002E772093E8
+:1016C000E80001C0B90140E061157105A9F1209160
+:1016D000E302222309F443C0253009F442C02091DB
+:1016E000E80023FD40C02091E80022FD32C0209197
+:1016F000E80020FFE9CF4091F3002091F20030E0B4
+:10170000342BFC01CF016115710559F028303105EA
+:1017100040F481918093F100615071092F5F3F4F38
+:10172000F1CF41E02830310509F040E02091E80098
+:101730002E772093E800C8CF4111C9CF0AC080910D
+:10174000E302882361F0853061F08091E80083FD39
+:101750000AC08091E80082FFF2CF80E0089582E025
+:10176000089583E0089581E008952091EA02309180
+:10177000EB022617370748F06115710539F42091FF
+:10178000E8002E772093E80001C0B901FC0120E0B9
+:101790006115710591F18091E302882309F440C03D
+:1017A000853009F43FC08091E80083FD3DC0809101
+:1017B000E80082FD2FC08091E80080FFE9CF2091F2
+:1017C000F3008091F20090E0922B6115710559F0C1
+:1017D0008830910540F424912093F10031966150B6
+:1017E00071090196F2CF21E0089709F020E080917D
+:1017F000E8008E778093E800CBCF2111CCCF0AC0D0
+:101800008091E302882361F0853061F08091E800E7
+:1018100083FD0AC08091E80082FFF2CF80E0089546
+:1018200082E0089583E0089581E00895982F97302D
+:1018300058F59093E900981739F07091EC002091D9
+:10184000ED005091F00003C0242F762F50E021FFCF
+:1018500019C03091EB003E7F3093EB003091ED00EA
+:101860003D7F3093ED003091EB0031603093EB0021
+:101870007093EC002093ED005093F0002091EE0067
+:1018800027FF07C09F5FD3CF8F708093E90081E06F
+:10189000089580E008958091E40287FF11C080914F
+:1018A000E80082FD05C08091E3028111F8CF11C0EC
+:1018B0008091E8008B770BC08091E302882349F088
+:1018C0008091E80080FFF8CF8091E8008E778093C8
+:1018D000E80008952091E4003091E50095E64091FC
+:1018E000EC00842F817040FF22C08091E80080FDD1
+:1018F0001CC08091E302882391F0853091F08091A3
+:10190000EB0085FD10C04091E4005091E5004217C6
+:10191000530729F39A01915011F784E0089582E06A
+:10192000089583E0089581E0089580E0089540914E
+:10193000E80042FFDECF08950E940A0D0E94120DBA
+:10194000E0EEF0E0808181608083E8EDF0E080816E
+:101950008F77808319BCA7EDB0E08C918E7F8C933C
+:1019600080818F7E80831092E20208950F931F93EF
+:10197000CF93DF930E940A0D0E94120DC8EDD0E0B4
+:1019800088818F77888388818068888388818F7D2C
+:10199000888319BC1092E3021092DF021092E102D8
+:1019A0001092E00200EE10E0F80180818B7F8083CE
+:1019B00088818160888342E060E080E00E94160CAC
+:1019C000E1EEF0E080818E7F8083E2EEF0E08081C6
+:1019D00081608083808188608083F80180818E7F30
+:1019E0008083888180618883DF91CF911F910F91DF
+:1019F0000895E8EDF0E080818F7E8083E7EDF0E0F0
+:101A000080818160808384E082BF81E08093E202F4
+:101A10000C94B60CE8EDF0E080818E7F808310920C
+:101A2000E20008951092DA001092E10008951F92EA
+:101A30000F920FB60F9211242F933F934F935F9302
+:101A40006F937F938F939F93AF93BF93EF93FF9386
+:101A50008091E10082FF0BC08091E20082FF07C00D
+:101A60008091E1008B7F8093E1000E948109809149
+:101A7000DA0080FF1FC08091D80080FF1BC08091DA
+:101A8000DA008E7F8093DA008091D90080FF0DC04C
+:101A900080E189BD82E189BD09B400FEFDCF81E00E
+:101AA0008093E3020E946C0905C019BC1092E30206
+:101AB0000E947A098091E10080FF19C08091E200C4
+:101AC00080FF15C08091E2008E7F8093E2008091BC
+:101AD000E20080618093E2008091D8008062809370
+:101AE000D80019BC85E08093E3020E947E098091B2
+:101AF000E10084FF30C08091E20084FF2CC080E1CF
+:101B000089BD82E189BD09B400FEFDCF8091D80076
+:101B10008F7D8093D8008091E1008F7E8093E100DB
+:101B20008091E2008F7E8093E2008091E2008160EC
+:101B30008093E2008091DF02882311F084E007C0E7
+:101B40008091E30087FD02C081E001C083E08093C3
+:101B5000E3020E947F098091E10083FF29C0809108
+:101B6000E20083FF25C08091E100877F8093E10040
+:101B700082E08093E3021092DF028091E1008E7F89
+:101B80008093E1008091E2008E7F8093E20080915B
+:101B9000E20080618093E20042E060E080E00E9429
+:101BA000160C8091F00088608093F0000E947D09FF
+:101BB000FF91EF91BF91AF919F918F917F916F9125
+:101BC0005F914F913F912F910F900FBE0F901F90FB
+:101BD00018951F920F920FB60F9211242F933F93D7
+:101BE0004F935F936F937F938F939F93AF93BF9325
+:101BF000CF93DF93EF93FF93C091E900CF70809173
+:101C0000EC00D82FD17080FDD0E81092E9008091CF
+:101C1000F000877F8093F00078940E942D0E109240
+:101C2000E9008091F00088608093F000CD2BCF70A8
+:101C3000C093E900FF91EF91DF91CF91BF91AF91F8
+:101C40009F918F917F916F915F914F913F912F91D4
+:101C50000F900FBE0F901F9018951F93CF93DF9397
+:101C6000CDB7DEB7AA970FB6F894DEBF0FBECDBFD3
+:101C7000E4EEF2E088E08E0F9091F10091938E13E4
+:101C8000FBCF0E94D6098091E80083FF1FC180919D
+:101C9000E4029091E502492F50E04A30510508F0E6
+:101CA00015C1FA01EA5AFF4F0C948523803881F060
+:101CB000823809F00BC18091E8028F708093E900AF
+:101CC0008091EB0085FB882780F91092E90006C01F
+:101CD0008091E0029091E102911182609091E80080
+:101CE000977F9093E8008093F1001092F100C8C0B4
+:101CF000282F2D7F09F0EAC0882319F0823061F087
+:101D0000E5C08091E602813009F0E0C0933009F02F
+:101D100080E08093E1022BC08091E602811127C010
+:101D20008091E8028F7009F4D1C08093E90020917E
+:101D3000EB0020FF1CC0933021F48091EB00806207
+:101D400014C09091EB0090619093EB0021E030E0A3
+:101D5000A90102C0440F551F8A95E2F74093EA009B
+:101D60001092EA008091EB0088608093EB00109263
+:101D7000E9008091E800877F86C08111A7C010919B
+:101D8000E6021F778091E3008078812B8093E30047
+:101D90008091E800877F8093E8000E944B0C80913F
+:101DA000E80080FFFCCF8091E30080688093E3002F
+:101DB000111102C082E001C083E08093E30286C07B
+:101DC0008058823008F082C08091E6029091E7024C
+:101DD0008C3D53E0950779F583E08A838AE2898315
+:101DE0004FB7F894DE01139620E03EE051E2E32F76
+:101DF000F0E050935700E49120FF03C0E295EF70AC
+:101E00003F5FEF708E2F90E0EA3010F0C79601C070
+:101E1000C0968D939D932F5F243149F74FBF8091DA
+:101E2000E800877F8093E8006AE270E0CE010196C7
+:101E30000E94520B14C0AE014F5F5F4F6091E802E9
+:101E40000E94AF0ABC01009709F440C09091E800DD
+:101E5000977F9093E80089819A810E94B50B8091C9
+:101E6000E8008B778093E80031C0803879F5809165
+:101E7000E800877F8093E8008091DF028093F10083
+:101E80008091E8008E778093E8000E944B0C1EC082
+:101E900081111CC09091E6029230C0F48091E8005C
+:101EA000877F8093E8009093DF020E944B0C809123
+:101EB000DF02811106C08091E30087FD02C081E04E
+:101EC00001C084E08093E3020E94C2098091E8008F
+:101ED00083FF0AC08091E800877F8093E8008091AB
+:101EE000EB0080628093EB00AA960FB6F894DEBFF9
+:101EF0000FBECDBFDF91CF911F910895CF938091F9
+:101F0000E3028823A1F0C091E900CF709091EC002A
+:101F1000892F817090FD80E8C82B1092E900809194
+:101F2000E80083FD0E942D0ECF70C093E900CF9191
+:101F300008950C94A80F87E68093CC001092CD00F2
+:101F400088E08093C90086E08093CA007894089561
+:101F50009091C80095FFFCCF8093CE0008951F920A
+:101F60000F920FB60F9211242F933F934F938F939D
+:101F70009F93EF93FF9380916F0190E09C012F5FFF
+:101F80003F4F40916E01421741F03091CE00FC016D
+:101F9000E059FE4F308320936F01FF91EF919F91A5
+:101FA0008F914F913F912F910F900FBE0F901F90E7
+:101FB000189590937502809374020895E0917402CD
+:101FC000F0917502309721F00190F081E02D099495
+:101FD00080E00895E0917402F0917502309721F04D
+:101FE0000280F381E02D09940895E0917402F0914C
+:101FF0007502309721F00480F581E02D0994089551
+:1020000020917202309173028217930771F09093BE
+:10201000730280937202E0917402F091750230971E
+:1020200021F00680F781E02D099408952091700237
+:10203000309171028217930771F09093710280932F
+:102040007002E0917402F0917502309721F00084E3
+:10205000F185E02D0994089508950C942C100E94A8
+:102060001E1B0E942F070E94EC1B0C94AC215F9258
+:102070006F927F928F929F92AF92BF92CF92DF9298
+:10208000EF92FF920F931F93CF93DF9300D000D076
+:102090001F92CDB7DEB70E9474079FE7C92E92E06A
+:1020A000D92E03E010E0AA24A394B12C502E802F47
+:1020B0000E94EF074C01F601729062906F01682652
+:1020C000792661147104A1F40150110978F78FEF9A
+:1020D00089838A831B820E94271B8160782F9D83BE
+:1020E0008C8349815A816B818D810E94E71038C0B1
+:1020F0008091CC0281FD0E94F8072CE030E0750150
+:10210000022E02C0EE0CFF1C0A94E2F7C7018621E2
+:102110009721892B09F129835A828E209F2091E0F3
+:10212000892809F490E09B830E94271B8160782F07
+:102130009D838C8349815A816B818D810E94E71038
+:10214000000F111FF801E958FD4F80819181E826A9
+:10215000F926F182E08204C02150310980F6B4CF23
+:102160000E94DD1E109176020E94DE0F1817D1F03A
+:102170000E94DE0F809376020F900F900F900F90C9
+:102180000F90DF91CF911F910F91FF90EF90DF9013
+:10219000CF90BF90AF909F908F907F906F905F9007
+:1021A0000C9419070F900F900F900F900F90DF91E4
+:1021B000CF911F910F91FF90EF90DF90CF90BF9044
+:1021C000AF909F908F907F906F905F900895CF9386
+:1021D000DF93CDB7DEB72B970FB6F894DEBF0FBEF7
+:1021E000CDBF4F83588769877A878B87DE01119629
+:1021F00086E0FD0111928A95E9F785E0FE013796A8
+:1022000001900D928A95E1F749815A816B817C8119
+:102210008D819E810E945E172B960FB6F894DEBFCB
+:102220000FBECDBFDF91CF910895CF93882309F4DE
+:10223000C2C0C82F823859F40E94DE0F81FDBBC096
+:1022400089E30E94381A0E94BB1A89E30CC08338C4
+:1022500079F40E94DE0F80FDAEC083E50E94381A3B
+:102260000E94BB1A83E50E94551ACF910C94BB1AA9
+:10227000843859F40E94DE0F82FD9DC087E40E94DD
+:10228000381A0E94BB1A87E4EECF8CEF8C0F813A8C
+:1022900048F48C2F0E94152181118DC08C2F0E9433
+:1022A000381AE3CF80E28C0F883048F4C77081E0A1
+:1022B00001C0880FCA95EAF70E94741AD6CF8BE541
+:1022C0008C0F833078F4C53A29F0C63A31F083E8B0
+:1022D00090E005C081E890E002C082E890E0CF91F4
+:1022E0000C94001088E58C0F833108F064C0C83A64
+:1022F00039F1C93A41F1CA3A49F1CB3A51F1CC3AF4
+:1023000059F1CD3A61F1C03B69F1CE3A71F1CF3A62
+:1023100079F1C13B81F1C23B89F1C33B91F1C43BEF
+:1023200099F1C53BA1F1C63BA9F1C73BB1F1C83B4F
+:10233000B9F1C93BC1F1CA3BC9F180E090E038C0B6
+:1023400082EE90E035C089EE90E032C08AEE90E0F7
+:102350002FC085EB90E02CC086EB90E029C087EB86
+:1023600090E026C08CEC90E023C08DEC90E020C083
+:1023700083E891E01DC08AE891E01AC082E991E00B
+:1023800017C084E991E014C081E292E011C083E2B9
+:1023900092E00EC084E292E00BC085E292E008C0B9
+:1023A00086E292E005C087E292E002C08AE292E013
+:1023B000CF910C941610CF910895882309F44BC047
+:1023C000823859F40E94DE0F81FF45C089E30E94E4
+:1023D000381A0E94BB1A89E30CC0833871F40E943A
+:1023E000DE0F80FF38C083E50E94381A0E94BB1AB6
+:1023F00083E50E94551A0C94BB1A843859F40E9444
+:10240000DE0F82FF28C087E40E94381A0E94BB1AA0
+:1024100087E4EFCF9CEF980F913A58F390E2980F32
+:10242000983050F4877091E001C0990F8A95EAF7CF
+:10243000892F0E947A1ADFCF9BE5980F933020F402
+:1024400080E090E00C940010885A833120F480E002
+:1024500090E00C9416100895882321F00E94741ABD
+:102460000C94BB1A0895882321F00E947A1A0C94C8
+:10247000BB1A08957F928F929F92AF92BF92CF9294
+:10248000DF92EF92FF920F931F93CF93DF931F92F0
+:10249000CDB7DEB77C01C62E772EFC0105810295F3
+:1024A0000F70128111110E94911A0E94311A882313
+:1024B00079F0112369F080E28C0D883048F082E0D9
+:1024C0000E941A1A0E94311A91E0D82ED92601C012
+:1024D000D12CE72DE295EF70F0E0E05AFF4F0C941D
+:1024E0008523872D807F072D0F70882311F002959B
+:1024F000007F112389F0002309F499C180E28C0D3B
+:10250000883020F4802F0E94741A03C0802F0E940C
+:10251000841A0E94BB1A8BC18C2D0E94DD110023EE
+:1025200009F4C3C180E28C0D883020F4802F0E9412
+:102530007A1A03C0802F0E948A1A0E94BB1AB5C162
+:10254000872D807F972D9F70803211F4892F03C0D3
+:10255000892F8295807FCC2021F0F1E0CF16A1F069
+:102560001DC0112339F0002319F1013009F50E9433
+:10257000A41A9BC1002319F0013009F496C1898384
+:102580000E94A71A898110C1112321F0063008F09A
+:102590008CC10EC0053008F088C106C1112359F066
+:1025A000002331F0F701958190FF41C19F70958321
+:1025B0000E942C127AC1002309F4F6C03EC1872D77
+:1025C00086958695837090E0009719F0019761F0E9
+:1025D0006CC1112321F08C2D972D937002C080E0E7
+:1025E00090E00E94001061C1112321F08C2D972DE5
+:1025F000937002C080E090E00E94161056C18C2DAE
+:10260000112319F00E94E51D02C00E944D1E0E9478
+:10261000D21E4BC1872D837009F052C0111145C1E4
+:102620008C2D829586958770880F880F9C2D9F70C2
+:10263000892E912CA12CB12C082E04C0880C991C39
+:10264000AA1CBB1C0A94D2F7C4FE14C00FE010E011
+:1026500020E030E0B901A80104C0440F551F661FF7
+:10266000771F8A95D2F7CB01BA0160957095809556
+:10267000909503C060E070E0CB01272D269526954C
+:10268000237030E02230310569F02330310589F0C4
+:10269000682979298A299B292130310571F00E9406
+:1026A000A61803C1682979298A299B290E94C21882
+:1026B000FCC00E94A618C501B4010E948A18F5C08A
+:1026C000112319F0872D817001C08695882309F4A4
+:1026D000ECC08C2D829586958770880F880F9C2D75
+:1026E0009F70892E912CA12CB12C082E04C0880C2F
+:1026F000991CAA1CBB1C0A94D2F7C4FE14C00FE09C
+:1027000010E020E030E0B901A80104C0440F551FDB
+:10271000661F771F8A95D2F7CB01BA016095709535
+:102720008095909503C060E070E0CB01272D269541
+:1027300026952370422F50E04230510569F0433016
+:10274000510589F0682979298A299B294130510549
+:1027500071F00E948019A9C0682979298A299B29CA
+:102760000E949C19A2C00E948019C501B4010E9458
+:1027700064199BC08C2D90E0FC01E05EF109E5310D
+:10278000F10508F050C0E059FF4F0C9485230C2D43
+:102790000F70872D8F71112321F00E94FD18802F5B
+:1027A00007CF0E941E19802F0E9433127EC0112372
+:1027B00041F0053008F079C0872D8F710E944319D0
+:1027C00074C0063008F071C0F7CF112339F0872D9F
+:1027D0008F710E94FD1869C01123C9F3872D8F7175
+:1027E0000E941E1962C0112329F0872D8F710E944B
+:1027F000E8185BC00E94DE1858C0112351F0172D55
+:102800001F71812F0E94FD1863E0812F0E94111A11
+:102810004CC081E00E941A1A023008F446C082E0DF
+:102820000E941A1A42C0112331F0002381F28C2D2C
+:102830000E9415113AC0002389F28C2D0E94DD11EF
+:1028400034C0472D4F706C2DC7010E9435030E9484
+:1028500002182BC0111129C0472D4F7050E0423093
+:102860005105B9F04CF44115510581F04130510545
+:10287000E1F40E94D42119C04330510569F044307D
+:10288000510599F48C2D0E9426220FC00E94BD2173
+:102890000CC00E94F02109C00E94032206C0472DEF
+:1028A0004F706C2DC7010E948806DD20F9F00E9450
+:1028B0000D1A80FD1BC0F70112820E94071A0E94A8
+:1028C000FD18C7010E9485140E94071A0F90DF911E
+:1028D000CF911F910F91FF90EF90DF90CF90BF901D
+:1028E000AF909F908F907F900C941E190F90DF9166
+:1028F000CF911F910F91FF90EF90DF90CF90BF90FD
+:10290000AF909F908F907F9008950F931F93CF93D8
+:10291000DF93EC01888199812B813C81232BB9F0D5
+:102920009F3F11F48F3F99F0CE010E9458038823F6
+:1029300071F0688179818A810E94031A8C010E945A
+:10294000B8190E947F18B801CE010E943A12DF9197
+:10295000CF911F910F9108950E94911A0E94A11A80
+:102960000E94661A0E94BB1A0E94831F0E94D21EF8
+:1029700080E090E00E94001080E090E00C9416103F
+:102980000E94811A0C94AC140E94F819292F2295E8
+:102990002F7030E02C3031054CF42A3031056CF4C6
+:1029A0002250310922303105A8F407C02C303105FE
+:1029B00069F02F30310551F00DC0803F69F018F4F7
+:1029C000803E40F409C0843F29F406C093FB882769
+:1029D00080F9089580E0089581E00895CF93DF9312
+:1029E00000D000D01F92CDB7DEB70F900F900F90A0
+:1029F0000F900F90DF91CF910895CF93DF9300D088
+:102A000000D000D0CDB7DEB726960FB6F894DEBF63
+:102A10000FBECDBFDF91CF9108951F93CF93DF936A
+:102A2000C0917F0216E080918002C81799F0D0E033
+:102A30001C9FF0011D9FF00D1124EF57FD4F4081A9
+:102A4000518162817381848195810E94FD14219658
+:102A5000C770E9CFDF91CF911F9108954091B102E6
+:102A60005091B2026091B3027091B4028091B502AC
+:102A70009091B6020C94FD148091B60282958F70ED
+:102A800009F054C08091B302882309F44FC08091AB
+:102A90007F02A09180026091B1027091B2024091D8
+:102AA000B4025091B502B6E08A1709F43FC090E035
+:102AB00041155105C1F17F3F11F46F3FA1F1B89F5E
+:102AC000F001B99FF00D1124EF57FD4F21817213D2
+:102AD0002AC02081621327C02281211124C02381B2
+:102AE00034812417350710F421503109241B350B8C
+:102AF000283C3105C0F42091B6022F70206120934C
+:102B0000B60226E0289FF001299FF00D1124EA5714
+:102B1000FD4F80818F708061808381EB92E00E9405
+:102B200085140C940D1501968770BECF0895CF9231
+:102B3000DF92EF92FF920F931F93CF93DF93CDB766
+:102B4000DEB762970FB6F894DEBF0FBECDBF8C0123
+:102B500085E0F801DE011D9601900D928A95E1F75E
+:102B6000D8014C9111965C91119712966C91129725
+:102B70001396CD90DC9014973091B1027091B2020F
+:102B80008091B4029091B502009709F46BC17F3F28
+:102B900019F43F3F09F466C1E090B302EE2009F456
+:102BA000C0C02091B602C816D90628F0F601E81B6D
+:102BB000F90BCF0104C0809590958C0D9D1DFF24CD
+:102BC000F394883C910578F0F12C207F09F0C6C081
+:102BD0007C2DD98AC88A89890E94EE1481EB92E003
+:102BE0000E948514B1C0822F807F09F046C0751302
+:102BF00014C0341312C0611110C02F7020612093D3
+:102C0000B6020E942E1581EB92E00E9485148091FD
+:102C1000B602D80115968C932EC0CD2819F15F3FCE
+:102C200011F44F3FF9F0F62E61111CC080917F0224
+:102C30002091800236E0821709F45AC090E0389F54
+:102C4000F001399FF00D1124EF57FD4F718157139B
+:102C500006C07081471303C07281711103C00196D1
+:102C60008770E9CFF62E662309F418C18091B60269
+:102C700081608093B602F12C11C1751308C0341322
+:102C800006C0611104C08091B602D801C3C04D874F
+:102C90005E878D859E856A8B0E94C4146A8988230D
+:102CA000E1F16623D1F12091B602822F82958F70D7
+:102CB00090E0029774F08091B1029091B2029887EF
+:102CC0008F831986DB86CA862C87CE0107960E94E1
+:102CD000851486E0F801A1EBB2E001900D928A958F
+:102CE000E1F70E943C150E942E15FF24F394D6C0F4
+:102CF0004D875E878D859E850E94F819292F229524
+:102D00002F7030E0223031050CF0BCC09F7009F00C
+:102D1000B6C0805E883008F4C1C0C8010E94851426
+:102D2000E4CFC816D90608F453C0F601E81BF90B26
+:102D3000CF01883C910508F450C0F12C7C2DD98A34
+:102D4000C88A89890E94EE14E1EBF2E086E0DF0197
+:102D50001D928A95E9F70E942E15A0C0751314C024
+:102D6000341312C0611110C08091B602F80185833E
+:102D7000C8010E94851486E0E1EBF2E0DF011D92BC
+:102D80008A95E9F7FE2C8AC04D875E878D859E85E2
+:102D90006A8B0E94C4146A89882309F4BECF662313
+:102DA00009F4BBCF2091B602822F82958F7090E0FC
+:102DB00002970CF48ECF8091B1029091B2029A8367
+:102DC00089831B82DD82CC822E83CE0101967FCF48
+:102DD000809590958C0D9D1DACCFF62E662309F441
+:102DE0009CCF75132EC034132CC02091B60220FD49
+:102DF0001FC0822F82958F70D9F0D80115962C9321
+:102E000015978F3049F08F5F982F9295907F822F82
+:102E10008F70892B15968C93C8010E94851486E0CB
+:102E2000F801A1EBB2E001900D928A95E1F793CF02
+:102E300086E0F801A1EBB2E001900D928A95E1F7EE
+:102E40002DC04D875E878D859E850E94C41481119B
+:102E500040CF8091B60281608093B602C8010E9483
+:102E600085141CC0662309F458CF4D875E878D8575
+:102E70009E850E94C414882309F44FCF2ACF811164
+:102E800048CF0CC0243031050CF047CF9F7009F4B7
+:102E900040CFF8019581907F09F03BCF8F2D62964E
+:102EA0000FB6F894DEBF0FBECDBFDF91CF911F915B
+:102EB0000F91FF90EF90DF90CF9008951F93CF93E5
+:102EC000DF93CDB7DEB72C970FB6F894DEBF0FBEF9
+:102ED000CDBF4F83588769877A878B879C87CE01C0
+:102EE00007960E949715882369F08F8198852A8517
+:102EF0003B85232BF1F19F3F09F063C08F3F09F021
+:102F000060C037C086E0FE013796DE011196019061
+:102F10000D928A95E1F76F817885EA85FB85309778
+:102F200041F17F3F11F46F3F21F12091800230E0A9
+:102F3000C90101968770992740917F0250E084175C
+:102F4000950709F447C069837A83FD83EC8396E093
+:102F5000929FD001939FB00D1124AF57BD4FFE013A
+:102F6000319601900D929A95E1F7809380020E942C
+:102F70000D1516E080917F02909180028917C1F1B2
+:102F8000189FC00111248F579D4F0E9497158823C9
+:102F900079F1E0917F021E9FF0011124EF57FD4F60
+:102FA0004081518162817381848195810E94FD14E9
+:102FB00080917F0290E001968770992780937F022D
+:102FC000D9CF4F81588569857A858B859C850E94EC
+:102FD000FD14CFCF0E94C0141092800210927F0285
+:102FE000E1EBF2E086E0DF011D928A95E9F7C1CFBF
+:102FF0002C960FB6F894DEBF0FBECDBFDF91CF91F8
+:103000001F910895EF92FF920F931F93CF93DF9339
+:103010008C01009709F46CC0F12CEE24E394E801D4
+:103020002196F8018491843740F4843008F051C02F
+:10303000813081F0823019F15BC0853709F444C0DA
+:10304000A8F19CE7980F903708F052C08F770E9444
+:10305000DD1141C00E5F1F4FFE01C49180E28C0F55
+:10306000883048F4C7708E2D01C0880FCA95EAF7E2
+:103070000E94941A14C08C2F0E9415112DC00E5F4F
+:103080001F4FFE01C49180E28C0F883058F4C77046
+:103090008E2D01C0880FCA95EAF70E949A1A0E94E5
+:1030A000BB1A1AC08C2F0E94DD1116C00E5F1F4F75
+:1030B000FE01C491CC2381F08FE99FE00197F1F7E5
+:1030C00000C00000C150F6CF0E5F1F4FFE01F4900C
+:1030D00003C00E9415118E018F2D882309F49FCF04
+:1030E000EFE9FFE03197F1F700C000008150F5CF24
+:1030F000DF91CF911F910F91FF90EF900895089568
+:103100006093BB027093BC028093BD029093BE0299
+:103110000C94AC140F931F930091BB021091BC024E
+:103120002091BD023091BE02DC01CB01802B912B9E
+:10313000A22BB32B8093BB029093BC02A093BD0241
+:10314000B093BE021F910F910C94AC140F931F9378
+:103150000091BB021091BC022091BD023091BE02D1
+:10316000DC01CB0180239123A223B3238093BB02F4
+:103170009093BC02A093BD02B093BE021F910F9129
+:103180000C94AC140F931F930091BB021091BC02DE
+:103190002091BD023091BE02DC01CB018027912736
+:1031A000A227B3278093BB029093BC02A093BD02D9
+:1031B000B093BE021F910F910C94AC141092B70201
+:1031C0001092B8021092B9021092BA020C94AC1488
+:1031D00041E050E060E070E004C0440F551F661FFE
+:1031E000771F8A95D2F74093B7025093B802609345
+:1031F000B9027093BA020C94AC1441E050E060E064
+:1032000070E004C0440F551F661F771F8A95D2F7E0
+:103210008091B7029091B802A091B902B091BA0220
+:10322000482B592B6A2B7B2B4093B7025093B80243
+:103230006093B9027093BA020C94AC1441E050E070
+:1032400060E070E004C0440F551F661F771F8A9529
+:10325000D2F740955095609570958091B702909106
+:10326000B802A091B902B091BA02482359236A2347
+:103270007B234093B7025093B8026093B9027093D6
+:10328000BA020C94AC1441E050E060E070E004C07D
+:10329000440F551F661F771F8A95D2F78091B7029A
+:1032A0009091B802A091B902B091BA02482759276B
+:1032B0006A277B274093B7025093B8026093B90204
+:1032C0007093BA020C94AC140F931F930091B70241
+:1032D0001091B8022091B9023091BA02DC01CB0101
+:1032E000802B912BA22BB32B8093B7029093B80223
+:1032F000A093B902B093BA021F910F910C94AC1431
+:103300000F931F930091B7021091B8022091B90258
+:103310003091BA02DC01CB0180239123A223B32395
+:103320008093B7029093B802A093B902B093BA0207
+:103330001F910F910C94AC140F931F930091B7023F
+:103340001091B8022091B9023091BA02DC01CB0190
+:1033500080279127A227B3278093B7029093B802C2
+:10336000A093B902B093BA021F910F910C94AC14C0
+:103370000895CF92DF92EF92FF920F931F93CF9316
+:10338000DF938C01C090BB02D090BC02E090BD02E4
+:10339000F090BE028091B7029091B802A091B9025C
+:1033A000B091BA02C82AD92AEA2AFB2ACFE1D0E092
+:1033B000D701C6010C2E04C0B695A79597958795A1
+:1033C0000A94D2F780FF06C0B8018C2F0E94E70450
+:1033D000019721F4219760F780E001C08C2FDF91E5
+:1033E000CF911F910F91FF90EF90DF90CF900895B4
+:1033F000CF93DF93EC010E94B919BE010E94E7044C
+:10340000DF91CF910895CB010E94F8190895809122
+:10341000BF0285958595859508958091BF02877037
+:10342000089598E0899F90011124262B2093BF02D4
+:103430000C94FD182091BF02809582238093BF02D7
+:10344000982F977069F430E0482F552747FD509525
+:103450002417350729F08595859585950C941E19B7
+:1034600008959091BF02977081E009F480E008957B
+:1034700020910C0130910D01F90132969FEF40E04F
+:103480005191581789F09F3F19F4511101C0942FA1
+:103490004F5F4630A9F79F3F39F0F901E90FF11D61
+:1034A00097FDFA9582830895089520910C0130913B
+:1034B0000D01F9013296285F3F4F9081981301C0AA
+:1034C00010823196E217F307C1F7089581E090E08A
+:1034D000E0910C01F0910D01E80FF91F10820196A7
+:1034E00088309105A9F708959091CB02892B80939C
+:1034F000CB02089580959091CB0289238093CB02D3
+:1035000008951092CB0208959091CA02892B80935E
+:10351000CA02089580959091CA0289238093CA02B5
+:1035200008951092CA0208959091C902892B809340
+:10353000C902089580959091C90289238093C90298
+:1035400008951092C90208958093C00208951092C0
+:10355000C002089580910C0190910D01FC013196FB
+:103560009C01285F3F4F80E0919191118F5FE2179E
+:10357000F307D1F70895E0910C01F0910D018091CE
+:10358000CB028083E0910C01F0910D01908180913C
+:10359000CA02892B8083E0910C01F0910D0190818A
+:1035A0008091C902892B80838091C002882361F0B9
+:1035B000E0910C01F0910D019081892B80830E9494
+:1035C000AA1A81111092C00280910C0190910D01F4
+:1035D0000C94EA0F0E94C01480E00E9402030E9433
+:1035E000AC210E94DE0F0C9419071F920F920FB6A8
+:1035F0000F9211248F939F93AF93BF938091CD022D
+:10360000811113C08091CE029091CF02A091D0027F
+:10361000B091D1024196A11DB11D8093CE0290932D
+:10362000CF02A093D002B093D102BF91AF919F91EE
+:103630008F910F900FBE0F901F90189582E084BD60
+:1036400093E095BD9AEF97BD80936E0008952FB7D4
+:10365000F8948091CE029091CF02A091D002B091C7
+:10366000D1022FBF0895CF92DF92EF92FF920F9376
+:103670001F932FB7F8944091CE025091CF026091E2
+:10368000D0027091D1022FBF6A017B01EE24FF248A
+:103690008C0120E030E0C016D106E206F30610F4FB
+:1036A000415051099A01281B390BC9011F910F91F3
+:1036B000FF90EF90DF90CF9008951F920F920FB67A
+:1036C0000F9211248F939F93AF93BF938091CE025B
+:1036D0009091CF02A091D002B091D1020196A11D8C
+:1036E000B11D8093CE029093CF02A093D002B093ED
+:1036F000D102BF91AF919F918F910F900FBE0F900C
+:103700001F9018950E949C0CF8942FEF87EA91E681
+:10371000215080409040E1F700C0000087E090EB2E
+:10372000DC018093ED029093EE02A093EF02B09340
+:10373000F0029CE088E10FB6F894A89580936000B1
+:103740000FBE90936000FFCFAF92BF92CF92DF92F7
+:10375000EF92FF920F931F93CF93C3E0CC24C394B7
+:10376000D12CE82EF12C8C2F0E94EF075C010CE08D
+:1037700010E09601002E02C0220F331F0A94E2F7D8
+:103780002A213B21232B51F0602F7C2F80E00E94C7
+:103790008906E816F90611F481E006C00150110906
+:1037A00040F7C15000F780E0CF911F910F91FF903B
+:1037B000EF90DF90CF90BF90AF900895CF93C82F38
+:1037C0008CE20E94A41B882321F08C2FCF910C94B3
+:1037D000A41B80E0CF910895CF930E94341D8111E6
+:1037E00002C00E94151DC5E6C15049F00E94740731
+:1037F0008FE39CE90197F1F700C00000F5CF89E263
+:103800000E94DE1B81110FC18AE20E94DE1B811122
+:103810000E94151D85E00E94DE1B81110E94821B03
+:103820000E943F1D8093CC0287E00E94DE1B88230C
+:10383000A9F18BE10E94DE1B882351F08091CC021C
+:1038400081FB222720F991E0922790FB81F90EC09D
+:103850008EE00E94DE1B882361F08091CC0282FB07
+:10386000222720F991E0922790FB82F98093CC02E5
+:1038700015C080E10E94DE1B9091CC02882341F0AC
+:1038800093FB222720F981E0822780FB93F904C073
+:10389000892F809580FB90F99093CC028091CC0287
+:1038A0000E94431D0E94511D90E09093DE02809380
+:1038B000DD0280EE0E94DE1B882341F08091DD0254
+:1038C000982F909590FB80F98093DD0289E30E9408
+:1038D000DE1B882359F08091DD0281FB222720F92D
+:1038E00091E0922790FB81F98093DD0282EE0E94A5
+:1038F000DE1B882359F08091DD0282FB222720F90C
+:1039000091E0922790FB82F98093DD0286EE0E947F
+:10391000DE1B882359F08091DD0283FB222720F9EA
+:1039200091E0922790FB83F98093DD0283EE0E9461
+:10393000DE1B882359F08091DD0284FB222720F9C9
+:1039400091E0922790FB84F98093DD0285E30E9449
+:10395000DE1B882359F08091DD0285FB222720F9A8
+:1039600091E0922790FB85F98093DD0281E30E942C
+:10397000DE1B882359F08091DD0286FB222720F987
+:1039800091E0922790FB86F98093DD0281E10E940D
+:10399000DE1B882359F08091DD0287FB222720F966
+:1039A00091E0922790FB87F98093DD028091DD0200
+:1039B0000E94551D87E20E94DE1BC82F8EE10E94E7
+:1039C000DE1B8111C2608FE10E94DE1B8111C46089
+:1039D00080E20E94DE1B8111C86081E20E94DE1B32
+:1039E0008111C06182E20E94DE1B8111C06283E20C
+:1039F0000E94DE1B8111C06484E20E94DE1B8823CA
+:103A000011F0C06802C0CC2329F08C2F0E944C1DFD
+:103A10006C2F03C00E94481D682F70E080E090E08A
+:103A2000CF910C948018CF9108956DEE7EEF80E0D9
+:103A300090E00E94BF2360E082E090E00E94AD230E
+:103A400060E083E090E00E94AD2360E084E090E0DD
+:103A50000E94AD2360E085E090E00E94AD2360E02D
+:103A600086E090E00C94AD2380E090E00E94A723D4
+:103A700021E08D3E9E4F09F020E0822F089582E0E4
+:103A800090E00C949F23682F82E090E00C94AD238B
+:103A900083E090E00C949F23682F83E090E00C94E7
+:103AA000AD2384E090E00C949F23682F84E090E0A5
+:103AB0000C94AD2386E090E00C949F23682F86E061
+:103AC00090E00C94AD238091D40280FF0BC06091F4
+:103AD000110185E0689FB001112475956795759572
+:103AE00067952BC081FF09C06091110185E0689F37
+:103AF000B00111247595679520C082FF07C06091C1
+:103B0000110185E0689FB001112417C09091D50282
+:103B10009923D1F060911001961788F72091110137
+:103B200085E0289F90011124929FA001939F500D42
+:103B3000112470E0CA010E9471236038710540F4BD
+:103B40006115710539F002C065E070E0862F0895B7
+:103B50008FE7089581E008958091D40280FF08C026
+:103B600060910F0170E0759567957595679521C017
+:103B700081FF06C060910F0170E07595679519C0CF
+:103B800082FF04C060910F0170E010C09091D502D7
+:103B90009923C1F060910E019617A0F780910F0153
+:103BA000899FC001112470E00E9471236038710563
+:103BB00028F46115710521F0862F08958FE7089587
+:103BC00081E0089561E070E0F4CF803F21F40E942D
+:103BD000631D819504C0813F29F40E94631D809379
+:103BE000D8020895823F21F40E94631D819504C08C
+:103BF000833F29F40E94631D8093D7020895893F73
+:103C000019F40E94AC1D05C08A3F31F40E94AC1D1E
+:103C100081958093D90208958B3F21F40E94AC1DB9
+:103C2000819504C08C3F29F40E94AC1D8093DA0278
+:103C30000895843F21F48091D602816017C0853FAA
+:103C400021F48091D602826011C0863F21F48091D8
+:103C5000D60284600BC0873F21F48091D602886031
+:103C600005C0883F31F48091D60280618093D602EE
+:103C700008958D3F21F48091D40281600BC08E3F66
+:103C800021F48091D402826005C08F3F29F4809195
+:103C9000D40284608093D4020895803F39F48091E7
+:103CA000D80287FF6CC01092D80269C0813F29F406
+:103CB0008091D8021816BCF362C09091D702823F5F
+:103CC00029F497FF5CC01092D70259C0833F19F4C2
+:103CD0001916CCF354C0893F41F48091D9021816CB
+:103CE0000CF04DC01092D9024AC08A3F29F480914D
+:103CF000D90287FF44C0F6CF8B3F39F48091DA02B6
+:103D000087FF3DC01092DA023AC08C3F29F48091BF
+:103D1000DA021816BCF333C0843F21F48091D60236
+:103D20008E7F17C0853F21F48091D6028D7F11C010
+:103D3000863F21F48091D6028B7F0BC0873F21F410
+:103D40008091D602877F05C0883F31F48091D602EA
+:103D50008F7E8093D60213C08D3F21F48091D402D0
+:103D60008E7F0BC08E3F21F48091D4028D7F05C0E1
+:103D70008F3F29F48091D4028B7F8093D40280916D
+:103D8000D70281110EC08091D80281110AC08091A2
+:103D9000D902811106C08091DA02811102C010920D
+:103DA000D502089586ED92E00E94F50F0E94271B30
+:103DB0009093D3028093D20208951F93CF93DF9301
+:103DC0008091D2029091D3020E94331BAC0190915A
+:103DD000D502992321F02091120130E006C02091F4
+:103DE00013018AE0289F900111244217530708F419
+:103DF00086C08091D702C091D802D091D90210918B
+:103E0000DA02811107C0C11176C0D11174C011113D
+:103E100072C075C09F3F19F09F5F9093D50218162E
+:103E200024F40E94631D8093D7028091D70287FFFC
+:103E300005C00E94631D81958093D7021C1624F44F
+:103E40000E94631D8093D8028091D80287FF05C02D
+:103E50000E94631D81958093D8026091D7026623EA
+:103E600039F1C091D802CC2319F1772767FD7095FD
+:103E7000872F972F0E94762223E333E343E35FE308
+:103E80000E94DA220E9443226093D7026C2F772788
+:103E900067FD7095872F972F0E94762223E333E3E7
+:103EA00043E35FE30E94DA220E9443226093D80238
+:103EB0001D1624F40E94AC1D8093D9028091D90272
+:103EC00087FF05C00E94AC1D81958093D902111611
+:103ED00024F40E94AC1D8093DA028091DA0287FFFD
+:103EE00005C00E94AC1D81958093DA02DF91CF91CD
+:103EF0001F910C94D21E9F3F09F08ECF96CFDF9179
+:103F0000CF911F910895E6EDF2E085E0DF011D926B
+:103F10008A95E9F71092D5021092D4020895833061
+:103F200081F128F4813059F08230D1F00895853044
+:103F300009F449C0B8F1863009F456C0089580915B
+:103F40001301262F30E0280F311D2F3F310524F4B7
+:103F5000680F6093130108958FEF80931301089504
+:103F600080911201262F30E0280F311D2F3F31059F
+:103F700024F4680F6093120108958FEF809312016B
+:103F8000089580911101262F30E0280F311D2F3F19
+:103F9000310524F4680F6093110108958FEF809329
+:103FA0001101089580911001262F30E0280F311D56
+:103FB0002F3F310524F4680F6093100108958FEFAF
+:103FC00080931001089580910F01262F30E0280F73
+:103FD000311D2F3F310524F4680F60930F010895C0
+:103FE0008FEF80930F01089580910E01262F30E00E
+:103FF000280F311D2F3F310524F4680F60930E0107
+:1040000008958FEF80930E010895833011F128F405
+:10401000813049F0823091F00895853081F120F1AE
+:104020008630C1F1089580911301681720F4861B32
+:104030008093130108951092130108958091120145
+:10404000681720F4861B80931201089510921201C4
+:10405000089580911101681720F4861B8093110147
+:10406000089510921101089580911001681720F4AD
+:10407000861B80931001089510921001089580917D
+:104080000F01681720F4861B80930F01089510928A
+:104090000F01089580910E01681720F4861B80930C
+:1040A0000E01089510920E0108950F931F93873209
+:1040B00008F040C08E3108F08AC08E3009F474C018
+:1040C000C0F4873009F45EC068F4863009F09AC005
+:1040D0008091CC02817F8E7F8093CC0281E080939F
+:1040E000DC0291C0883009F486C08B3009F483C0AB
+:1040F00089C0863109F47FC068F4803109F082C03C
+:104100008091CC0283FB222720F991E0922790FB3B
+:1041100083F953C0893109F46EC08B3109F072C044
+:104120008091CC0281FB222720F991E0922790FB1D
+:1041300081F943C0883309F45EC050F4893209F430
+:104140005CC0853309F459C0873209F456C05AC09F
+:10415000833409F452C028F48A3308F453C08953D5
+:1041600037C0883409F04EC00E94C0140FEF13ED21
+:1041700020E3015010402040E1F700C000000E9401
+:10418000821B39C09091CC02892F8095817080FB71
+:1041900090F929F0966098609093CC0234C0997F92
+:1041A000977F9093CC0227C08091CC0282FB22277C
+:1041B00020F991E0922790FB82F98093CC02992319
+:1041C000D1F08091CC0281608093CC0214C08D51DB
+:1041D00041E050E060E070E08A019B0104C0000F04
+:1041E000111F221F331F8A95D2F7C901B8010E94FF
+:1041F00080180E94C01481E006C061E070E080E099
+:1042000090E0F5CF80E01F910F91089580E0089530
+:1042100080E008958E518A3030F4E82FF0E0E75CBA
+:10422000FE4F8081089580E00895CF93C82F80913C
+:10423000DC02813069F018F08230C9F183C0E0916E
+:104240000C01F0910D018081823209F07DC007C020
+:10425000E0910C01F0910D018081823261F48C2F8C
+:104260000E940621811104C08C2F0E9455201DC080
+:1042700081E090E01AC08C2F0E940821811114C0A7
+:10428000C43179F048F4CB3079F0C03109F060C026
+:1042900082E08093DC0208C0C93219F0C83321F0F3
+:1042A00057C01092DC0254C081E0817053C0C93203
+:1042B00089F118F5C43171F1B0F4C73009F046C086
+:1042C0008EE18093130182E3809312018AE0809350
+:1042D000110184E18093100188E080930F0188E24E
+:1042E00080930E0133C082EE8C0F863078F58C2FD0
+:1042F0000E940A218093DB0229C0CE34E9F020F429
+:10430000CB3421F56AE013C0C13579F0C235F1F440
+:1043100061E00DC08091DB02882319F01092DB026E
+:1043200015C081E08093DC0215C061E006C0809179
+:10433000DB020E948F1F0AC06AE08091DB020E94AC
+:10434000052004C01092DC0280E004C081E002C0BD
+:1043500080E0ABCFCF9108950E94341D811102C03F
+:104360000E94151D0E945A1D8093EC0280FF02C01E
+:10437000869501C080E00C9402038091EC02982F96
+:104380009695292F30E0233031054CF49F5F990F2B
+:104390008170892B81608093EC020E945E1D809168
+:1043A000EC0286950C9402038091EC02982F96956E
+:1043B00091F09158990F8170892B8093EC028E7F38
+:1043C00091E009F490E08091EC0290FB80F98093F9
+:1043D000EC020E945E1D8091EC0286950C94020313
+:1043E0008091EC02982F909590FB80F98093EC02DD
+:1043F0000E945E1D8091EC0280FF02C0869501C084
+:1044000080E00C9402039091EC02892F86958F5FD7
+:104410008F779170843028F4880F892B8093EC0279
+:1044200002C09093EC028091EC028E7F91E009F43F
+:1044300090E08091EC0290FB80F98093EC020E9466
+:104440005E1D8091EC0286950C9402032091EC0293
+:10445000922F96958927982F990F822F8170892BFB
+:104460008093EC028E7F91E009F490E08091EC0261
+:1044700090FB80F98093EC020E945E1D8091EC021B
+:1044800086950C94020304D06894B1118DC00895F0
+:1044900070D088F09F5790F0B92F9927B751A0F0AE
+:1044A000D1F0660F771F881F991F1AF0BA95C9F7C8
+:1044B00012C0B13081F077D0B1E0089574C0672F99
+:1044C000782F8827B85F39F0B93FCCF38695779578
+:1044D0006795B395D9F73EF4909580957095619561
+:1044E0007F4F8F4F9F4F0895E89409C097FB3EF48C
+:1044F00090958095709561957F4F8F4F9F4F992331
+:10450000A9F0F92F96E9BB279395F69587957795AE
+:104510006795B795F111F8CFFAF4BB0F11F460FF6E
+:104520001BC06F5F7F4F8F4F9F4F16C0882311F0C6
+:1045300096E911C0772321F09EE8872F762F05C0DA
+:10454000662371F096E8862F70E060E02AF09A9575
+:10455000660F771F881FDAF7880F9695879597F96A
+:10456000089557FD9058440F551F59F05F3F71F063
+:104570004795880F97FB991F61F09F3F79F08795CA
+:104580000895121613061406551FF2CF4695F1DF53
+:1045900008C0161617061806991FF1CF86957105E3
+:1045A000610508940895E894BB2766277727CB0117
+:1045B00097F908950BD078C069D028F06ED018F024
+:1045C000952309F05AC05FC01124EECFCADFA0F3D3
+:1045D000959FD1F3950F50E0551F629FF001729F98
+:1045E000BB27F00DB11D639FAA27F00DB11DAA1FB7
+:1045F000649F6627B00DA11D661F829F2227B00D04
+:10460000A11D621F739FB00DA11D621F839FA00D8E
+:10461000611D221F749F3327A00D611D231F849FDE
+:10462000600D211D822F762F6A2F11249F57504035
+:104630008AF0E1F088234AF0EE0FFF1FBB1F661FD0
+:10464000771F881F91505040A9F79E3F510570F089
+:1046500014C0AACF5F3FECF3983EDCF386957795C4
+:104660006795B795F795E7959F5FC1F7FE2B880F84
+:10467000911D9695879597F9089597F99F6780E81A
+:1046800070E060E008959FEF80EC089500240A94A4
+:104690001616170618060906089500240A9412161D
+:1046A0001306140605060895092E0394000C11F450
+:1046B000882352F0BB0F40F4BF2B11F460FF04C0FD
+:1046C0006F5F7F4F8F4F9F4F0895991B79E004C014
+:1046D000991F961708F0961B881F7A95C9F7809541
+:1046E000089597FB072E16F4009407D077FD09D0A4
+:1046F0000E948B2307FC05D03EF4909581959F4F37
+:104700000895709561957F4F0895EE0FFF1F0590F6
+:10471000F491E02D0994AA1BBB1B51E107C0AA1F0D
+:10472000BB1FA617B70710F0A61BB70B881F991F52
+:104730005A95A9F780959095BC01CD010895F999F6
+:10474000FECF92BD81BDF89A992780B50895A8E162
+:10475000B0E042E050E00C94C723262FF999FECF39
+:1047600092BD81BDF89A019700B4021639F01FBAC4
+:1047700020BD0FB6F894FA9AF99A0FBE08950196E3
+:10478000272F0E94AE230C94AD23DC01CB01FC014A
+:10479000F999FECF06C0F2BDE1BDF89A319600B49A
+:0E47A0000D9241505040B8F70895F894FFCFA5
+:1047AE00FFF9072309DF08AB08FC0701C10228083F
+:1047BE00140A321E4F7953636676496959091929CD
+:1047CE00030F1F5F43404D36201405C7049104713B
+:1047DE0004FD0316042F0448040102030405060712
+:0447EE0008090000B6
+:00000001FF
diff --git a/keyboards/jd45/keymaps/justin/keymap.c b/keyboards/jd45/keymaps/justin/keymap.c
new file mode 100644
index 0000000000..f261b54633
--- /dev/null
+++ b/keyboards/jd45/keymaps/justin/keymap.c
@@ -0,0 +1,101 @@
+#include "jd45.h"
+#include "backlight.h"
+
+/* JD45 keymap definition macro
+ */
+#define KEYMAP( \
+ K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, \
+ K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, \
+ K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, K37, \
+ K38, K39, K40, K41, K42, K43, K44, K45, K46, K47 \
+) { \
+ { KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K10, KC_##K11, KC_##K12, KC_##K13 }, \
+ { KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_NO }, \
+ { KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_NO }, \
+ { KC_##K38, KC_##K39, KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_##K43, KC_NO, KC_##K44, KC_##K45, KC_##K46, KC_##K47, KC_NO } \
+}
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = KEYMAP(
+ ESC, Q, W, F, P, G, J, L, U, Y, SCLN, QUOT, BSPC,
+ FN8, A, R, S, T, D, H, N, E, I, O, ENT,
+ LSFT, Z, X, C, V, B, K, M, COMM, DOT, SLSH, FN6,
+ FN4, LGUI, FN7, FN2, FN1, SPC, FN5, RALT, FN3, FN0 ),
+[1] = KEYMAP(
+ TRNS, FN10, FN11, FN12, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, DEL,
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGUP, LEFT, RGHT,
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, END, PGDN, DOWN, TRNS,
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS ),
+[2] = KEYMAP(
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, 7, 8, 9, 0, TRNS, TRNS,
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, 4, 5, 6, DOT, TRNS,
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC, 1, 2, 3, BSLS, TRNS,
+ TRNS,FN29, TRNS, TRNS, TRNS, PAUSE, EQL, MINS, TRNS, TRNS ),
+[3] = KEYMAP(
+ TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12,
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS ),
+[4] = KEYMAP(
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, 7, 8, 9, 0, TRNS, TRNS,
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, 4, 5, 6, DOT, TRNS,
+ TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC, 1, 2, 3, BSLS, TRNS,
+ TRNS,FN29, TRNS, TRNS, TRNS, PAUSE, EQL, MINS, TRNS, TRNS ),
+};
+
+enum macro_id {
+ PSWD1,
+ PSWD2,
+ PSWD3,
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [0] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_MINS),
+ [1] = ACTION_LAYER_MOMENTARY(1), // FN1
+ [2] = ACTION_LAYER_MOMENTARY(2), // FN2
+ [3] = ACTION_LAYER_MOMENTARY(3), // FN3
+ [4] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_GRV),
+ [5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_RGUI),
+ [6] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_CAPS),
+ [7] = ACTION_LAYER_MODS(4, MOD_LSFT), // FN4
+ [8] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_TAB),
+
+ [10] = ACTION_MACRO(PSWD1),
+ [11] = ACTION_MACRO(PSWD2),
+ [12] = ACTION_MACRO(PSWD3),
+
+ [29] = ACTION_BACKLIGHT_TOGGLE(),
+ [30] = ACTION_BACKLIGHT_INCREASE(),
+ [31] = ACTION_BACKLIGHT_DECREASE()
+
+};
+
+/*
+ * Macro definition
+ */
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch (id) {
+ case PSWD1:
+ return (record->event.pressed ?
+ MACRO( I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END ) :
+ MACRO_NONE );
+ case PSWD2:
+ return (record->event.pressed ?
+ MACRO( I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END ) :
+ MACRO_NONE );
+ case PSWD3:
+ return (record->event.pressed ?
+ MACRO( I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END ) :
+ MACRO_NONE );
+ //case VOLUP:
+ // return (record->event.pressed ?
+ // MACRO( D(VOLU), U(VOLU), END ) :
+ // MACRO_NONE );
+ //case ALT_TAB:
+ // return (record->event.pressed ?
+ // MACRO( D(LALT), D(TAB), END ) :
+ // MACRO( U(TAB), END ));
+ }
+ return MACRO_NONE;
+}