diff options
Diffstat (limited to 'keyboard/alps64')
-rw-r--r-- | keyboard/alps64/Makefile | 70 | ||||
-rw-r--r-- | keyboard/alps64/alps64.c | 43 | ||||
-rw-r--r-- | keyboard/alps64/alps64.h | 40 | ||||
-rw-r--r-- | keyboard/alps64/config.h | 75 | ||||
-rw-r--r-- | keyboard/alps64/keymaps/default/compiled.hex | 1373 | ||||
-rw-r--r-- | keyboard/alps64/keymaps/default/keymap.c | 12 | ||||
-rw-r--r-- | keyboard/alps64/led.c | 34 | ||||
-rw-r--r-- | keyboard/alps64/matrix.c | 197 |
8 files changed, 0 insertions, 1844 deletions
diff --git a/keyboard/alps64/Makefile b/keyboard/alps64/Makefile deleted file mode 100644 index d8325e6c8..000000000 --- a/keyboard/alps64/Makefile +++ /dev/null @@ -1,70 +0,0 @@ - - -# Target file name (without extension). - -# project specific files -SRC = led.c - -# MCU name -MCU = atmega32u2 - -# 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 -#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA - -ifndef QUANTUM_DIR - include ../../Makefile -endif
\ No newline at end of file diff --git a/keyboard/alps64/alps64.c b/keyboard/alps64/alps64.c deleted file mode 100644 index dde10c11e..000000000 --- a/keyboard/alps64/alps64.c +++ /dev/null @@ -1,43 +0,0 @@ -/* -Copyright 2012,2013 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/>. -*/ -#include "quantum.h" - -#define LED_ON() do { DDRC |= (1<<5); PORTC |= (1<<5); } while (0) -#define LED_OFF() do { DDRC &= ~(1<<5); PORTC &= ~(1<<5); } while (0) -#define LED_TGL() do { DDRC |= (1<<5); PINC |= (1<<5); } while (0) - -__attribute__ ((weak)) -void matrix_init_user(void) { - -} - -__attribute__ ((weak)) -void matrix_scan_user(void) { - -} - -void matrix_init_kb(void) { - LED_ON(); - _delay_ms(500); - LED_OFF(); - - matrix_init_user(); -} - -void matrix_scan_kb(void) { - matrix_scan_user(); -} diff --git a/keyboard/alps64/alps64.h b/keyboard/alps64/alps64.h deleted file mode 100644 index f265c3358..000000000 --- a/keyboard/alps64/alps64.h +++ /dev/null @@ -1,40 +0,0 @@ -/* -Copyright 2012,2013 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 ALPS64_H -#define ALPS64_H - -#include "quantum.h" - -/* Alps64 keymap definition macro */ -#define KEYMAP( \ - K36, K37, K46, K47, K56, K57, K66, K67, K76, K77, K06, K07, K17, K26, K27, \ - K34, K35, K44, K45, K54, K55, K64, K65, K75, K05, K15, K16, K25, K24, \ - K32, K33, K43, K52, K53, K63, K73, K74, K03, K04, K13, K14, K23, \ - K31, K41, K42, K51, K61, K62, K71, K72, K01, K02, K11, K12, K21, K22, \ - K30, K40, K50, K60, K70, K00, K10, K20 \ -) { \ - { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, \ - { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17 }, \ - { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27 }, \ - { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37 }, \ - { KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46, KC_##K47 }, \ - { KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57 }, \ - { KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66, KC_##K67 }, \ - { KC_##K70, KC_##K71, KC_##K72, KC_##K73, KC_##K74, KC_##K75, KC_##K76, KC_##K77 } \ -} - -#endif diff --git a/keyboard/alps64/config.h b/keyboard/alps64/config.h deleted file mode 100644 index 858a82ecd..000000000 --- a/keyboard/alps64/config.h +++ /dev/null @@ -1,75 +0,0 @@ -/* -Copyright 2015 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 0x6464 -#define DEVICE_VER 0x0001 -#define MANUFACTURER TMK -#define PRODUCT Alps64 -#define DESCRIPTION TMK keyboard firmware for Alps64 - -/* key matrix size */ -#define MATRIX_ROWS 8 -#define MATRIX_COLS 8 - -#define MATRIX_COL_PINS { B0, B1, B2, B3, B4, B5, B6, B7 } -#define MATRIX_ROW_PINS { D0, D1, D2, D3, D4, D5, D6, C2 } -#define UNUSED_PINS - -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - - - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboard/alps64/keymaps/default/compiled.hex b/keyboard/alps64/keymaps/default/compiled.hex deleted file mode 100644 index ef43410f2..000000000 --- a/keyboard/alps64/keymaps/default/compiled.hex +++ /dev/null @@ -1,1373 +0,0 @@ -:100000000C940B060C944F060C944F060C944F0660
-:100010000C944F060C944F060C944F060C944F060C
-:100020000C944F060C944F060C944F060C94D5106C
-:100030000C9483110C94E81E0C944F060C944F06FC
-:100040000C944F060C944F060C944F060C94501FC2
-:100050000C944F060C944F060C944F060C944F06CC
-:100060000C944F060C944F060C944F060C944F06BC
-:100070000C944F06F01112120013121200135712B3
-:100080007A120013CF12E2120C160C163B163B1616
-:100090007A169A16CA17CA17A516CA1755175517EA
-:1000A000BB17CA17CA17C4176217621762176217FD
-:1000B0006217621762176217621762176217621778
-:1000C00062176217621762177217801787178E17E9
-:1000D0009817E600100036000E000F0012002700EF
-:1000E0002D00E700370038003300340013002F00E4
-:1000F0002E00E400E5002900280031003000320025
-:100100002A00E000E100390004002B001400350053
-:100110001E00E30064001D0016001A0008001F0006
-:100120002000E2001B000700090015001700210055
-:1001300022002C00060019000A001C0018002300F1
-:1001400024006500050011000B000D000C002500C7
-:1001500026000A44454255473A20656E61626C6547
-:10016000642E0A005374617465206F6620726F7785
-:100170002025583A2025303136620A0048756D61D5
-:100180006E2D7265616461626C65206D6174726967
-:10019000782073746174653A0D0A004465626F7566
-:1001A0006E63696E672064656C61792072656D614C
-:1001B000696E696E673A2025580A005B735D004BD3
-:1001C0006579626F6172642073746172742E0A00C3
-:1001D0005B525D005B445D005B435D000E034100CC
-:1001E0006C007000730036003400000008035400F7
-:1001F0004D004B00000004030904090274000401CF
-:1002000000A0FA0904000001030101000921110105
-:100210000001223F000705810308000A09040100CC
-:100220000103010200092111010001224D0007050F
-:10023000820308000A0904020001030000000921EA
-:10024000110100012236000705830308000A090492
-:100250000300020300000009211101000122200017
-:100260000705840320000107050403200001120193
-:10027000100100000008EDFE6464010001020001AD
-:100280000631FF0974A1010975150025FF95207538
-:100290000881020976150025FF952075089102C096
-:1002A00005010980A101850216010026B7001A0187
-:1002B000002AB700751095018100C0050C0901A145
-:1002C000018503160100269C021A01002A9C027572
-:1002D0001095018100C005010902A1010901A100D9
-:1002E00005091901290515002501950575018102EA
-:1002F0009501750381010501093009311581257FBB
-:1003000095027508810609381581257F95017508C4
-:100310008106050C0A38021581257F950175088133
-:1003200006C0C005010906A101050719E029E71566
-:100330000025019508750181029501750881010567
-:10034000081901290595057501910295017503911B
-:10035000010507190029FF150025FF95067508817D
-:1003600000C00A002530325820006B6579626F6149
-:1003700072645F7265706F72743A20004B657962C7
-:100380006F617264204C4544732073746174653AE4
-:100390002025780A00646F6E652E0A00626F6F6711
-:1003A0006D61676963207363616E3A202E2E2E2083
-:1003B00000290A002575002F002575005D280025FD
-:1003C00064002000256400200025640020002564CE
-:1003D000007C0025303258006D6F7573656B657950
-:1003E000205B62746E7C782079207620685D2872AC
-:1003F00065702F61636C293A205B006D6B5F7768D5
-:1004000065656C5F74696D655F746F5F6D617820A1
-:100410003D2025640A006D6B5F776865656C5F6DD4
-:1004200061785F7370656564203D2025640A006D06
-:100430006B5F74696D655F746F5F6D6178203D20DF
-:1004400025640A006D6B5F6D61785F73706565642C
-:10045000203D2025640A006D6B5F696E74657276BD
-:10046000616C203D2025640A006D6B5F64656C61E2
-:1004700079203D2025640A006D6B5F776865656CA7
-:100480005F74696D655F746F5F6D6178203D2025D5
-:10049000640A006D6B5F776865656C5F6D61785F9E
-:1004A0007370656564203D2025640A006D6B5F7480
-:1004B000696D655F746F5F6D6178203D2025640A0A
-:1004C000006D6B5F6D61785F7370656564203D20C2
-:1004D00025640A006D6B5F696E74657276616C20CD
-:1004E0003D2025640A006D6B5F64656C6179203D79
-:1004F0002025640A000A00257500363A20776865D1
-:10050000656C5F74696D655F746F5F6D61783A20CB
-:10051000000A00257500353A20776865656C5F6DC7
-:1005200061785F73706565643A20000A0025750084
-:10053000343A2074696D655F746F5F6D61783A203D
-:10054000000A00257500333A206D61785F7370658D
-:1005500065643A20000A00257500323A20696E74FD
-:10056000657276616C286D73293A20000A00257542
-:1005700000313A2064656C6179282A31306D732925
-:100580003A20000A092D2056616C756573202D0AEA
-:10059000004D3E004D25643E20003F0073657420F1
-:1005A00064656661756C740A00433E200077686577
-:1005B00072652064656C74613A20637572736F7242
-:1005C0003D25642C20776865656C3D25640A53657C
-:1005D0006520687474703A2F2F656E2E77696B6989
-:1005E00070656469612E6F72672F77696B692F4D33
-:1005F0006F7573655F6B6579730A000A092D204D6D
-:100600006F7573656B6579202D0A4553432F713AD9
-:1006100009717569740A313A0964656C6179282A2F
-:1006200031306D73290A323A09696E7465727661E8
-:100630006C286D73290A333A096D61785F737065B0
-:1006400065640A343A0974696D655F746F5F6D6142
-:10065000780A353A09776865656C5F6D61785F7314
-:10066000706565640A363A09776865656C5F746918
-:100670006D655F746F5F6D61780A0A703A09707218
-:10068000696E742076616C7565730A643A097365E6
-:10069000742064656661756C74730A75703A092B11
-:1006A000310A646F776E3A092D310A706775703AB6
-:1006B000092B31300A7067646F776E3A092D31303B
-:1006C0000A0A7370656564203D2064656C7461205E
-:1006D0002A206D61785F7370656564202A20287216
-:1006E0006570656174202F2074696D655F746F5F3C
-:1006F0006D6178290A003F004D3E2000433E2000F6
-:100700004C25640A0074696D65725F636F756E7461
-:100710003A202530346C580A006B6579626F61723B
-:10072000645F69646C653A2025580A006B657962DC
-:100730006F6172645F70726F746F636F6C3A2025C3
-:10074000580A00686F73745F6B6579626F617264D9
-:100750005F6C65647328293A2025580A000A092D20
-:1007600020537461747573202D0A004743433A2067
-:10077000342E392E32204156522D4C4942433A20D4
-:10078000312E382E31204156525F415243483A2093
-:1007900061767233350A004F5054494F4E533A2018
-:1007A0004C55464120424F4F544D41474943204DFF
-:1007B0004F5553454B45592045585452414B455987
-:1007C00020434F4E534F4C4520434F4D4D414E44D7
-:1007D00020343039360A004255494C443A203136EB
-:1007E00037313865662D6469727479202832333A5E
-:1007F00030373A3132204A756E202039203230317C
-:1008000036290A005649443A20307846454544285E
-:10081000544D4B29205049443A20307836343634F0
-:1008200028416C7073363429205645523A2030786E
-:10083000303030310A00444553433A20544D4B2068
-:100840006B6579626F617264206669726D7761723F
-:100850006520666F7220416C707336340A000A0995
-:100860002D2056657273696F6E202D0A000A092DBE
-:1008700020436F6E736F6C65202D0A4553432F71B3
-:100880003A09717569740A6D3A096D6F7573656B14
-:1008900065790A000A092D204D61676963202D0AD8
-:1008A000443A094465627567204D657373616765F5
-:1008B00020546F67676C650A583A094D6174726914
-:1008C00078204465627567204D6F646520546F67BA
-:1008D000676C65202D2053686F77206B6579707287
-:1008E000657373657320696E206D61747269782019
-:1008F000677269640A4B3A094B6579626F61726489
-:1009000020446562756720546F67676C65202D20F1
-:1009100053686F77206B65797072657373207265A9
-:10092000706F72740A4D3A094465627567204D6FA5
-:1009300075736520546F67676C650A563A0956658A
-:100940007273696F6E0A533A095374617475730A4E
-:10095000433A09416374697661746520436F6E732D
-:100960006F6C65204D6F64650A46312D4631303A13
-:100970000953776974636820746F204C61796572DC
-:1009800020302D392028463130203D204C30290A96
-:10099000302D393A0953776974636820746F204C9D
-:1009A0006179657220302D390A4553433A095377EE
-:1009B0006974636820746F204C61796572203020FF
-:1009C00028616C7465726E617465206B6579203185
-:1009D000290A47524156453A09537769746368209A
-:1009E000746F204C6179657220302028616C7465C9
-:1009F000726E617465206B65792032290A50415509
-:100A000053453A094A756D7020746F20426F6F74B8
-:100A10006C6F6164657220285265736574290A459C
-:100A20003A095072696E7420454550524F4D20531B
-:100A3000657474696E67730A000A002575002E6E6E
-:100A40006B726F3A20000A002575002E7377617073
-:100A50005F6261636B736C6173685F6261636B7328
-:100A6000706163653A20000A002575002E73776176
-:100A7000705F67726176655F6573633A20000A0094
-:100A80002575002E6E6F5F6775693A20000A002594
-:100A900075002E737761705F72616C745F72677539
-:100AA000693A20000A002575002E737761705F6C2B
-:100AB000616C745F6C6775693A20000A00257500E7
-:100AC0002E636170736C6F636B5F746F5F636F6EC7
-:100AD00074726F6C3A20000A002575002E737761DE
-:100AE000705F636F6E74726F6C5F636170736C6F55
-:100AF000636B3A20000A0025303258006B65796D2F
-:100B000061705F636F6E6669672E7261773A20006D
-:100B10000A002575002E6D6F7573653A20000A0076
-:100B20002575002E6B6579626F6172643A20000A48
-:100B3000002575002E6D61747269783A20000A00F4
-:100B40002575002E656E61626C653A20000A0025ED
-:100B50003032580064656275675F636F6E666967FF
-:100B60002E7261773A20000A00257500646566617F
-:100B7000756C745F6C617965723A20003F000A6D94
-:100B80006F7573653A206F66660A000A6D6F75733C
-:100B9000653A206F6E0A000A6B6579626F61726454
-:100BA0003A206F66660A000A6B6579626F6172644B
-:100BB0003A206F6E0A000A6D61747269783A206F8C
-:100BC00066660A000A6D61747269783A206F6E0A6F
-:100BD000000A64656275673A206F66660A000A64F7
-:100BE000656275673A206F6E0A000A0A4A756D7071
-:100BF000696E6720746F20626F6F746C6F616465DB
-:100C0000722E2E2E2000433E20006565636F6E66B7
-:100C100069673A0A000011241FBECFEFD4E0DEBF9F
-:100C2000CDBF04B603FE24C08091E8019091E90194
-:100C3000A091EA01B091EB018730904BA740B04BF7
-:100C4000B9F41092E8011092E9011092EA011092B1
-:100C5000EB0114BE84B7877F84BF88E10FB6F89498
-:100C600080936000109260000FBEE0E0F8E3099509
-:100C700011E0A0E0B1E0E2E6F5E502C005900D92DA
-:100C8000A234B107D9F711E0A2E4B1E001C01D928E
-:100C9000A83EB107E1F70E942D0E0C94AF2A0C94E8
-:100CA0000000FF93EF93E0914201F09143013097F0
-:100CB00009F00995EF91FF910895FC01859180302D
-:100CC00011F0EFDFFBCF0895FF27E0E230E247FFAE
-:100CD0000CC0419597FF09C0EDE260957095809535
-:100CE0009095611D711D811D911D27FF02C02195E9
-:100CF00030E350E2AA27660F771F881F991FAA1FAB
-:100D0000A41710F0A41B63955A95A9F7AA3008F010
-:100D1000A95FA05DAF93F3956115710581059105FC
-:100D200041F7ED3211F4EF93F395F21718F43F9376
-:100D3000F395FBCF8F91B5DFFA95E1F70895E9912F
-:100D4000F9918591803021F0853219F0AADFF9CF31
-:100D5000089520E0E89455915532C1F3503311F4D1
-:100D6000689455915A3348F4505390F3220F022E51
-:100D7000220F220F200D250FF4CF0EF4219589911B
-:100D80009991533619F3533729F1533559F1BC0171
-:100D900088279927E8945C3621F489919991689481
-:100DA0005591543639F446EF7EF077FF0DC08FEF42
-:100DB0009FEF0AC055374AE039F0583540E121F03D
-:100DC000523642E009F00895FF93EF937DDFEF91F3
-:100DD000FF91B7CFFF93EF93FC0181918030B9F37E
-:100DE00060DFFBCFFF93EF9368DFF1CFDF93CF930B
-:100DF000CDB7DEB72596A3DFCF91DF91089581FFB0
-:100E000003C03D9A459A08953D98459808950895E0
-:100E100008953D9A459A2FEF89E698E12150804048
-:100E20009040E1F700C000003D9845980C940707FA
-:100E30000C94080781E0089581E008950C941C0744
-:100E400008950F931F93CF93DF938C01FC01C08112
-:100E5000D181CE010E94411DBE010E94D107EC014B
-:100E6000B8010E941E07882309F48DC0F801828111
-:100E7000882309F44AC080914F0181111FC0C431F9
-:100E8000F0E5DF0709F051C00E94200781E0809360
-:100E90004F010E941A1F90934E0180934D011092B2
-:100EA0004601109248011092470110924A01109297
-:100EB000490110924C0110924B0165C080914D0187
-:100EC00090914E010E94261F883C910570F48091FC
-:100ED0004601E82FF0E0EE0FFF1FE95BFE4FD183E4
-:100EE000C0838F5F809346014EC0C43880E5D80729
-:100EF00021F0C538D04501F13AC0F801828188233C
-:100F000041F01092440182E01EC0C438E0E5DE07E3
-:100F100059F580914401811106C086E20E94B01407
-:100F200086E20E94781582E01CC0C438F0E5DF0735
-:100F300041F3C538D045D9F4F8018281882331F0D6
-:100F40001092450180E20E94C7151DC080914501A5
-:100F5000811106C087E20E94B01487E20E947815D2
-:100F600080E20E94CE150FC0C538D04529F381E03C
-:100F70008093440180934501C801DF91CF911F9177
-:100F80000F910C941A0780E0DF91CF911F910F9180
-:100F900008950C9409070C94180780E090E00895D8
-:100FA0000895E82FF0E083E0EE0FFF1F8A95E1F748
-:100FB000E70FF11D93E0EE0FFF1F9A95E1F7E60FA3
-:100FC000F11DEE0FFF1FEE52FF4F85919491089592
-:100FD000880F991FFC01EE5AF04085919491089575
-:100FE000880F991FFC01EE52FF4F8591949108954F
-:100FF0000F931F93CF93DF93EC01811520E39207AA
-:1010000050F5C11580E2D80708F0C3C0CB3BD1052D
-:1010100090F4C83AD10508F06AC0C53AD10508F085
-:101020005BC0C430D10508F0D4C1219709F0CEC10E
-:1010300001E010E00EC2CF3FD10511F008F0C9C1A8
-:10104000C03FD10508F0A2C0CE01805E910908978B
-:1010500008F4BFC1BBC1C13090E5D90709F4A2C0F3
-:1010600020F5C0318FE4D80770F4C11590E4D9079A
-:1010700008F094C0C11521E3D20708F0A7C1DD270D
-:101080008E01106CE6C1C115D04509F09FC10E94C8
-:1010900035188FEF94E32CE0815090402040E1F729
-:1010A00000C000000E94751FD4C1C11597E5D90783
-:1010B00058F4C03121E5D20708F020C1C43180E5E1
-:1010C000D80708F479C082C1CE01905781159041AC
-:1010D00008F07CC1DF7077C1C53AD10509F47BC146
-:1010E000C63AD10509F07AC102E810E4B2C1C83AA3
-:1010F000D10509F476C1C93AD10509F475C1CA3AD6
-:10110000D10509F474C1CB3AD10509F473C1CC3AC5
-:10111000D10509F472C1CD3AD10509F471C1C03BC2
-:10112000D10509F470C1CE3AD10509F46FC1CF3AA7
-:10113000D10509F46EC1C13BD10509F46DC1C23BB3
-:10114000D10509F46CC1C33BD10509F46BC1C43BA3
-:10115000D10509F46AC1C53BD10509F469C1C63B93
-:10116000D10509F468C1C73BD10509F467C1C83B83
-:10117000D10509F466C1C93BD10509F465C1CA3B73
-:10118000D10509F464C100E014E463C18E01106567
-:1011900060C1CE019F700E94F0075CC1DF708E01BC
-:1011A000106A57C182E591E00E945D068091C901F5
-:1011B00081608093C9014DC10E941B21811102C031
-:1011C0000E9401210E94382190E09093E8018093D1
-:1011D000E701C23080E5D80721F48091E701816002
-:1011E00086C0C43090E5D90721F48091E701826080
-:1011F0007EC0C63020E5D20721F48091E7018460EB
-:1012000076C0C83080E5D80719F48091E70127C07F
-:10121000CA3090E5D90721F48091E701806167C069
-:10122000CC3020E5D20721F48091E70180625FC0D5
-:10123000CE3080E5D80721F48091E701806457C063
-:10124000C03190E5D90721F48091E70180684FC053
-:10125000C23120E5D20729F48091E70184608860DB
-:1012600046C0C33080E5D80721F48091E7018E7F26
-:101270003EC0C53090E5D90721F48091E7018D7F0C
-:1012800036C0C73020E5D20721F48091E7018B7F7B
-:101290002EC0C93080E5D80719F48091E70126C037
-:1012A000CB3090E5D90721F48091E7018F7E1FC0F4
-:1012B000CD3020E5D20721F48091E7018F7D17C062
-:1012C000CF3080E5D80721F48091E7018F7B0FC0F4
-:1012D000C13190E5D90721F48091E7018F7707C0EC
-:1012E000C331D04531F48091E7018B7F877F8093B4
-:1012F000E7018091E7010E943C21ABC08D2F992727
-:101300008F70992781309105D9F49E01237033277E
-:1013100002C0880F991F2A95E2F79C688E0144E06D
-:10132000000F111F4A95E1F700271370802B912BB6
-:1013300053E0CC0FDD1F5A95E1F7C076DD272FC0B3
-:101340008230910531F4DC2FCC278E01016F106AB9
-:1013500080C08330910569F4CE018370992701E044
-:1013600010E002C0000F111F8A95E2F7C8019C68C7
-:101370000FC084309105B9F4CE018370992701E044
-:1013800010E002C0000F111F8A95E2F7C8019A68A9
-:1013900023E0CC0FDD1F2A95E1F7C07ED7708C01CA
-:1013A0000C2B1D2B56C08530910531F4DC2FCC273A
-:1013B0008E01046F106A4DC0069709F04AC0CF71C4
-:1013C000DD27DC2FCC278E01106243C000E010E047
-:1013D00040C08E013EC001E810E43BC003E810E4C9
-:1013E00038C002EE14E435C009EE14E432C00AEE4F
-:1013F00014E42FC005EB14E42CC006EB14E429C060
-:1014000007EB14E426C00CEC14E423C00DEC14E448
-:1014100020C003E815E41DC00AE815E41AC002E97B
-:1014200015E417C004E915E414C001E216E411C084
-:1014300003E216E40EC004E216E40BC005E216E473
-:1014400008C006E216E405C007E216E402C00AE29C
-:1014500016E4C801DF91CF911F910F910895E82FF5
-:10146000F0E083E0EE0FFF1F8A95E1F7E70FF11D33
-:1014700093E0EE0FFF1F9A95E1F7E60FF11DEE0FD7
-:10148000FF1FEE52FF4F85919491803E9105E0F44D
-:10149000803C910558F58133910509F46FC048F4FB
-:1014A0008932910509F463C08A32910509F46DC04F
-:1014B00072C089339105E9F082389105D1F0853306
-:1014C000910509F44DC067C0833E910581F138F460
-:1014D000803E9105B9F0823E9105D9F05CC0863E10
-:1014E000910561F1873E9105A1F155C00E94E80781
-:1014F00008952091E70120FD02C021FF4CC080EE3D
-:1015000090E049C08091E70180FFF9CF89E390E046
-:1015100042C08091E70182FF0EC08091E70184FF05
-:1015200003C080E090E037C083EE90E034C080914B
-:10153000E70182FFF2CF82EE90E02DC08091E701BB
-:1015400083FF0BC08091E70184FDEBCF87EE90E035
-:1015500022C08091E70183FFF5CF86EE90E01BC0AB
-:101560008091E70185FF07C089E290E014C0809177
-:10157000E70185FFF9CF85E390E00DC08091E70199
-:1015800086FF07C08AE290E006C08091E70186FFEF
-:10159000F9CF81E390E00E94F8070895E82FF0E08A
-:1015A000E45EFE4F8081E82FEF70F0E082958F704F
-:1015B00021E030E0A90102C0440F551F8A95E2F7EF
-:1015C00040A308950F931F93CF93DF93C7E0D0E01C
-:1015D00001E010E0FE01E45EFE4F8081E82FEF7035
-:1015E000F0E021A182958F70A80102C0440F551F21
-:1015F0008A95E2F7CA01822B81A38C2F0E94CE0A22
-:10160000219740F787E090E061E070E0FC01EC5E3C
-:10161000FE4F2081E22FEF70F0E042A122952F7063
-:10162000DB0102C0AA0FBB1F2A95E2F79D01242B04
-:1016300022A3019758F7DF91CF911F910F910C943E
-:10164000C907EF92FF920F931F93CF93DF9308E5A3
-:1016500011E0C7E0EE24E394F12CD5E08C2F0E943A
-:10166000CE0A87E090E040E0FC01EC5EFE4F508146
-:10167000E52FEF70F0E020A130E052955F7002C0DE
-:10168000359527955A95E2F720FD07C09701082E5A
-:1016900001C0220F0A94EAF7422B019728F7F801BC
-:1016A00082918F01841719F04083D09300018C2F11
-:1016B0000E94CE0AC15090F68091000187FD32C091
-:1016C0009091C90190FF10C0282F332727FD309536
-:1016D0003F938F938BE991E09F938F930E94F6063F
-:1016E0000F900F900F900F90809100018150809388
-:1016F000000187FD07C08FE99FE00197F1F700C067
-:10170000000010C080E090E0FC01E85AFE4FDC01D0
-:10171000A05BBE4F17962C9127830197883FEFEF70
-:101720009E0791F70E94CB0781E0DF91CF911F9137
-:101730000F91FF90EF900895E82FF0E0E85AFE4FE8
-:10174000808108950F931F93CF93DF938091C901F8
-:1017500080FF04C08CE791E00E945D06C0E0D0E00D
-:1017600004E611E08091C90180FF15C0FE01E85A2E
-:10177000FE4F808190E00E94951E9F938F93DF9390
-:10178000CF931F930F930E94F6060F900F900F9028
-:101790000F900F900F902196C830D10519F7DF9167
-:1017A000CF911F910F9108950F931F93CF9300E650
-:1017B00011E0C0E0F80182918F0190E00E94771E55
-:1017C000C80FF1E008351F07A9F78C2FCF911F91A3
-:1017D0000F91089580916B0108959FB7F89410922E
-:1017E00062019FBF9091DE01943009F057C0909143
-:1017F000E9009F703091EC00232F217030FD20E82C
-:10180000922B24E02093E9002091EB0020FF43C0BD
-:101810002091EE0027FF3FC020916001222321F09C
-:101820002091E80025FF37C01092600126E030913A
-:10183000E80035FD15C03091DE01343061F530919E
-:10184000EB0035FD28C0215021F481E08093600138
-:1018500022C0EFE9FFE03197F1F700C00000E7CFC9
-:101860008093F1008091E80085FD0AC08091E80036
-:1018700080FFFCCF8091E8008E778093E80006C05F
-:101880008FB7F89421E0209362018FBF9F709093EF
-:10189000E90080E008959F709093E9008FEF08952C
-:1018A000CF93DF9300D01F92CDB7DEB79C0180911C
-:1018B000DE01843019F593E099833B832A8390936A
-:1018C000E9008FEF9091E800815095FD06C095EDFD
-:1018D0009A95F1F700008111F5CF8091E80085FF1E
-:1018E0000DC040E050E063E070E0CE0101960E9440
-:1018F000E30E8091E8008E778093E8000F900F90C0
-:101900000F90DF91CF910895CF93DF9300D01F9276
-:10191000CDB7DEB72091DE01243021F522E0298306
-:101920009B838A8383E08093E9008FEF9091E800A6
-:10193000815095FD06C095ED9A95F1F70000811153
-:10194000F5CF8091E80085FF0DC040E050E063E0F6
-:1019500070E0CE0101960E94E30E8091E8008E7740
-:101960008093E8000F900F900F90DF91CF91089532
-:101970002091DE012430F1F422E02093E9002FEFE2
-:101980003091E800215035FD06C035ED3A95F1F76C
-:1019900000002111F5CF2091E80025FF0BC040E0A9
-:1019A00050E065E070E00E94E30E8091E8008E77E1
-:1019B0008093E8000895CF93DF932091DE012430D7
-:1019C00039F521E02093E9002FEF3091E800215014
-:1019D00035FD06C035ED3A95F1F700002111F5CF40
-:1019E0002091E80025FF14C0EC0140E050E068E0E1
-:1019F00070E00E94E30E8091E8008E778093E8000B
-:101A000088E0FE01A3E6B1E001900D928A95E1F72E
-:101A1000DF91CF91089588ED91E00E945D0680915D
-:101A2000DD01811109C00E9472100E94C5108091D1
-:101A3000E20084608093E200089584ED91E00E94CA
-:101A40005D061092DD01089580ED91E00C945D0635
-:101A5000209161012F5F822F62E30E943F2A992328
-:101A600019F0209361010895109261018091620143
-:101A7000882371F18091DE01843041F58091E90085
-:101A80008F702091EC00922F917020FD90E8892BAF
-:101A900094E09093E9009091EB0090FF14C0909136
-:101AA000EE0097FF10C09091E80095FF03C01092E0
-:101AB000F100F9CF9091E80090FF05C09091E80007
-:101AC0009E779093E8008F708093E90010926201F6
-:101AD000089542E061EC81E00E94EC0F42E061EC8D
-:101AE00082E00E94EC0F42E061EC83E00E94EC0F88
-:101AF00042E261EC84E00C94EC0F8091E0018330D1
-:101B000009F453C030F4813071F0823009F48CC094
-:101B100008958A3009F478C08B3009F45EC08930AA
-:101B200009F09AC020C08091DF01813A09F094C089
-:101B30008091E800877F8093E8008091E301909195
-:101B4000E401892B21F468E083E691E003C060E0C2
-:101B500080E090E070E00E942E0F8091E8008B778B
-:101B60008093E80008958091DF01813209F074C00C
-:101B70008091E3019091E401892B09F06DC080917F
-:101B8000E800877F8093E8008091E80082FD05C02F
-:101B90008091DE018111F8CF5FC08091F1008093C8
-:101BA0006B018091E8008B7753C08091DF01813A0F
-:101BB00009F052C08091E3019091E401892B09F072
-:101BC0004BC08091E800877F8093E8008091E80017
-:101BD00080FFFCCF80910B0136C08091DF01813204
-:101BE000D9F58091E3019091E401892BA9F58091C9
-:101BF000E800877F8093E8000E9421108091E10136
-:101C000080930B010C9435188091DF01813221F50E
-:101C10008091E800877F8093E8000E9421108091E6
-:101C2000E20180936C0108958091DF01813AA1F473
-:101C30008091E800877F8093E8008091E80080FF32
-:101C4000FCCF80916C018093F1008091E8008E7749
-:101C50008093E8000C942110089584B7877F84BF97
-:101C600088E10FB6F89480936000109260000FBE78
-:101C700090E080E80FB6F894809361009093610043
-:101C80000FBE0E94C5130E9472100E94C510809161
-:101C9000E20084608093E2008DEE9BE00E94721E61
-:101CA00078940E9418130E94C71381E091E00E946B
-:101CB00033138FEB91E00E945D068091DE01853049
-:101CC00089F48BEB91E00E945D060E94AF1E80912B
-:101CD000DC01882391F30E94DA1E882371F30E94AD
-:101CE000CD0EEBCF0E94EB13E8CF292F3327233003
-:101CF0003105C9F064F42130310581F0223031051D
-:101D000009F043C084E790E02AEF31E042C021327D
-:101D10003105F1F02232310541F137C082E190E026
-:101D20002EE632E036C099278130910541F08230AD
-:101D3000910541F0892B49F5E6EFF1E005C0ECEEA5
-:101D4000F1E002C0ECEDF1E0849190E09F0121C050
-:101D50006430D8F4E62FF0E0EE0FFF1FE05DFE4F99
-:101D60002081318189E090E014C0643070F470E02B
-:101D7000FB01EE0FFF1FE85DFE4F20813181FB016B
-:101D8000EC5DFE4F808190E004C080E090E020E0B8
-:101D900030E0FA0131832083089584E089BD86E034
-:101DA00089BD09B400FEFDCF8091D8008F7D80935E
-:101DB000D8008091E00082608093E0008091E00094
-:101DC00081FDFCCF0895CF92DF92EF92FF920F93A7
-:101DD0001F93CF93DF93EC018B016A010E944010A7
-:101DE000811133C0C114D10439F0F6018081918191
-:101DF000081B190BC80FD91FE12CF12C0115110577
-:101E000019F18091E80085FD16C08091E8008E7779
-:101E10008093E800C114D10449F0F60180819181DA
-:101E2000E80EF91EF182E08285E00FC00E944010AA
-:101E3000882321F30AC089918093F1000150110990
-:101E4000FFEFEF1AFF0ADACF80E0DF91CF911F9109
-:101E50000F91FF90EF90DF90CF9008952091E501D2
-:101E60003091E6012617370748F06115710539F4FE
-:101E70002091E8002E772093E80001C0B90140E0EE
-:101E80006115710591F12091DE01222309F440C012
-:101E9000253009F43FC02091E80023FD3DC020918A
-:101EA000E80022FD2FC02091E80020FFE9CF20911B
-:101EB000F20030E0FC01CF016115710559F02830C6
-:101EC000310540F481918093F100615071092F5FD9
-:101ED0003F4FF1CF41E02830310509F040E020913B
-:101EE000E8002E772093E800CBCF4111CCCF0AC079
-:101EF0008091DE01882361F0853061F08091E800F7
-:101F000083FD0AC08091E80082FFF2CF80E008954F
-:101F100082E0089583E0089581E008952091E5012D
-:101F20003091E6012617370748F06115710539F43D
-:101F30002091E8002E772093E80001C0B901FC0150
-:101F400020E06115710579F18091DE01882309F4A3
-:101F50003DC0853009F43CC08091E80083FD3AC063
-:101F60008091E80082FD2CC08091E80080FFE9CFDD
-:101F70008091F20090E06115710559F0883091056B
-:101F800040F424912093F10031966150710901963B
-:101F9000F2CF21E0089709F020E08091E8008E77E9
-:101FA0008093E800CECF2111CFCF0AC08091DE010F
-:101FB000882361F0853061F08091E80083FD0AC0DC
-:101FC0008091E80082FFF2CF80E0089582E00895DA
-:101FD00083E0089581E00895982F953058F5909307
-:101FE000E900981739F07091EC002091ED005091C4
-:101FF000F00003C0242F762F50E021FF19C030914C
-:10200000EB003E7F3093EB003091ED003D7F30934D
-:10201000ED003091EB0031603093EB007093EC00F9
-:102020002093ED005093F0002091EE0027FF07C0B1
-:102030009F5FD3CF8F708093E90081E0089580E0A7
-:1020400008958091DF0187FF11C08091E80082FD33
-:1020500005C08091DE018111F8CF11C08091E800A8
-:102060008B770BC08091DE01882349F08091E800D6
-:1020700080FFF8CF8091E8008E778093E800089584
-:102080002091E4003091E50095E64091EC00842F2A
-:10209000817040FF22C08091E80080FD1CC08091CB
-:1020A000DE01882391F0853091F08091EB0085FD71
-:1020B00010C04091E4005091E5004217530729F306
-:1020C0009A01915011F784E0089582E0089583E029
-:1020D000089581E0089580E008954091E80042FF6E
-:1020E000DECF08950E94CF100E94D210E0EEF0E003
-:1020F000808181608083E8EDF0E080818F7780834C
-:1021000019BCE3E6F0E08081816080831092DD01FC
-:1021100008950E94CF100E94D2108091D8008F772E
-:102120008093D8008091D80080688093D8008091F7
-:10213000D8008F7D8093D80084E089BD86E089BD7A
-:1021400009B400FEFDCF1092DE011092DA01109268
-:10215000DC011092DB0142E060E080E00E94EC0FC5
-:102160008091E1008E7F8093E1008091E2008160A8
-:102170008093E2008091E20088608093E200809189
-:10218000E0008E7F8093E0000895E3E6F0E0808138
-:102190008E7F808381E08093DD010C948910109202
-:1021A000E20008951092E10008951F920F920FB679
-:1021B0000F9211242F933F934F935F936F937F93CD
-:1021C0008F939F93AF93BF93EF93FF938091E10021
-:1021D00082FF0BC08091E20082FF07C08091E10086
-:1021E0008B7F8093E1000E94280D8091E10080FFA9
-:1021F00018C08091E20080FF14C08091E2008E7FC1
-:102200008093E2008091E20080618093E2008091FF
-:10221000D80080628093D80019BC1092DE010E9421
-:102220001D0D8091E10084FF30C08091E20084FFA9
-:102230002CC084E089BD86E089BD09B400FEFDCFD5
-:102240008091D8008F7D8093D8008091E1008F7EAF
-:102250008093E1008091E2008F7E8093E200809184
-:10226000E20081608093E2008091DA01882311F01E
-:1022700084E007C08091E30087FD02C081E001C0D7
-:1022800083E08093DE010E940B0D8091E10083FFCB
-:1022900029C08091E20083FF25C08091E100877F03
-:1022A0008093E10082E08093DE011092DA01809158
-:1022B000E1008E7F8093E1008091E2008E7F809329
-:1022C000E2008091E20080618093E20042E060E001
-:1022D00080E00E94EC0F8091F00088608093F00015
-:1022E0000E94240DFF91EF91BF91AF919F918F912B
-:1022F0007F916F915F914F913F912F910F900FBE02
-:102300000F901F9018951F920F920FB60F921124E5
-:102310002F933F934F935F936F937F938F939F93ED
-:10232000AF93BF93CF93DF93EF93FF93C091E900F7
-:10233000CF708091EC00D82FD17080FDD0E8109242
-:10234000E9008091F000877F8093F00078940E94EC
-:10235000C7111092E9008091F00088608093F0002E
-:10236000CD2BCF70C093E900FF91EF91DF91CF911A
-:10237000BF91AF919F918F917F916F915F914F919D
-:102380003F912F910F900FBE0F901F9018951F93A4
-:10239000CF93DF93CDB7DEB7AA970FB6F894DEBF21
-:1023A0000FBECDBFEFEDF1E088E08E0F9091F10010
-:1023B00091938E13FBCF0E947D0D8091E80083FFE7
-:1023C0001FC18091DF019091E001492F50E04A3018
-:1023D000510508F015C1FA01E65CFF4F0C945F2A25
-:1023E000803881F0823809F00BC18091E3018F7051
-:1023F0008093E9008091EB0085FB882780F910929B
-:10240000E90006C08091DB019091DC0191118260AE
-:102410009091E800977F9093E8008093F1001092EC
-:10242000F100C8C0282F2D7F09F0EAC0882319F0D9
-:10243000823061F0E5C08091E101813009F0E0C0B7
-:10244000933009F080E08093DC012BC08091E101A2
-:10245000811127C08091E3018F7009F4D1C080936E
-:10246000E9002091EB0020FF1CC0933021F4809103
-:10247000EB00806214C09091EB0090619093EB00B0
-:1024800021E030E0A90102C0440F551F8A95E2F710
-:102490004093EA001092EA008091EB0088608093FC
-:1024A000EB001092E9008091E800877F86C08111DF
-:1024B000A7C01091E1011F778091E3008078812B04
-:1024C0008093E3008091E800877F8093E8000E947A
-:1024D00021108091E80080FFFCCF8091E3008068AC
-:1024E0008093E300111102C082E001C083E0809379
-:1024F000DE0186C08058823008F082C08091E10100
-:102500009091E2018C3D53E0950779F583E08A8351
-:102510008AE289834FB7F894DE01139620E03EE00B
-:1025200051E2E32FF0E050935700E49120FF03C005
-:10253000E295EF703F5FEF708E2F90E0EA3010F081
-:10254000C79601C0C0968D939D932F5F243149F7A4
-:102550004FBF8091E800877F8093E8006AE270E0D7
-:10256000CE0101960E942E0F14C0AE014F5F5F4F47
-:102570006091E3010E94750EBC01009709F440C010
-:102580009091E800977F9093E80089819A810E945A
-:102590008E0F8091E8008B778093E80031C08038FF
-:1025A00079F58091E800877F8093E8008091DA01D7
-:1025B0008093F1008091E8008E778093E8000E947C
-:1025C00021101EC081111CC09091E1019230C0F415
-:1025D0008091E800877F8093E8009093DA010E9461
-:1025E00021108091DA01811106C08091E30087FDFE
-:1025F00002C081E001C084E08093DE010E94690D89
-:102600008091E80083FF0AC08091E800877F809373
-:10261000E8008091EB0080628093EB00AA960FB6F1
-:10262000F894DEBF0FBECDBFDF91CF911F9108950B
-:10263000CF938091DE018823A1F0C091E900CF7093
-:102640009091EC00892F817090FD80E8C82B10924A
-:10265000E9008091E80083FD0E94C711CF70C0930C
-:10266000E900CF91089590937201809371010895CC
-:10267000E0917101F0917201309721F00190F081A9
-:10268000E02D099480E00895EF92FF920F931F933D
-:10269000CF93DF93E0917101F09172013097B1F126
-:1026A0008C010280F381E02D09958091C90182FFA0
-:1026B0002DC080FF04C08AE693E00E945D06E80119
-:1026C00018E084E6E82E83E0F82E8091C90180FFAF
-:1026D0000BC088811F928F93FF92EF920E94F606A3
-:1026E0000F900F900F900F90115021961111EDCF78
-:1026F0008091C90180FF0AC082E693E0DF91CF910B
-:102700001F910F91FF90EF900C945D06DF91CF9198
-:102710001F910F91FF90EF900895E0917101F0915A
-:102720007201309721F00480F581E02D099408951D
-:1027300020916F01309170018217930771F090938F
-:10274000700180936F01E0917101F09172013097F7
-:1027500021F00680F781E02D0994089520916D0104
-:1027600030916E018217930771F090936E01809300
-:102770006D01E0917101F0917201309721F00084B8
-:10278000F185E02D0994089508950C94C4130E94D6
-:10279000111F0E94E20A0C94D31FCF93DF931F9264
-:1027A000CDB7DEB79091C90192FF10C090FF0EC067
-:1027B0001F928F932CE733E03F932F9389830E94DE
-:1027C000F6060F900F900F900F9089810F90DF9178
-:1027D000CF910C94FF069F92AF92BF92CF92DF925F
-:1027E000EF92FF920F931F93CF93DF9300D000D00F
-:1027F00000D0CDB7DEB70E94210B07E010E0AA247D
-:10280000A394B12C902E802F0E949C0B98012C58E1
-:102810003E4F6901F901F080F826A1F40150110939
-:1028200088F78FEF89838A831B820E941A1F816039
-:10283000782F9D838C8349815A816B818D810E9481
-:1028400082142FC09091C90191FF04C08E830E9411
-:10285000A20B8E8127E030E0A501022E01C0440FBB
-:102860000A94EAF7E42E4F21C1F029839A828E213F
-:1028700091E009F490E09B830E941A1F8160782FF9
-:102880009D838C8349815A816B818D810E94821442
-:10289000F6018081E826E08204C021503109E0F68B
-:1028A000BDCF0E944123109173010E943813181765
-:1028B000B9F00E9438138093730126960FB6F894EE
-:1028C000DEBF0FBECDBFDF91CF911F910F91FF9063
-:1028D000EF90DF90CF90BF90AF909F900C94CD136E
-:1028E00026960FB6F894DEBF0FBECDBFDF91CF9115
-:1028F0001F910F91FF90EF90DF90CF90BF90AF901E
-:102900009F900895CF93DF93CDB7DEB72B970FB687
-:10291000F894DEBF0FBECDBF4F83588769877A8793
-:102920008B87DE01119686E0FD0111928A95E9F709
-:1029300085E0FE01379601900D928A95E1F7498175
-:102940005A816B817C818D819E810E94E21A2B9637
-:102950000FB6F894DEBF0FBECDBFDF91CF910895C3
-:10296000CF93882309F4C2C0C82F823859F40E943B
-:10297000381381FDBBC089E30E94C01D0E94431E25
-:1029800089E30CC0833879F40E94381380FDAEC00F
-:1029900083E50E94C01D0E94431E83E50E94DD1D49
-:1029A000CF910C94431E843859F40E94381382FD51
-:1029B0009DC087E40E94C01D0E94431E87E4EECFA5
-:1029C0008CEF8C0F813A48F48C2F0E94AF27811135
-:1029D0008DC08C2F0E94C01DE3CF80E28C0F883009
-:1029E00048F4C77081E001C0880FCA95EAF70E94D9
-:1029F000FC1DD6CF8BE58C0F833078F4C53A29F0D7
-:102A0000C63A31F083E890E005C081E890E002C06A
-:102A100082E890E0CF910C94981388E58C0F833175
-:102A200008F064C0C83A39F1C93A41F1CA3A49F1EB
-:102A3000CB3A51F1CC3A59F1CD3A61F1C03B69F151
-:102A4000CE3A71F1CF3A79F1C13B81F1C23B89F1C4
-:102A5000C33B91F1C43B99F1C53BA1F1C63BA9F140
-:102A6000C73BB1F1C83BB9F1C93BC1F1CA3BC9F1A0
-:102A700080E090E038C082EE90E035C089EE90E0D2
-:102A800032C08AEE90E02FC085EB90E02CC086EB40
-:102A900090E029C087EB90E026C08CEC90E023C04A
-:102AA0008DEC90E020C083E891E01DC08AE891E0C1
-:102AB0001AC082E991E017C084E991E014C081E274
-:102AC00092E011C083E292E00EC084E292E00BC07B
-:102AD00085E292E008C086E292E005C087E292E0DB
-:102AE00002C08AE292E0CF910C94AE13CF91089588
-:102AF000882309F44BC0823859F40E94381381FFAF
-:102B000045C089E30E94C01D0E94431E89E30CC09A
-:102B1000833871F40E94381380FF38C083E50E9427
-:102B2000C01D0E94431E83E50E94DD1D0C94431EC0
-:102B3000843859F40E94381382FF28C087E40E9429
-:102B4000C01D0E94431E87E4EFCF9CEF980F913A7F
-:102B500058F390E2980F983050F4877091E001C0DC
-:102B6000990F8A95EAF7892F0E94021EDFCF9BE515
-:102B7000980F933020F480E090E00C949813885ADA
-:102B8000833120F480E090E00C94AE130895882304
-:102B900021F00E94FC1D0C94431E0895882321F00F
-:102BA0000E94021E0C94431E08957F928F929F9262
-:102BB000AF92BF92CF92DF92EF92FF920F931F934B
-:102BC000CF93DF931F92CDB7DEB77C01C62E772E51
-:102BD000FC01058102950F70128111110E94191ECE
-:102BE0000E94B91D882379F0112369F080E28C0DD1
-:102BF000883048F082E00E94A21D0E94B91D91E039
-:102C0000D82ED92601C0D12CE72DE295EF70F0E047
-:102C1000EC5BFF4F0C945F2A872D807F072D0F7090
-:102C2000882311F00295007F112389F0002309F415
-:102C300098C180E28C0D883020F4802F0E94FC1D0A
-:102C400003C0802F0E940C1E0E94431E8AC18C2D3F
-:102C50000E947815002309F49DC180E28C0D883014
-:102C600020F4802F0E94021E03C0802F0E94121E9B
-:102C70000E94431E8FC1872D807F972D9F708032C9
-:102C800011F4892F03C0892F8295807FCC2021F0F9
-:102C9000F1E0CF16A1F01DC0112339F0002319F186
-:102CA000013009F50E942C1E75C1002319F0013076
-:102CB00009F470C189830E942F1E898110C11123DC
-:102CC00021F0063008F066C10EC0053008F062C180
-:102CD00006C1112359F0002331F0F701958190FFCF
-:102CE00040C19F7095830E94C71554C1002309F409
-:102CF000F6C03DC1872D86958695837090E000973C
-:102D000019F0019761F046C1112321F08C2D972D08
-:102D1000937002C080E090E00E9498133BC11123A1
-:102D200021F08C2D972D937002C080E090E00E94DE
-:102D3000AE1330C18C2D112319F00E94C72102C09F
-:102D40000E942F220E94B42225C1872D837009F092
-:102D500052C011111FC18C2D829586958770880FE6
-:102D6000880F9C2D9F70892E912CA12CB12C082EA0
-:102D700004C0880C991CAA1CBB1C0A94D2F7C4FE80
-:102D800014C00FE010E020E030E0B901A80104C059
-:102D9000440F551F661F771F8A95D2F7CB01BA01E2
-:102DA000609570958095909503C060E070E0CB01D0
-:102DB000272D26952695237030E02230310569F0C5
-:102DC0002330310589F0682979298A299B29213006
-:102DD000310571F00E942E1CDDC0682979298A29ED
-:102DE0009B290E944A1CD6C00E942E1CC501B4011A
-:102DF0000E94121CCFC0112319F0872D817001C0D1
-:102E00008695882309F4C6C08C2D82958695877097
-:102E1000880F880F9C2D9F70892E912CA12CB12C8E
-:102E2000082E04C0880C991CAA1CBB1C0A94D2F75B
-:102E3000C4FE14C00FE010E020E030E0B901A801AA
-:102E400004C0440F551F661F771F8A95D2F7CB0128
-:102E5000BA01609570958095909503C060E070E030
-:102E6000CB01272D269526952370422F50E0423026
-:102E7000510569F04330510589F0682979298A297B
-:102E80009B294130510571F00E94081D83C06829BB
-:102E900079298A299B290E94241D7CC00E94081D33
-:102EA000C501B4010E94EC1C75C08C2D90E0FC01A2
-:102EB000E05EF109E531F10508F04FC0EC5AFF4F33
-:102EC0000C945F2A0C2D0F70872D8F71112321F028
-:102ED0000E94851C802F07CF0E94A61C802F0E9475
-:102EE000CE1558C0112341F0053008F053C0872D8E
-:102EF0008F710E94CB1C4EC0063008F04BC0F7CF3C
-:102F0000112339F0872D8F710E94851C43C0112336
-:102F1000C9F3872D8F710E94A61C3CC0112329F094
-:102F2000872D8F710E94701C35C00E94661C32C0B4
-:102F3000112351F0172D1F71812F0E94851C63E012
-:102F4000812F0E94991D26C081E00E94A21D02309F
-:102F500008F182E00E94A21D1DC0112331F0002360
-:102F600089F28C2D0E94B01415C0002391F28C2D93
-:102F70000E9478150FC0472D4F706C2DC7010E941D
-:102F8000CD070E948A1B06C0472D4F706C2DC701CC
-:102F90000E94D007DD20F9F00E94951D80FD1BC026
-:102FA000F70112820E948F1D0E94851CC7010E949A
-:102FB000FA170E948F1D0F90DF91CF911F910F91F3
-:102FC000FF90EF90DF90CF90BF90AF909F908F9049
-:102FD0007F900C94A61C0F90DF91CF911F910F91C1
-:102FE000FF90EF90DF90CF90BF90AF909F908F9029
-:102FF0007F9008950F931F93CF93DF93EC01888107
-:1030000099812B813C81232BB9F09F3F11F48F3F95
-:1030100099F0CE010E942107882371F0688179819F
-:103020008A810E948B1D8C010E94401D0E94071CFA
-:10303000B801CE010E94D515DF91CF911F910F915C
-:1030400008950E94191E0E94291E0E94EE1D0E94D2
-:10305000431E0E94E9230E94B42280E090E00E9477
-:10306000981380E090E00C94AE130E94091E0C941B
-:1030700021180E94801D292F22952F7030E02C30BE
-:1030800031054CF42A3031056CF4225031092230DC
-:103090003105A8F407C02C30310569F02F30310517
-:1030A00051F00DC0803F69F018F4803E40F409C033
-:1030B000843F29F406C093FB882780F9089580E0B7
-:1030C000089581E00895CF93DF9300D000D01F9240
-:1030D000CDB7DEB70F900F900F900F900F90DF914C
-:1030E000CF910895CF93DF9300D000D000D0CDB71B
-:1030F000DEB726960FB6F894DEBF0FBECDBFDF91C8
-:10310000CF910895CF93DF93C0917C0180917D0191
-:10311000C817A1F0D0E0CE0166E070E00E942E2A30
-:10312000FC01E258FE4F40815181628173818481AC
-:1031300095810E9472182196C770E8CFDF91CF91D8
-:1031400008954091AE015091AF016091B00170912E
-:10315000B1018091B2019091B3010C947218CF9398
-:10316000DF938091B30182958F7009F05CC08091EC
-:10317000B001882309F457C020917C01D0917D01D2
-:103180004091AE01C091AF01E091B101F091B20167
-:103190002D1709F448C030E0309709F440C0CF3F04
-:1031A00011F44F3FE1F1C90166E070E00E942E2A60
-:1031B000DC01A258BE4F11968C911197C8132FC0F5
-:1031C0008C9148132CC012968C911297811127C0B4
-:1031D00013968D919C9114978E179F0708F4019771
-:1031E0008E1B9F0B883C9105D0F48091B3018F70AA
-:1031F00080618093B301C90166E070E00E942E2ACD
-:10320000FC01ED57FE4F90819F70906190838EEA94
-:1032100091E00E94FA17DF91CF910C9482182F5FF2
-:103220003F4F2770B5CFDF91CF910895BF92CF92D6
-:10323000DF92EF92FF920F931F93CF93DF93CDB75F
-:10324000DEB761970FB6F894DEBF0FBECDBF8C011D
-:1032500085E0F801DE011D9601900D928A95E1F757
-:10326000D8014C9111962C9111971296EC901297CF
-:103270001396CD90DC9014975091AE016091AF0100
-:103280008091B1019091B201009709F46EC16F3F36
-:1032900019F45F3F09F469C1B090B001BB2009F493
-:1032A000C3C03091B301C816D90628F0F601E81B57
-:1032B000F90BCF0104C0809590958C0D9D1DFF24C6
-:1032C000F394883C910588F0F12C307F09F0CBC055
-:1032D0007C2DD98AC88A522F6E2D89890E94631845
-:1032E0008EEA91E00E94FA17B4C0832F807F09F024
-:1032F00049C0621314C0541312C0E11010C03F70D3
-:1033000030613093B3010E94A1188EEA91E00E94CF
-:10331000FA178091B301D80115968C9331C0CD284E
-:1033200031F12F3F11F44F3F11F1FE2CE1101FC07E
-:10333000E0917C0130917D01E31709F45CC0F0E07D
-:10334000CF0166E070E00E942E2ADC01A258BE4F39
-:1033500011968C911197281307C08C91481304C0C3
-:1033600012968C91811103C03196E770E5CFFE2C47
-:10337000EE2009F416C18091B30181608093B301FE
-:10338000F12C0FC1621308C0541306C0E11004C031
-:103390008091B301D801C1C04D872E878D859E8550
-:1033A0000E9439188823E1F1EE20D1F12091B30178
-:1033B000822F82958F7090E0029774F08091AE0119
-:1033C0009091AF0198878F831986DB86CA862C87F8
-:1033D000CE0107960E94FA1786E0F801AEEAB1E046
-:1033E00001900D928A95E1F70E94AF180E94A118F2
-:1033F000FF24F394D6C04D872E878D859E850E942D
-:10340000801D292F22952F7030E0223031050CF0DD
-:10341000BCC09F7009F0B6C0805E883008F4C1C09F
-:10342000C8010E94FA17E4CFC816D90608F453C0A1
-:10343000F601E81BF90BCF01883C910508F450C058
-:10344000F12C7C2DD98AC88A522F6E2D89890E9431
-:103450006318EEEAF1E086E0DF011D928A95E9F754
-:103460000E94A1189EC0621314C0541312C0E11030
-:1034700010C08091B301F8018583C8010E94FA173A
-:1034800086E0EEEAF1E0DF011D928A95E9F7FB2C78
-:1034900088C04D872E878D859E850E943918882388
-:1034A00009F4BECFEE2009F4BBCF2091B301822FE7
-:1034B00082958F7090E002970CF48ECF8091AE01D0
-:1034C0009091AF019A8389831B82DD82CC822E8307
-:1034D000CE0101967FCF809590958C0D9D1DACCF30
-:1034E000FE2CEE2009F49CCF62132EC054132CC086
-:1034F0002091B30120FD1FC0822F82958F70D9F0DB
-:10350000D80115962C9315978F3049F08F5F982F1F
-:103510009295907F822F8F70892B15968C93C8017E
-:103520000E94FA1786E0F801AEEAB1E001900D9230
-:103530008A95E1F795CF86E0F801AEEAB1E0019017
-:103540000D928A95E1F72DC04D872E878D859E853A
-:103550000E943918811140CF8091B301816080931E
-:10356000B301C8010E94FA171CC0EE2009F458CF1D
-:103570004D872E878D859E850E943918882309F4F2
-:103580004FCF2ACF811148CF0CC0243031050CF029
-:1035900047CF9F7009F440CFF8019581907F09F0E3
-:1035A0003BCF8F2D61960FB6F894DEBF0FBECDBF17
-:1035B000DF91CF911F910F91FF90EF90DF90CF900F
-:1035C000BF900895CF93DF93CDB7DEB72C970FB69A
-:1035D000F894DEBF0FBECDBF4F83588769877A87C7
-:1035E0008B879C87CE0107960E941619882371F05D
-:1035F0008F8198852A853B85232B09F43FC09F3F07
-:1036000009F068C08F3F09F065C038C086E0FE0150
-:103610003796DE01119601900D928A95E1F76F8140
-:103620007885EA85FB85309749F17F3F11F46F3F3C
-:1036300029F180917D0190E09C012F5F3F4F277021
-:10364000332740917C0150E02417350709F44BC023
-:1036500069837A83FD83EC8366E070E00E942E2A02
-:10366000DC01A258BE4F96E0FE01319601900D920A
-:103670009A95E1F720937D010E94821880917C0148
-:1036800090917D018917E9F190E066E070E00E9479
-:103690002E2A82589E4F0E941619882391F18091FC
-:1036A0007C0190E066E070E00E942E2AFC01E25866
-:1036B000FE4F4081518162817381848195810E9496
-:1036C000721880917C0190E0019687709927809311
-:1036D0007C01D4CF4F81588569857A858B859C85FF
-:1036E0000E947218CBCF0E94351810927D01109263
-:1036F0007C01EEEAF1E086E0DF011D928A95E9F7B0
-:10370000BDCF2C960FB6F894DEBF0FBECDBFDF91B4
-:10371000CF910895EF92FF920F931F93CF93DF9372
-:103720008C01009709F46CC0F12CEE24E394E801BD
-:103730002196F8018491843740F4843008F051C018
-:10374000813081F0823019F15BC0853709F444C0C3
-:10375000A8F19CE7980F903708F052C08F770E942D
-:10376000781541C00E5F1F4FFE01C49180E28C0F9F
-:10377000883048F4C7708E2D01C0880FCA95EAF7CB
-:103780000E941C1E14C08C2F0E94B0142DC00E5F0E
-:103790001F4FFE01C49180E28C0F883058F4C7702F
-:1037A0008E2D01C0880FCA95EAF70E94221E0E9442
-:1037B000431E1AC08C2F0E94781516C00E5F1F4F33
-:1037C000FE01C491CC2381F08FE99FE00197F1F7CE
-:1037D00000C00000C150F6CF0E5F1F4FFE01F490F5
-:1037E00003C00E94B0148E018F2D882309F49FCF4F
-:1037F000EFE9FFE03197F1F700C000008150F5CF0D
-:10380000DF91CF911F910F91FF90EF900895089550
-:103810006093B8017093B9018093BA019093BB0192
-:103820000C9421180F931F930091B8011091B901C6
-:103830002091BA013091BB01DC01CB01802B912B8F
-:10384000A22BB32B8093B8019093B901A093BA0136
-:10385000B093BB011F910F910C9421180F931F93EC
-:103860000091B8011091B9012091BA013091BB01CA
-:10387000DC01CB0180239123A223B3238093B801E1
-:103880009093B901A093BA01B093BB011F910F911E
-:103890000C9421180F931F930091B8011091B90156
-:1038A0002091BA013091BB01DC01CB018027912727
-:1038B000A227B3278093B8019093B901A093BA01CE
-:1038C000B093BB011F910F910C9421181092B40179
-:1038D0001092B5011092B6011092B7010C94211804
-:1038E00041E050E060E070E004C0440F551F661FE7
-:1038F000771F8A95D2F74093B4015093B501609336
-:10390000B6017093B7010C94211841E050E060E0DB
-:1039100070E004C0440F551F661F771F8A95D2F7C9
-:103920008091B4019091B501A091B601B091B70119
-:10393000482B592B6A2B7B2B4093B4015093B50134
-:103940006093B6017093B7010C94211841E050E0E8
-:1039500060E070E004C0440F551F661F771F8A9512
-:10396000D2F740955095609570958091B4019091F3
-:10397000B501A091B601B091B701482359236A233C
-:103980007B234093B4015093B5016093B6017093CB
-:10399000B7010C94211841E050E060E070E004C0F1
-:1039A000440F551F661F771F8A95D2F78091B40187
-:1039B0009091B501A091B601B091B7014827592760
-:1039C0006A277B274093B4015093B5016093B601F9
-:1039D0007093B7010C9421180F931F930091B401B9
-:1039E0001091B5012091B6013091B701DC01CB01F6
-:1039F000802B912BA22BB32B8093B4019093B50114
-:103A0000A093B601B093B7011F910F910C942118A8
-:103A10000F931F930091B4011091B5012091B6014D
-:103A20003091B701DC01CB0180239123A223B32382
-:103A30008093B4019093B501A093B601B093B70100
-:103A40001F910F910C9421180F931F930091B401B3
-:103A50001091B5012091B6013091B701DC01CB0185
-:103A600080279127A227B3278093B4019093B501B3
-:103A7000A093B601B093B7011F910F910C94211838
-:103A80000895CF92DF92EF92FF920F931F93CF93FF
-:103A9000DF938C01C090B801D090B901E090BA01D9
-:103AA000F090BB018091B4019091B501A091B60155
-:103AB000B091B701C82AD92AEA2AFB2ACFE1D0E07F
-:103AC000D701C6010C2E04C0B695A795979587958A
-:103AD0000A94D2F780FF06C0B8018C2F0E942F0AEB
-:103AE000019721F4219760F780E001C08C2FDF91CE
-:103AF000CF911F910F91FF90EF90DF90CF9008959D
-:103B0000CF93DF93EC010E94411DBE010E942F0A5A
-:103B1000DF91CF910895CB010E94801D089580917F
-:103B2000BC0185958595859508958091BC01877028
-:103B30000895982F990F990F990F692B6093BC01E5
-:103B40000C94851C2091BC01809582238093BC013C
-:103B5000982F977069F430E0482F552747FD50950E
-:103B60002417350729F08595859585950C94A61C15
-:103B700008959091BC01977081E009F480E0089568
-:103B800020910C0130910D01F90132969FEF40E038
-:103B90005191581789F09F3F19F4511101C0942F8A
-:103BA0004F5F4630A9F79F3F39F0F901E90FF11D4A
-:103BB00097FDFA9582830895089520910C01309124
-:103BC0000D01F9013296285F3F4F9081981301C093
-:103BD00010823196E217F307C1F7089581E090E073
-:103BE000E0910C01F0910D01E80FF91F1082019690
-:103BF00088309105A9F708959091C801892B809389
-:103C0000C801089580959091C80189238093C801C7
-:103C100008951092C80108959091C701892B80934F
-:103C2000C701089580959091C70189238093C701AA
-:103C300008951092C70108959091C601892B809331
-:103C4000C601089580959091C60189238093C6018D
-:103C500008951092C60108958093BD0108951092B1
-:103C6000BD01089580910C0190910D01FC013196E8
-:103C70009C01285F3F4F80E0919191118F5FE21787
-:103C8000F307D1F70895E0910C01F0910D018091B7
-:103C9000C8018083E0910C01F0910D019081809129
-:103CA000C701892B8083E0910C01F0910D01908177
-:103CB0008091C601892B80838091BD01882361F0AA
-:103CC000E0910C01F0910D019081892B80830E947D
-:103CD000321E81111092BD0180910C0190910D0155
-:103CE0000C9444139093430180934201089520E083
-:103CF000009739F0AC0141505109842395232F5F7F
-:103D0000F7CF822F08958295982F9C7C292F269596
-:103D10002695982F9373990F990F922B892F8A7A52
-:103D200086959575990F892B08951F93CF93DF93EF
-:103D30001F92CDB7DEB799830E94831E182F9981F9
-:103D4000892F0E94831E212F30E0322F2227A901C4
-:103D5000482BCA010F90DF91CF911F910895809158
-:103D6000DE01843021F11092CA0120E488E190E064
-:103D70000FB6F894A895809360000FBE2093600062
-:103D800080E00E94FF0683B7817F846083BF83B792
-:103D9000816083BF7894889583B78E7F83BF88E1E5
-:103DA0000FB6F89480936000109260000FBE0895E3
-:103DB000089508950E94D81E0E94210B0E94D91ECA
-:103DC0000E94D40B91E0811101C090E0892F0895E9
-:103DD0001F920F920FB60F9211248F939F93AF9360
-:103DE000BF938091CA01811113C08091CB01909142
-:103DF000CC01A091CD01B091CE014196A11DB11D84
-:103E00008093CB019093CC01A093CD01B093CE01D0
-:103E1000BF91AF919F918F910F900FBE0F901F9008
-:103E2000189582E084BD93E095BD9AEF97BD80938D
-:103E30006E0008952FB7F8948091CB019091CC013A
-:103E4000A091CD01B091CE012FBF0895CF92DF9206
-:103E5000EF92FF920F931F932FB7F8944091CB01ED
-:103E60005091CC016091CD017091CE012FBF6A01BC
-:103E70007B01EE24FF248C0120E030E0C016D10647
-:103E8000E206F30610F4415051099A01281B390B40
-:103E9000C9011F910F91FF90EF90DF90CF9008958F
-:103EA0001F920F920FB60F9211248F939F93AF938F
-:103EB000BF938091CB019091CC01A091CD01B091A5
-:103EC000CE010196A11DB11D8093CB019093CC0131
-:103ED000A093CD01B093CE01BF91AF919F918F91EF
-:103EE0000F900FBE0F901F9018950E947210F894BB
-:103EF0002FEF87EA91E6215080409040E1F700C023
-:103F0000000087E090EBDC018093E8019093E901E9
-:103F1000A093EA01B093EB019CE088E10FB6F8941E
-:103F2000A895809360000FBE90936000FFCFEF9242
-:103F3000FF920F931F93CF93DF93D82FC7E08C2F5F
-:103F40000E949C0B07E010E0E82EF12CC701002E28
-:103F500002C0959587950A94E2F780FF09C0602F0B
-:103F60007C2F80E00E94D107D81302C081E006C0F8
-:103F70000150110958F7C15010F780E0DF91CF913F
-:103F80001F910F91FF90EF900895CF93C82F8CE26F
-:103F90000E94971F882321F08C2FCF910C94971F9C
-:103FA00080E0CF910895CF930E941B21811102C020
-:103FB0000E9401218CE993E00E945D06C5E6C15094
-:103FC00049F00E94210B8FE39CE90197F1F700C0B3
-:103FD0000000F5CF85E993E00E945D0689E20E942A
-:103FE000C51F81110CC18AE20E94C51F81110E9468
-:103FF000012185E00E94C51F81110E94751F0E944A
-:1040000026218093C90187E00E94C51F8823A9F15A
-:104010008BE10E94C51F882351F08091C90181FB6B
-:10402000222720F991E0922790FB81F90EC08EE0C3
-:104030000E94C51F882361F08091C90182FB22275D
-:1040400020F991E0922790FB82F98093C90115C075
-:1040500080E10E94C51F9091C901882341F093FB24
-:10406000222720F981E0822780FB93F904C0892F61
-:10407000809580FB90F99093C9018091C9010E94BD
-:104080002A210E9438218093E70180EE0E94C51FFB
-:10409000882341F08091E701982F909590FB80F95B
-:1040A0008093E70189E30E94C51F882359F080911E
-:1040B000E70181FB222720F991E0922790FB81F90B
-:1040C0008093E70182EE0E94C51F882359F08091FA
-:1040D000E70182FB222720F991E0922790FB82F9E9
-:1040E0008093E70186EE0E94C51F882359F08091D6
-:1040F000E70183FB222720F991E0922790FB83F9C7
-:104100008093E70183EE0E94C51F882359F08091B8
-:10411000E70184FB222720F991E0922790FB84F9A4
-:104120008093E70185E30E94C51F882359F08091A1
-:10413000E70185FB222720F991E0922790FB85F982
-:104140008093E70181E30E94C51F882359F0809185
-:10415000E70186FB222720F991E0922790FB86F960
-:104160008093E70181E10E94C51F882359F0809167
-:10417000E70187FB222720F991E0922790FB87F93E
-:104180008093E7018091E7010E943C2187E20E9431
-:10419000C51FC82F8EE10E94C51F8111C2608FE12B
-:1041A0000E94C51F8111C46080E20E94C51F811159
-:1041B000C86081E20E94C51F8111C06182E20E9435
-:1041C000C51F8111C06283E20E94C51F8111C064B6
-:1041D00084E20E94C51F882311F0C06802C0CC236E
-:1041E00029F08C2F0E9433216C2F03C00E942F21B5
-:1041F000682F70E080E090E0CF910C94081CCF9184
-:1042000008956DEE7EEF80E090E00E94992A60E0D4
-:1042100082E090E00E94872A60E083E090E00E94C4
-:10422000872A60E084E090E00E94872A60E085E0D1
-:1042300090E00C94872A80E090E00E94812A21E09F
-:104240008D3E9E4F09F020E0822F089582E090E09D
-:104250000C94792A682F82E090E00C94872A83E0FE
-:1042600090E00C94792A682F83E090E00C94872AE0
-:1042700084E090E00C94792A682F84E090E00C941C
-:10428000872A8091D10180FF0CC08091110190E0BC
-:1042900065E070E00E942E2A959587959595879503
-:1042A0002EC081FF0AC08091110190E065E070E0AE
-:1042B0000E942E2A9595879522C082FF08C0809182
-:1042C000110190E065E070E00E942E2A18C0209154
-:1042D000D2012223D1F030911001231780F7809171
-:1042E000110190E065E070E00E942E2A622F70E0DC
-:1042F0000E942E2A632F70E00E944B2ACB01803847
-:10430000910530F4009731F0089585E090E008952C
-:104310008FE7089581E008958091D10180FF08C062
-:1043200060910F0170E0759567957595679523C04D
-:1043300081FF06C060910F0170E0759567951BC005
-:1043400082FF04C060910F0170E012C06091D20141
-:104350006623D1F020910E016217A0F780910F0122
-:1043600070E090E00E942E2A622F70E00E944B2A9B
-:104370006038710528F46115710521F0862F0895C4
-:104380008FE7089581E0089561E070E0F4CF803F09
-:1043900021F40E944121819504C0813F29F40E94AB
-:1043A00041218093D5010895823F21F40E9441214B
-:1043B000819504C0833F29F40E9441218093D40158
-:1043C0000895893F19F40E948C2105C08A3F31F479
-:1043D0000E948C2181958093D60108958B3F21F412
-:1043E0000E948C21819504C08C3F29F40E948C216D
-:1043F0008093D7010895843F21F48091D301816097
-:1044000017C0853F21F48091D301826011C0863F9F
-:1044100021F48091D30184600BC0873F21F4809107
-:10442000D301886005C0883F31F48091D301806159
-:104430008093D30108958D3F21F48091D101816053
-:104440000BC08E3F21F48091D101826005C08F3F67
-:1044500029F48091D10184608093D1010895803F37
-:1044600039F48091D50187FF6CC01092D50169C0E5
-:10447000813F29F48091D5011816BCF362C0909158
-:10448000D401823F29F497FF5CC01092D40159C037
-:10449000833F19F41916CCF354C0893F41F480913D
-:1044A000D60118160CF04DC01092D6014AC08A3FB2
-:1044B00029F48091D60187FF44C0F6CF8B3F39F4B1
-:1044C0008091D70187FF3DC01092D7013AC08C3F41
-:1044D00029F48091D7011816BCF333C0843F21F42E
-:1044E0008091D3018E7F17C0853F21F48091D30145
-:1044F0008D7F11C0863F21F48091D3018B7F0BC04B
-:10450000873F21F48091D301877F05C0883F31F434
-:104510008091D3018F7E8093D30113C08D3F21F40E
-:104520008091D1018E7F0BC08E3F21F48091D1010B
-:104530008D7F05C08F3F29F48091D1018B7F8093BF
-:10454000D1018091D40181110EC08091D5018111DA
-:104550000AC08091D601811106C08091D7018111D6
-:1045600002C01092D20108958091C90183FF7EC0DC
-:1045700088ED93E00E945D068091D3011F928F9396
-:1045800083ED93E09F938F930E94F60681ED93E075
-:104590000E945D068091D401282F332727FD309596
-:1045A0003F938F938EEC93E09F938F930E94F60638
-:1045B0008CEC93E00E945D068091D501282F332773
-:1045C00027FD30953F938F9389EC93E09F938F93D2
-:1045D0000E94F60687EC93E00E945D068091D6016A
-:1045E000282F332727FD30953F938F9384EC93E05A
-:1045F0009F938F930E94F60682EC93E00E945D06E3
-:104600008091D701282F332727FD30953F938F9333
-:104610008FEB93E09F938F930E94F6068CEB93E0D1
-:104620000E945D068091D2011F928F9389EB93E0E7
-:104630009F938F930E94F60687EB93E00E945D069E
-:104640008091D1011F928F9384EB93E09F938F937E
-:104650000E94F60681EB93E00E945D068DB79EB73F
-:104660004C960FB6F8949EBF0FBE8DBF83ED91E0C0
-:104670000E948D130E941A1F9093D0018093CF0146
-:1046800008951F93CF93DF938091CF019091D00134
-:104690000E94261FFC012091D201222329F0909133
-:1046A0001201892F90E007C08091130190E06AE029
-:1046B00070E00E942E2AE817F90708F486C080915E
-:1046C000D401C091D501D091D6011091D7018111AB
-:1046D00007C0C11176C0D11174C0111172C075C06C
-:1046E0002F3F19F02F5F2093D201181624F40E9457
-:1046F00041218093D4018091D40187FF05C00E949D
-:10470000412181958093D4011C1624F40E944121FB
-:104710008093D5018091D50187FF05C00E9441217A
-:1047200081958093D5016091D401662339F1C091C0
-:10473000D501CC2319F1772767FD7095872F972F27
-:104740000E94372923E333E343E35FE30E949B297D
-:104750000E9404296093D4016C2F772767FD709520
-:10476000872F972F0E94372923E333E343E35FE347
-:104770000E949B290E9404296093D5011D1624F4F0
-:104780000E948C218093D6018091D60187FF05C0BD
-:104790000E948C2181958093D601111624F40E94E9
-:1047A0008C218093D7018091D70187FF05C00E949B
-:1047B0008C2181958093D701DF91CF911F910C942B
-:1047C000B4222F3F09F08ECF96CFDF91CF911F916A
-:1047D0000895E3EDF1E085E0DF011D928A95E9F7A8
-:1047E0001092D2011092D10108958BEF95E00E94B2
-:1047F0005D061F9281E08F931F9285E08F938DEA73
-:1048000095E09F938F930E94F6060F900F900F9064
-:104810000F900F900F9008958330E9F128F48130C4
-:1048200061F0823009F10895853009F462C008F41E
-:1048300049C0863009F474C0089580911301262F71
-:1048400030E0280F311D2F3F310524F4680F6093AD
-:10485000130103C08FEF80931301809113011F9206
-:104860008F9386EE94E072C080911201262F30E083
-:10487000280F311D2F3F310524F4680F609312017A
-:1048800003C08FEF80931201809112011F928F93CA
-:1048900084ED94E05BC080911101262F30E0280F59
-:1048A000311D2F3F310524F4680F6093110103C0BF
-:1048B0008FEF80931101809111011F928F9381ECF2
-:1048C00094E044C080911001262F30E0280F311D64
-:1048D0002F3F310524F4680F6093100103C08FEF60
-:1048E00080931001809110011F928F938CEA94E0C5
-:1048F0002DC080910F01262F30E0280F311D2F3F52
-:10490000310524F4680F60930F0103C08FEF80938B
-:104910000F0180910F011F928F9383E994E016C0DD
-:1049200080910E01262F30E0280F311D2F3F3105D9
-:1049300024F4680F60930E0103C08FEF80930E0183
-:1049400080910E011F928F9388E794E09F938F933D
-:104950000E94F6060F900F900F900F9008958330ED
-:1049600081F128F4813059F08230D1F008958530FA
-:1049700009F449C0B8F1863009F456C00895809111
-:104980001301681720F4861B8093130102C0109254
-:104990001301809113011F928F9389E694E054C014
-:1049A00080911201681720F4861B8093120102C0C7
-:1049B00010921201809112011F928F9387E594E06B
-:1049C00043C080911101681720F4861B8093110168
-:1049D00002C010921101809111011F928F9384E403
-:1049E00094E032C080911001681720F4861B8093F8
-:1049F000100102C010921001809110011F928F933C
-:104A00008FE294E021C080910F01681720F4861B8B
-:104A100080930F0102C010920F0180910F011F922D
-:104A20008F9386E194E010C080910E01681720F406
-:104A3000861B80930E0102C010920E0180910E0120
-:104A40001F928F938BEF93E09F938F930E94F606B4
-:104A50000F900F900F900F900895CF93C82F1F9233
-:104A60008F9380E097E09F938F930E94F60681E0FA
-:104A700090E0A0E0B0E0BC01CD0104C0660F771F5C
-:104A8000881F991FCA95D2F70E94081C0F900F909B
-:104A90000F900F90CF910C943518CF938732B0F5CB
-:104AA0008E3108F04AC28E3009F4C4C100F5873057
-:104AB00009F48DC1A8F4863009F045C28091C9017E
-:104AC000817F8E7F8093C9018DE698E00E945D060C
-:104AD00086E09CE00E945D0681E08093D90175C16B
-:104AE000883009F43FC08B3009F46BC12CC2863189
-:104AF00009F4E6C120F4803109F4B0C124C289313F
-:104B000009F4C7C18B3109F481C11DC2883309F48E
-:104B100058C150F4893209F412C2853309F40FC226
-:104B2000873209F40CC20FC2833409F408C228F496
-:104B30008A3308F408C2895303C2883409F003C2D7
-:104B40000E9435188AEE9BE00E945D069FEF23EDE0
-:104B500080E3915020408040E1F700C000000E94B7
-:104B6000751F33C18AE09CE00E945D068CE69BE0E5
-:104B70000E945D060E942F211F928F9389E69BE081
-:104B80009F938F930E94F60687E69BE00E945D0646
-:104B90000E942621C82F84E59BE00E945D061F929B
-:104BA000CF938FE49BE09F938F930E94F6068DE452
-:104BB0009BE00E945D0683E49BE00E945D068C2FD3
-:104BC00081701F928F9380E49BE09F938F930E944C
-:104BD000F6068EE39BE00E945D0684E39BE00E9464
-:104BE0005D06C1FB882780F91F928F9381E39BE0CC
-:104BF0009F938F930E94F6068FE29BE00E945D06D2
-:104C000083E29BE00E945D06C2FB882780F91F9229
-:104C10008F9380E29BE09F938F930E94F6068EE134
-:104C20009BE00E945D0685E19BE00E945D06C3FB60
-:104C3000CC27C0F91F92CF9382E19BE09F938F9383
-:104C40000E94F60680E19BE00E945D060E943821EA
-:104C5000C82F8CEF9AE00E945D061F92CF9387EFDA
-:104C60009AE09F938F930E94F60685EF9AE00E9448
-:104C70005D068CED9AE00E945D068C2F81701F927C
-:104C80008F9389ED9AE09F938F930E94F6068DB7DC
-:104C90009EB780960FB6F8949EBF0FBE8DBF87ED6E
-:104CA0009AE00E945D0680EC9AE00E945D06C1FBDE
-:104CB000882780F91F928F938DEB9AE09F938F93B3
-:104CC0000E94F6068BEB9AE00E945D0689EA9AE064
-:104CD0000E945D06C2FB882780F91F928F9386EAA7
-:104CE0009AE09F938F930E94F60684EA9AE00E94CE
-:104CF0005D0682E99AE00E945D06C3FB882780F981
-:104D00001F928F938FE89AE09F938F930E94F606ED
-:104D10008DE89AE00E945D0683E89AE00E945D06B5
-:104D2000C4FB882780F91F928F9380E89AE09F93B5
-:104D30008F930E94F6068EE79AE00E945D068CE64D
-:104D40009AE00E945D06C5FB882780F91F928F9329
-:104D500089E69AE09F938F930E94F60687E69AE091
-:104D60000E945D068BE49AE00E945D06C6FB8827E0
-:104D700080F91F928F9388E49AE09F938F930E940B
-:104D8000F60686E49AE00E945D068EE39AE00E94B1
-:104D90005D06C7FBCC27C0F91F92CF938BE39AE047
-:104DA0009F938F930E94F60689E39AE00E945D0626
-:104DB0008DB79EB74C960FB6F8949EBF0FBE8DBFB1
-:104DC00004C084E998E00E945D06C1E0C1C0809102
-:104DD000C901C82FC095C170C0FB80F98093C9017B
-:104DE000CC2349F08EED9BE00E945D068091C901C5
-:104DF0008660886048C081ED9BE00E945D068091DE
-:104E0000C901897F877F8093C901DFCF9091C90154
-:104E100091FBCC27C0F981E0C827892FC0FB81F91D
-:104E20008093C901CC2319F084EC9BE027C086EB6A
-:104E30009BE0C9CF9091C90192FBCC27C0F981E0DA
-:104E4000C827892FC0FB82F98093C901CC2319F0B0
-:104E500087EA9BE013C087E99BE0B5CF9091C90139
-:104E600093FBCC27C0F981E0C827892FC0FB83F9C9
-:104E70008093C901CC2351F08BE89BE00E945D0632
-:104E80008091C90181608093C90162C08EE79BE077
-:104E90009ACF8EE598E00E945D0686E398E00E9436
-:104EA0005D0684E098E00E945D0687ED97E00E9431
-:104EB0005D0687E997E00E945D068BE697E083CF69
-:104EC0008DE597E00E945D060E9438131F928F9334
-:104ED00083E497E09F938F930E94F60680910B01E5
-:104EE0001F928F938CE297E09F938F930E94F60618
-:104EF00080916C011F928F9389E197E09F938F932C
-:104F00000E94F6068091CB019091CC01A091CD0139
-:104F1000B091CE01BF93AF939F938F9385E097E0BD
-:104F20009F938F930E94F6068DB79EB742960FB659
-:104F3000F8949EBF0FBE8DBF48CF8D5101C080E059
-:104F40000E942D2542CF8CE79BE00E945D06C0E0C9
-:104F50008C2FCF91089580E0089580E00895CF933D
-:104F6000C82F8091D901813071F020F0823009F48E
-:104F70004BC042C1E0910C01F0910D018081823261
-:104F800009F03CC107C0E0910C01F0910D01808156
-:104F9000823261F48C2F0E94AB27811104C08C2FC8
-:104FA0000E944D252FC081E090E02CC08C2F0E94E4
-:104FB000AD27811126C0C431E1F070F4CB3081F00F
-:104FC000C031D1F40E94F52388EF96E00E945D067F
-:104FD00082E08093D90115C0C93259F0C83361F419
-:104FE0008DE698E00E945D068CEF96E00E945D06DB
-:104FF00008C01092D90104C186EF96E00E945D06B8
-:10500000FFC081E08170FEC0C43228F5CE3108F0C7
-:10501000C1C0CB30A1F1D0F4C73009F0D3C08EE1CC
-:105020008093130182E3809312018AE0809311013F
-:1050300084E18093100188E080930F0188E28093DF
-:105040000E018CE995E00E945D06BFC0C33149F1B5
-:10505000C431C1F0B7C0CB3409F4A9C028F4C932B7
-:1050600089F0C83361F0AEC0C13509F49EC0C235C5
-:1050700009F499C0CE3409F0A5C06AE09EC00E9430
-:10508000F523A3C08091D801882319F01092D8018C
-:105090009CC089EA95E00E945D0681E08093D90179
-:1050A000B1C083E895E00E945D0681E795E00E942B
-:1050B0005D06809113011F928F938EE695E09F937A
-:1050C0008F930E94F6068CE695E00E945D068AE5C5
-:1050D00095E00E945D06809112011F928F9387E5F3
-:1050E00095E09F938F930E94F60685E595E00E94D8
-:1050F0005D0686E495E00E945D06809111011F9295
-:105100008F9383E495E09F938F930E94F60681E44A
-:1051100095E00E945D0680E395E00E945D06809127
-:1051200010011F928F938DE295E09F938F930E94C1
-:10513000F6068BE295E00E945D0686E195E00E940E
-:105140005D0680910F011F928F9383E195E09F93FD
-:105150008F930E94F60681E195E00E945D068AEF3A
-:1051600094E00E945D0680910E011F928F9387EF5D
-:1051700094E09F938F930E94F60685EF94E00E943F
-:105180005D068DB79EB748960FB6F8949EBF0FBECA
-:105190008DBF1BC0CE51EC2FF0E0E85CFE4F80814C
-:1051A0008093D80112C061E003C061E006C06AE0EC
-:1051B0008091D8010E940C2408C08091D8010E94DF
-:1051C000AF2403C08AE995E013C08091D8018823F9
-:1051D00069F01F928F9384E995E09F938F930E94CB
-:1051E000F6060F900F900F900F9004C081E995E0A4
-:1051F0000E945D0681E006C01092D90180E002C0E5
-:1052000080E000CFCF91089504D06894B1118DC093
-:10521000089570D088F09F5790F0B92F9927B75113
-:10522000A0F0D1F0660F771F881F991F1AF0BA956A
-:10523000C9F712C0B13081F077D0B1E0089574C0E1
-:10524000672F782F8827B85F39F0B93FCCF3869560
-:1052500077956795B395D9F73EF4909580957095BD
-:1052600061957F4F8F4F9F4F0895E89409C097FB3A
-:105270003EF490958095709561957F4F8F4F9F4F2D
-:105280009923A9F0F92F96E9BB279395F695879571
-:1052900077956795B795F111F8CFFAF4BB0F11F434
-:1052A00060FF1BC06F5F7F4F8F4F9F4F16C08823DB
-:1052B00011F096E911C0772321F09EE8872F762F11
-:1052C00005C0662371F096E8862F70E060E02AF052
-:1052D0009A95660F771F881FDAF7880F969587953E
-:1052E00097F9089557FD9058440F551F59F05F3FA7
-:1052F00071F04795880F97FB991F61F09F3F79F0F8
-:1053000087950895121613061406551FF2CF469579
-:10531000F1DF08C0161617061806991FF1CF8695FB
-:105320007105610508940895E894BB2766277727DF
-:10533000CB0197F908950AD080C071D028F076D0BB
-:1053400018F0952309F062C067C0EFCFCBDFA8F358
-:105350009923D9F35523C9F3950F50E0551FAA2778
-:10536000EE27FF27BB2700240894679520F4E20F5F
-:10537000F31FB41F0A1E220F331F441FAA1F669576
-:10538000A9F7779530F4F30FB41F0A1E121E08F424
-:105390006395330F441FAA1F221F769599F78795AF
-:1053A00020F4B40F0A1E121E631F440FAA1F221FEF
-:1053B000331F8695A9F7862F712D602D11249F57D5
-:1053C00050408AF0E1F088234AF0EE0FFF1FBB1F28
-:1053D000661F771F881F91505040A9F79E3F5105C7
-:1053E00070F014C0A2CF5F3FECF3983EDCF38695DB
-:1053F00077956795B795F795E7959F5FC1F7FE2B72
-:10540000880F911D9695879597F9089597F99F674D
-:1054100080E870E060E008959FEF80EC089500243C
-:105420000A941616170618060906089500240A9409
-:1054300012161306140605060895092E0394000C8F
-:1054400011F4882352F0BB0F40F4BF2B11F460FF1E
-:1054500004C06F5F7F4F8F4F9F4F089500245527E3
-:1054600004C0080E591F880F991F009729F07695E0
-:105470006795B8F37105B9F7802D952F0895991B9D
-:1054800079E004C0991F961708F0961B881F7A953B
-:10549000C9F78095089597FB072E16F4009407D05E
-:1054A00077FD09D00E94652A07FC05D03EF490954F
-:1054B00081959F4F0895709561957F4F0895EE0FE8
-:1054C000FF1F0590F491E02D0994AA1BBB1B51E12D
-:1054D00007C0AA1FBB1FA617B70710F0A61BB70B64
-:1054E000881F991F5A95A9F780959095BC01CD0109
-:1054F0000895F999FECF92BD81BDF89A992780B59C
-:105500000895A8E1B0E042E050E00C94A12A262FD3
-:10551000F999FECF92BD81BDF89A019700B40216A9
-:1055200039F01FBA20BD0FB6F894FA9AF99A0FBE57
-:1055300008950196272F0E94882A0C94872ADC015F
-:10554000CB01FC01F999FECF06C0F2BDE1BDF89A8E
-:10555000319600B40D9241505040B8F70895F89438
-:02556000FFCF7B
-:10556200FFEA0BDB0CB80C840C500C01BE012808BE
-:10557200140A321E0313233343536373091929395F
-:10558200495969263F4D36202303D602A0028002E4
-:105592000C0225023E025702010203040506070817
-:0255A2000900FE
-:00000001FF
diff --git a/keyboard/alps64/keymaps/default/keymap.c b/keyboard/alps64/keymaps/default/keymap.c deleted file mode 100644 index 2c45dc7f3..000000000 --- a/keyboard/alps64/keymaps/default/keymap.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "alps64.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* 0: qwerty */ - KEYMAP( \ - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, NUHS, BSPC, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ - CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, \ - LSFT,NUBS,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RSFT,ESC, \ - LCTL,LGUI,LALT, SPC, APP, RALT,RGUI,RCTL), -}; -const uint16_t PROGMEM fn_actions[] = {}; diff --git a/keyboard/alps64/led.c b/keyboard/alps64/led.c deleted file mode 100644 index d20c51aab..000000000 --- a/keyboard/alps64/led.c +++ /dev/null @@ -1,34 +0,0 @@ -/* -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/>. -*/ - -#include <avr/io.h> -#include "stdint.h" -#include "led.h" - - -void led_set(uint8_t usb_led) -{ - if (usb_led & (1<<USB_LED_CAPS_LOCK)) { - // output high - DDRC |= (1<<5); - PORTC |= (1<<5); - } else { - // Hi-Z - DDRC &= ~(1<<5); - PORTC &= ~(1<<5); - } -} diff --git a/keyboard/alps64/matrix.c b/keyboard/alps64/matrix.c deleted file mode 100644 index 805999d4a..000000000 --- a/keyboard/alps64/matrix.c +++ /dev/null @@ -1,197 +0,0 @@ -/* -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/>. -*/ - -/* - * scan matrix - */ -#include <stdint.h> -#include <stdbool.h> -#include <avr/io.h> -#include <util/delay.h> -#include "print.h" -#include "debug.h" -#include "util.h" -#include "matrix.h" - - -#ifndef DEBOUNCE -# define DEBOUNCE 5 -#endif -static uint8_t debouncing = DEBOUNCE; - -/* matrix state(1:on, 0:off) */ -static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_ROWS]; - -static matrix_row_t read_cols(void); -static void init_cols(void); -static void unselect_rows(void); -static void select_row(uint8_t row); - - -inline -uint8_t matrix_rows(void) -{ - return MATRIX_ROWS; -} - -inline -uint8_t matrix_cols(void) -{ - return MATRIX_COLS; -} - -void matrix_init(void) -{ - // initialize row and col - unselect_rows(); - init_cols(); - - // initialize matrix state: all keys off - for (uint8_t i=0; i < MATRIX_ROWS; i++) { - matrix[i] = 0; - matrix_debouncing[i] = 0; - } - - //debug - debug_matrix = true; - LED_ON(); - _delay_ms(500); - LED_OFF(); -} - -uint8_t matrix_scan(void) -{ - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - select_row(i); - _delay_us(30); // without this wait read unstable value. - matrix_row_t cols = read_cols(); - if (matrix_debouncing[i] != cols) { - matrix_debouncing[i] = cols; - if (debouncing) { - debug("bounce!: "); debug_hex(debouncing); debug("\n"); - } - debouncing = DEBOUNCE; - } - unselect_rows(); - } - - if (debouncing) { - if (--debouncing) { - _delay_ms(1); - } else { - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - matrix[i] = matrix_debouncing[i]; - } - } - } - - return 1; -} - -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1<<col)); -} - -inline -matrix_row_t matrix_get_row(uint8_t row) -{ - return matrix[row]; -} - -void matrix_print(void) -{ - print("\nr/c 0123456789ABCDEF\n"); - for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - phex(row); print(": "); - pbin_reverse16(matrix_get_row(row)); - print("\n"); - } -} - -/* Column pin configuration - * col: 0 1 2 3 4 5 6 7 - * pin: B0 B1 B2 B3 B4 B5 B6 B7 - */ -static void init_cols(void) -{ - // Input with pull-up(DDR:0, PORT:1) - DDRB &= ~0b11111111; - PORTB |= 0b11111111; -} - -/* Returns status of switches(1:on, 0:off) */ -static matrix_row_t read_cols(void) -{ - // Invert because PIN indicates 'switch on' with low(0) and 'off' with high(1) - return ~PINB; -} - -/* Row pin configuration - * row: 0 1 2 3 4 5 6 7 - * pin: D0 D1 D2 D3 D4 D5 D6 C2 - */ -static void unselect_rows(void) -{ - // Hi-Z(DDR:0, PORT:0) to unselect - DDRD &= ~0b01111111; - PORTD &= ~0b01111111; - DDRC &= ~0b00000100; - PORTC &= ~0b00000100; -} - - -static void select_row(uint8_t row) -{ - // Output low(DDR:1, PORT:0) to select - switch (row) { - case 0: - DDRD |= (1<<0); - PORTD &= ~(1<<0); - break; - case 1: - DDRD |= (1<<1); - PORTD &= ~(1<<1); - break; - case 2: - DDRD |= (1<<2); - PORTD &= ~(1<<2); - break; - case 3: - DDRD |= (1<<3); - PORTD &= ~(1<<3); - break; - case 4: - DDRD |= (1<<4); - PORTD &= ~(1<<4); - break; - case 5: - DDRD |= (1<<5); - PORTD &= ~(1<<5); - break; - case 6: - DDRD |= (1<<6); - PORTD &= ~(1<<6); - break; - case 7: - DDRC |= (1<<2); - PORTC &= ~(1<<2); - break; - } -} |