diff options
Diffstat (limited to 'keyboard/planck')
75 files changed, 0 insertions, 13161 deletions
diff --git a/keyboard/planck/.gitignore b/keyboard/planck/.gitignore deleted file mode 100644 index 6e92f57d46..0000000000 --- a/keyboard/planck/.gitignore +++ /dev/null @@ -1 +0,0 @@ -tags diff --git a/keyboard/planck/CYGWIN_GUIDE.md b/keyboard/planck/CYGWIN_GUIDE.md deleted file mode 100755 index ac13e745d7..0000000000 --- a/keyboard/planck/CYGWIN_GUIDE.md +++ /dev/null @@ -1,352 +0,0 @@ -#Planck Advanced (but not too advanced) `cygwin` Users Guide -If you are a user of the [cygwin environment](https://cygwin.com) in Windows and want the freedom to use the latest tools available, then this is the guide for you. If compiling your own copy of the latest and greatest Gnu C Compiler makes you super happy, then this is the guide for you. If the command line make you smile, then this is the guide for you. - -This guide was written step by step as I went through the process on a `Windows 10` `x86_64` and a `Windows 7` `amd k10` based system. This should be generally applicable to to any `Windows` environment with `cygwin`. - -#####Do not skip steps. Do not move past a step until the previous step finishes successfully. - -Based on [avr-libc installation guide](http://www.nongnu.org/avr-libc/user-manual/install_tools.html) - -##Get the Required Packages -Download the `cygwin` setup ([x86_64](https://cygwin.com/setup-x86_64.exe)) and install the default system plus the following if they are not already selected: -- devel/git -- devel/gcc-core -- devel/gcc-g++ -- devel/flex -- devel/bison -- devel/make -- devel/texinfo -- devel/gettext-devel -- devel/automake -- devel/autoconfig -- devel/libtool -- text/gettext -- libs/libgcc1 -- interpreters/m4 -- web/wget -- archive/unzip - -The following sources will be required: -- [gmp](https://gmplib.org/) (6.1.0) -- [mpfr](http://www.mpfr.org/) (3.1.4) -- [mpc](http://www.multiprecision.org/) (1.0.3) -- [binutils](https://www.sourceware.org/binutils/) (2.26) -- [gcc](https://gcc.gnu.org/) (5.3.0) -- [avr-libc](http://www.nongnu.org/avr-libc/) (2.0.0) - -The `dfu-programmer` will be required to flash the new firmware -- [dfu-programmer](https://dfu-programmer.github.io/) (0.7.2) - -The set of commands below will create a directory (`~/local/avr`) for the sources you compile to be installed on the machine and a directory (`~/src`) for these source files to be stored. The commands then download the sources of the needed packages and unpack them. Note: the expand commands are different depending on if the packages are offered as a `bz2` or `gz` archive -``` -$ mkdir ~/local -$ mkdir ~/local/avr -$ mkdir ~/src -$ cd ~/src -$ wget https://gmplib.org/download/gmp/gmp-6.1.0.tar.bz2 -$ wget http://www.mpfr.org/mpfr-3.1.4/mpfr-3.1.4.tar.bz2 -$ wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz -$ wget http://ftp.gnu.org/gnu/binutils/binutils-2.26.tar.gz -$ wget http://mirror0.babylon.network/gcc/releases/gcc-5.3.0/gcc-5.3.0.tar.gz -$ wget http://download.savannah.gnu.org/releases/avr-libc/avr-libc-2.0.0.tar.bz2 -$ tar -xjf gmp-6.1.0.tar.bz2 -$ tar -xjf mpfr-3.1.4.tar.bz2 -$ tar -zxf mpc-1.0.3.tar.gz -$ tar -zxf binutils-2.26.tar.gz -$ tar -zxf gcc-5.3.0.tar.gz -$ tar -xjf avr-libc-2.0.0.tar.bz2 -``` - -##Setup the Build Environment -These commands will set up the install directory and the `PATH` variable, which will allow you to access your installed packages. Note: if you close the `cygwin` terminal window, you will need to rerun these commands, they are not permanent. -``` -$ PREFIX=$HOME/local/avr -$ export PREFIX -$ PATH=/usr/local/bin:/usr/local/lib:/usr/local/include:/bin:/lib:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS -$ PATH=$PATH:$PREFIX/bin:$PREFIX/lib -$ export PATH -``` - -##The `gcc` Required Math Library Packages -The following packages are required to be complied and installed in order to compile `gcc`. They are not sufficiently available through the `cygwin` package system, so we have to make them ourselves. They must be complied in this order because each one depends on the previous. Verfiy that for each package, `make check` returns all passing and no fails. - -###Build and Install `gmp` -``` -$ cd ~/src/gmp-6.1.0 -$ ./configure --enable-static --disable-shared -$ make -$ make check -$ make install -``` - -###Build and Install `mpfr` -``` -$ cd ~/src/mpfr-3.1.4 -$ ./configure --with-gmp-build=../gmp-6.1.0 --enable-static --disable-shared -$ make -$ make check -$ make install -``` - -###Build and Install `mpc` -``` -$ cd ~/src/mpc-1.0.3 -$ ./configure --with-gmp=/usr/local --with-mpfr=/usr/local --enable-static --disable-shared -$ make -$ make check -$ make install -``` - -##OPTIONAL Part -You can build and install a brand new `gcc` or you can use the one supplied by `cygwin`. This will take about 4-5 hours to compile (It is a "native build", so it does the entire build **3 times**. This takes a long while). - -###Build and Install `gcc` for Your Machine -``` -$ cd ~/src/gcc-5.3.0 -$ mkdir obj-local -$ cd obj-local -$ ../configure --enable-languages=c,c++ --with-gmp=/usr/local --with-mpfr=/usr/local --with-mpc=/usr/local --enable-static --disable-shared -$ make -$ make install -``` -##End OPTIONAL Part - -###Build and Install `binutils` for Your Machine -``` -$ cd ~/src/binutils-2.26 -$ mkdir obj-local -$ cd obj-local -$ ../configure -$ make -$ make install -``` - -##Buliding `binutils`, `gcc`, and `avr-libc` for the AVR system -Now we can make the critical stuff for compiling our firmware: `binutils`, `gcc`, and `avr-libc` for the AVR architecture. These allow us to build and manipulate the firmware for the keyboard. - -###Build `binutils` for AVR -If you plan to build and install `avr-gdb` also, use the `gdb` install at the end of this guide as it also builds the `binutils` -``` -$ cd ~/src/binutils-2.26 -$ mkdir obj-avr -$ cd obj-avr -$ ../configure --prefix=$PREFIX --target=avr --disable-nls -$ make -$ make install -``` - -###Build `gcc` for AVR -``` -$ cd ~/src/gcc-5.3.0 -$ mkdir obj-avr -$ cd obj-avr -$ ../configure --prefix=$PREFIX --target=avr --enable-languages=c,c++ --with-gmp=/usr/local --with-mpfr=/usr/local --with-mpc=/usr/local --enable-static --disable-shared --disable-nls --disable-libssp --with-dwarf2 -$ make -$ make install -``` - -###Build `avr-libc` for AVR -For building the `avr-libc`, we have to specify the host build system. In my case it is `x86_64-unknown-cygwin`. You can look for build system type in the `gcc` configure notes for the proper `--build` specification to pass when you configure `avr-libc`. -``` -$ cd ~/src/avr-libc-2.0.0 -$ ./configure --prefix=$PREFIX --build=x86_64-unknown-cygwin --host=avr -$ make -$ make install -``` - -##Building 'dfu-programmer' for flashing the firmware via USB and installing the drivers -We can either build our own, or use the precomplied binaries. The precompiled binaries don't play well with `cygwin` so it is better to build them ourselves. The procedure for the precompiled binaries is included at the end of this guide. - -### Build and Install the `libusb` -The `dfu-programmer` requires `libusb` so that it can interact with the USB system. These repos must be bootstrapped in order to create an appropriate `./configure` and `Makefile` for your system. -``` -$ cd ~/src -$ git clone https://github.com/libusb/libusb.git -$ cd libusb -$ ./bootstrap.sh -$ ./configure -$ make -$ make install -``` - -### Build and Install the `dfu-programmer` -``` -$ cd ~/src -$ git clone https://github.com/dfu-programmer/dfu-programmer.git -$ cd dfu-programmer -$ ./bootstrap.sh -$ ./configure -$ make -$ make install -``` - -Verify the installation with: -``` -$ which dfu-programmer -/usr/local/bin/dfu-programmer - -$ dfu-programmer -dfu-programmer 0.7.2 -https://github.com/dfu-programmer/dfu-programmer -Type 'dfu-programmer --help' for a list of commands - 'dfu-programmer --targets' to list supported target devices -``` -If you are not getting the above result, you will not be able to flash the firmware! - -###Install the USB drivers -The drivers are included in the windows binary version of [`dfu-programmer` 0.7.2](http://iweb.dl.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip). -``` -$ cd ~/src -$ wget http://iweb.dl.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip -$ unzip dfu-programmer-win-0.7.2.zip -d dfu-programmer-win-0.7.2 -``` - -or - -The official drivers are found in [Atmel's `FLIP` installer](http://www.atmel.com/images/Flip%20Installer%20-%203.4.7.112.exe). Download and then install `FLIP`. Upon installation, the drivers will be found in `C:\Program Files (x86)\Atmel\Flip 3.4.7\usb`. - -Then, from an **administrator-privileged** `Windows` terminal, run the following command (adjust the path for username, etc. as necessary) and accept the prompt that pops up: -``` -C:\> pnputil -i -a C:\cygwin64\home\Kevin\src\dfu-programmer-win-0.7.2\dfu-prog-usb-1.2.2\atmel_usb_dfu.inf -or -C:\> pnputil -i -a "C:\Program Files (x86)\Atmel\Flip 3.4.7\usb\atmel_usb_dfu.inf" -``` - -This should be the result: -``` -Microsoft PnP Utility - -Processing inf : atmel_usb_dfu.inf -Successfully installed the driver on a device on the system. -Driver package added successfully. -Published name : oem104.inf - - -Total attempted: 1 -Number successfully imported: 1 -``` - -Alternatively, the `Windows` driver can be installed when prompted by `Windows` when the keyboard is attached. Do not let `Windows` search for a driver; specify the path to search for a driver and point it to the `atmel_usb_dfu.inf` file. - -##Building and Flashing the Planck firmware! -If you did everything else right. This part should be a snap! Grab the latest sources from `github`, make the Plank firmware, then flash it. - -###Build Planck and Load the Firmware -``` -$ cd ~/src -$ git clone https://github.com/jackhumbert/qmk_firmware.git -$ cd qmk_firmware/keyboard/planck -$ make -``` - -Make sure there are no errors. You should end up with this or something similar: -``` -Creating load file for Flash: planck.hex -avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature planck.elf planck.hex - -Creating load file for EEPROM: planck.eep -avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \ ---change-section-lma .eeprom=0 --no-change-warnings -O ihex planck.elf planck.eep || exit 0 - -Creating Extended Listing: planck.lss -avr-objdump -h -S -z planck.elf > planck.lss - -Creating Symbol Table: planck.sym -avr-nm -n planck.elf > planck.sym - -Size after: - text data bss dec hex filename - 18602 82 155 18839 4997 planck.elf - --------- end -------- -``` - -If you do not get the above, you **did not** build the firmware, and you will have nothing to flash. If you have the fresh clone from `github`, it was probably something gone wrong in this install process, go check and see what didn't work and threw errors or what steps you might have missed. - -But if everything went OK, you are ready to flash! Press the reset button on the bottom of the Planck, wait two seconds, then: -``` -$ make dfu -``` -. -. -. -profit!!! - - - - - -##extra bits... - -###Installing Precompiled `dfu-programmer` Binaries (not recommended for `cygwin`) -To install the `dfu-programmer` from the binaries, we must get if from [the `dfu-programmer` website](https://dfu-programmer.github.io/) ([0.7.2](http://iweb.dl.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip)). - -Copy this file into your `cygwin` home\src directory. (For me, it is `C:\cygwin64\home\Kevin\src`), extract the files, move `dfu-programmer.exe` to `~/local/avr/bin`. Most obnoxiously, the `libusb0_x86.dll` and `libusb0.sys` need to be moved from `./dfu-prog-usb-1.2.2/x86/` to a directory in the `Windows` `PATH` and the `cygwin` `PATH`. This is because the `dfu-programmer` binary is `mingw` based, not `cygwin` based, so the `dlls` do not cooperate. I achieved acceptable pathing by moving the files to `C:\cygwin64\home\Kevin\local\avr\bin` Then, in a `WINDOWS` command prompt running (Adjusting your path for username, etc. as needed): -``` -C:\> set PATH=%PATH%;C:\cygwin64\home\Kevin\local\avr\bin -``` - -Then, rename `libusb0_x86.dll` to `libusb0.dll`. - -You can tell that you were successful by trying to execute 'dfu-programmer' from the 'cygwin' prompt: -``` -$ which dfu-programmer -/home/Kevin/local/avr/bin/dfu-programmer - -$ dfu-programmer -dfu-programmer 0.7.2 -https://github.com/dfu-programmer/dfu-programmer -Type 'dfu-programmer --help' for a list of commands - 'dfu-programmer --targets' to list supported target devices -``` - -If you are not getting the above result, you will not be able to flash the firmware! -- Try making sure your `PATH` variables are set correctly for both `Windows` and `cygwin`. -- Make sure the `dll` is named correctly. -- Do not extract it with `cygwin`'s `unzip` as it does not set the executable permission. If you did it anyway, do `chmod +x dfu-programmer.exe`. -- Still have problems? Try building it instead. - - -##Debugging Tools - -These tools are for debugging your firmware, etc. before flashing. Theoretically, it can save your memory from wearing out. However, these tool do not work 100% for the Planck firmware. - -### `gdb` for AVR -`gdb` has a simulator for AVR but it does not support all instructions (like WDT), so it immediately crashes when running the Planck firmware (because `lufa.c` disables the WDT in the first few lines of execution). But it can still be useful in debugging example code and test cases, if you know how to use it. - -``` -$ cd ~/src -$ git clone git://sourceware.org/git/binutils-gdb.git -$ cd binutils-gdb -$ mkdir obj-avr -$ cd obj-avr -$ ../configure --prefix=$PREFIX --target=avr --build=x86_64-unknown-cygwin --with-gmp=/usr/local --with-mpfr=/usr/local --with-mpc=/usr/local --disable-nls --enable-static -$ make -$ make install -``` - -### `simulavr` -`simulavr` is an AVR simulator. It runs the complied AVR elfs. `simulavr` does not support the `atmega32u4` device... it does `atmega32` but that is not good enough for the firmware (no PORTE and other things), so you cannot run the Planck firmware. I use it to simulate ideas I have for features in separate test projects. - -This one is a major pain in the butt because it has a lot of dependencies and it is buggy. I will do my best to explain it but... it was hard to figure out. A few things need to be changed in the 'Makefile' to make it work in `cygwin`. - - -``` -$ cd ~/src -$ git clone https://github.com/Traumflug/simulavr.git -$ cd simulavr -$ ./bootstrap -$ ./configure --prefix=$PREFIX --enable-static --disable-tcl --disable-doxygen-doc -``` - Edit `src/Makefile.am` now so that `-no-undefined` is included (I did this by removing the SYS_MINGW conditional surrounding `libsim_la_LDFLAGS += -no-undefined` and `libsimulavr_la_LDFLAGS += -no-undefined \ libsimulavr_la_LIBADD += $(TCL_LIB)`. Also, `$(EXEEXT)` is added after `kbdgentables` in two places. - -``` -$ make -$ make install -``` - - -TODO: -- git repos for all sources -- command line magic for cygwin setup -- better options for `dfu-drivers` diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile deleted file mode 100644 index c0c6201cba..0000000000 --- a/keyboard/planck/Makefile +++ /dev/null @@ -1,182 +0,0 @@ -#---------------------------------------------------------------------------- -# On command line: -# -# make all = Make software. -# -# make clean = Clean out built project files. -# -# make coff = Convert ELF to AVR COFF. -# -# make extcoff = Convert ELF to AVR Extended COFF. -# -# make program = Download the hex file to the device. -# Please customize your programmer settings(PROGRAM_CMD) -# -# make teensy = Download the hex file to the device, using teensy_loader_cli. -# (must have teensy_loader_cli installed). -# -# make dfu = Download the hex file to the device, using dfu-programmer (must -# have dfu-programmer installed). -# -# make flip = Download the hex file to the device, using Atmel FLIP (must -# have Atmel FLIP installed). -# -# make dfu-ee = Download the eeprom file to the device, using dfu-programmer -# (must have dfu-programmer installed). -# -# make flip-ee = Download the eeprom file to the device, using Atmel FLIP -# (must have Atmel FLIP installed). -# -# make debug = Start either simulavr or avarice as specified for debugging, -# with avr-gdb or avr-insight as the front end for debugging. -# -# make filename.s = Just compile filename.c into the assembler code only. -# -# make filename.i = Create a preprocessed source file for use in submitting -# bug reports to the GCC project. -# -# To rebuild project do "make clean" then "make all". -#---------------------------------------------------------------------------- - -# Target file name (without extension). -TARGET = planck - -# Directory common source filess exist -TOP_DIR = ../.. -TMK_DIR = ../../tmk_core - -# Directory keyboard dependent files exist -TARGET_DIR = . - -# # project specific files -SRC = planck.c - -ifdef keymap - KEYMAP = $(keymap) -endif - -ifdef KEYMAP -ifneq ("$(wildcard keymaps/$(KEYMAP).c)","") - KEYMAP_FILE = keymaps/$(KEYMAP).c -else -ifneq ("$(wildcard keymaps/$(KEYMAP)/keymap.c)","") - KEYMAP_FILE = keymaps/$(KEYMAP)/keymap.c -ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","") - include keymaps/$(KEYMAP)/makefile.mk -endif -else -$(error Keymap file does not exist) -endif -endif - -else - -ifneq ("$(wildcard keymaps/default.c)","") - KEYMAP_FILE = keymaps/default.c -else - KEYMAP_FILE = keymaps/default/keymap.c -endif - -ifneq ("$(wildcard keymaps/default/makefile.mk)","") - include keymaps/default/makefile.mk -endif - -endif - -SRC := $(KEYMAP_FILE) $(SRC) - -CONFIG_H = config.h - -# 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 -# change to "no" to disable the options, or define them in the makefile.mk in -# the appropriate keymap folder that will get included automatically -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. - -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - -ifdef KEYMAP - -ifeq ("$(wildcard keymaps/$(KEYMAP).c)","") -ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","") - include keymaps/$(KEYMAP)/makefile.mk -endif -endif - -else - -ifneq ("$(wildcard keymaps/default/makefile.mk)","") - include keymaps/default/makefile.mk -endif - -endif - -# Optimize size but this may cause error "relocation truncated to fit" -#EXTRALDFLAGS = -Wl,--relax - -# Search Path -VPATH += $(TARGET_DIR) -VPATH += $(TOP_DIR) -VPATH += $(TMK_DIR) - -include $(TOP_DIR)/quantum/quantum.mk
\ No newline at end of file diff --git a/keyboard/planck/PCB_GUIDE.md b/keyboard/planck/PCB_GUIDE.md deleted file mode 100644 index b36d8fb64c..0000000000 --- a/keyboard/planck/PCB_GUIDE.md +++ /dev/null @@ -1,151 +0,0 @@ -# Planck Firmware Guide - -## Setting up the environment - -### Windows -1. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**. -2. Install [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). During installation, uncheck the option to install a graphical user interface. **DO NOT change the default installation folder.** The scripts depend on the default location. -3. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/jackhumbert/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer. -4. Right-click on the 1-setup-path-win batch script, select "Run as administrator", and accept the User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up. -5. Right-click on the 2-setup-environment-win batch script, select "Run as administrator", and accept the User Account Control prompt. This part may take a couple of minutes, and you'll need to approve a driver installation, but once it finishes, your environment is complete! - - -### Mac - -If you're using homebrew, you can use the following commands: - - brew tap osx-cross/avr - brew install avr-libc - brew install dfu-programmer - -Otherwise, these instructions will work: - -1. Install Xcode from the App Store. -2. Install the Command Line Tools from `Xcode->Preferences->Downloads`. -3. Install [DFU-Programmer][dfu-prog]. - -### Linux -1. Install AVR GCC with your favorite package manager. -2. Install [DFU-Programmer][dfu-prog]. - -Note that, since it will be directly accessing USB hardware, the -`dfu-programmer` program needs to be run as root. - -## Verify Your Installation -1. Clone the following repository: https://github.com/jackhumbert/qmk_firmware -2. Open a Terminal and `cd` into `qmk_firmware/keyboard/planck` -3. Run `make`. This should output a lot of information about the build process. - -## Using the built-in functions - -Here is a list of some of the functions available from the command line: - -* `make clean`: clean the environment - may be required in-between builds -* `make`: compile the code -* `make KEYMAP=<keymap>`: compile with the extended keymap file `extended_keymaps/extended_keymap_<keymap>.c` -* `make dfu`: build and flash the layout to the PCB -* `make dfu-force`: build and force-flash the layout to the PCB (may be require for first flash) - -Generally, the instructions to flash the PCB are as follows: - -1. Make changes to the appropriate keymap file -2. Save the file -3. `make clean` -4. Press the reset button on the PCB/press the key with the `RESET` keycode -5. `make <arguments> dfu` - use the necessary `KEYMAP=<keymap>` and/or `COMMON=true` arguments here. - -## Troubleshooting -If you see something like this - - 0 [main] sh 13384 sync_with_child: child 9716(0x178) died before initialization with status code 0xC0000142 - 440 [main] sh 13384 sync_with_child: *** child state waiting for longjmp - /usr/bin/sh: fork: Resource temporarily unavailable - -after running 'make' on Windows than you are encountering a very popular issue with WinAVR on Windows 8.1 and 10. -You can easily fix this problem by replacing msys-1.0.dll in WinAVR/utils/bin with [this one](http://www.madwizard.org/download/electronics/msys-1.0-vista64.zip). -Restart your system and everything should work fine! - - -If you see this - - dfu-programmer atmega32u4 erase - process_begin: CreateProcess(NULL, dfu-programmer atmega32u4 erase, ...) failed. - make (e=2): The system cannot find the file specified. - make: *** [dfu] Error 2 - -when trying to 'make dfu' on Windows you need to copy the dfu-programmer.exe to qmk_firmware/keyboard/planck. - - -## Quantum MK Firmware - -### Keymap - -Unlike the other keymaps, prefixing the keycodes with `KC_` is required. A full list of the keycodes is available [here](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keycode.txt). For the keycodes available only in the extended keymap, see this [header file](https://github.com/jackhumbert/qmk_firmware/blob/master/quantum/keymap_common.h). - -You can use modifiers with keycodes like this: - - LCTL(KC_C) - -Which will generate Ctrl+c. These are daisy-chainable, meaning you can do things like: - - LCTL(LALT(KC_C)) - -That will generate Ctrl+Alt+c. The entire list of these functions is here: - -* `LCTL()`: Left control -* `LSFT()` / `S()`: Left shift -* `LALT()`: Left alt/opt -* `LGUI()`: Left win/cmd -* `RCTL()`: Right control -* `RSFT()`: Right shift -* `RALT()`: Right alt/opt -* `RGUI()`: Right win/cmd - -`S(KC_1)`-like entries are useful in writing keymaps for the Planck. - -### Other keycodes - -A number of other keycodes have been added that you may find useful: - -* `CM_<key>`: the Colemak equivalent of a key (in place of `KC_<key>`), when using Colemak in software (`CM_O` generates `KC_SCLN`) -* `RESET`: jump to bootloader for flashing (same as press the reset button) -* `BL_STEP`: step through the backlight brightnesses -* `BL_<0-15>`: set backlight brightness to 0-15 -* `BL_DEC`: lower the backlight brightness -* `BL_INC`: raise the backlight brightness -* `BL_TOGG`: toggle the backlight on/off - -### Function layers - -The extended keymap extends the number of function layers from 32 to the near-infinite value of 256. Rather than using `FN<num>` notation (still available, but limited to `FN0`-`FN31`), you can use the `FUNC(<num>)` notation. `F(<num>)` is a shortcut for this. - -The function actions are unchanged, and you can see the full list of them [here](https://github.com/jackhumbert/tmk_keyboard/blob/master/common/action_code.h). They are explained in detail [here](https://github.com/jackhumbert/tmk_keyboard/blob/master/doc/keymap.md#2-action). - -### Macros - -Macros have been setup in the `keymaps/keymap_default.c` file so that you can use `M(<num>)` to access a macro in the `action_get_macro` section on your keymap. The switch/case structure you see here is required, and is setup for `M(0)` - you'll need to copy and paste the code to look like this (e.g. to support `M(3)`): - - switch(id) { - case 0: - return MACRODOWN(TYPE(KC_A), END); - break; - case 1: - return MACRODOWN(TYPE(KC_B), END); - break; - case 2: - return MACRODOWN(TYPE(KC_C), END); - break; - case 3: - return MACRODOWN(TYPE(KC_D), END); - break; - } - return MACRO_NONE; - -`MACRODOWN()` is a shortcut for `(record->event.pressed ? MACRO(__VA_ARGS__) : MACRO_NONE)` which tells the macro to execute when the key is pressed. Without this, the macro will be executed on both the down and up stroke. - -[cygwin]: https://www.cygwin.com/ -[mingw]: http://www.mingw.org/ -[mhv]: https://infernoembedded.com/products/avr-tools -[winavr]: http://winavr.sourceforge.net/ -[crosspack]: http://www.obdev.at/products/crosspack/index.html -[dfu-prog]: http://dfu-programmer.sourceforge.net/ diff --git a/keyboard/planck/README.md b/keyboard/planck/README.md deleted file mode 100644 index d9a1e3beee..0000000000 --- a/keyboard/planck/README.md +++ /dev/null @@ -1,31 +0,0 @@ -Planck keyboard firmware -====================== -DIY/Assembled compact ortholinear 40% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com). - -## Quantum MK Firmware - -For the full Quantum feature list, see [the parent README.md](/README.md). - -## Building - -Download or clone the whole firmware and navigate to the keyboard/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. - -Depending on which keymap you would like to use, you will have to compile slightly differently. - -### Default -To build with the default keymap, simply run `make`. - -### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>.c` in the keymaps folder, and see keymap document (you can find in top README.md) and existent keymap files. - -To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: -``` -$ make KEYMAP=[default|jack|<name>] -``` -Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder. - -### Notable forks (which some of the keymap files are from) -- [Shane's Fork](https://github.com/shanecelis/tmk_keyboard/tree/master/keyboard/planck) -- [Pierre's Fork](https://github.com/pcarrier/tmk_keyboard/blob/pcarrier/planck/keyboard/gh60/keymap_planck.c) -- [Nathan's Fork](https://github.com/nathanrosspowell/tmk_keyboard/tree/planck-jack/keyboard/planck) -- [Matthew's Fork](https://github.com/pepers/tmk_keyboard/tree/master/keyboard/planck_grid) diff --git a/keyboard/planck/config.h b/keyboard/planck/config.h deleted file mode 100644 index b648931081..0000000000 --- a/keyboard/planck/config.h +++ /dev/null @@ -1,89 +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/>. -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Ortholinear Keyboards -#define PRODUCT The Planck Keyboard -#define DESCRIPTION A compact ortholinear keyboard - -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 12 - -/* Planck PCB default pin-out */ -#define MATRIX_ROW_PINS { D0, D5, B5, B6 } -#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } -#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)) \ -) - -/* ws2812 RGB LED */ -#define ws2812_PORTREG PORTD -#define ws2812_DDRREG DDRD -#define ws2812_pin PD1 -#define RGBLED_NUM 28 // Number of LEDs -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboard/planck/flash-pcb.sh b/keyboard/planck/flash-pcb.sh deleted file mode 100755 index 2ae15458c0..0000000000 --- a/keyboard/planck/flash-pcb.sh +++ /dev/null @@ -1,3 +0,0 @@ -dfu-programmer atmega32u4 erase --force -dfu-programmer atmega32u4 flash planck_pcb.hex -dfu-programmer atmega32u4 reset
\ No newline at end of file diff --git a/keyboard/planck/keymaps/alexey/alexey.c b/keyboard/planck/keymaps/alexey/alexey.c deleted file mode 100644 index 89af4112c6..0000000000 --- a/keyboard/planck/keymaps/alexey/alexey.c +++ /dev/null @@ -1,51 +0,0 @@ -#include "keymap_common.h" -#include "planck.h" -#include "backlight.h" - -#define _QW 0 -#define _LW 1 -#define _RS 2 - -// This layout tries to imitate the Atreus keyboard - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QW] = { /* Qwerty */ - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MO(_LW)}, - {KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS}, - {M(0), KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_SPC, KC_SPC, MO(_RS), KC_MINS, KC_QUOT, KC_ENT, KC_TRNS} -}, -[_RS] = { /* RAISE */ - {KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS}, - {KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS}, - {KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_EQL, KC_TRNS} -}, -[_LW] = { /* LOWER */ - {KC_TRNS, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {KC_TRNS, KC_DELETE, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_F4, KC_F5, KC_F6, KC_F11, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_TRNS} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - backlight_step(); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; - diff --git a/keyboard/planck/keymaps/angerthosenear/angerthosenear.c b/keyboard/planck/keymaps/angerthosenear/angerthosenear.c deleted file mode 100644 index cdf60632e4..0000000000 --- a/keyboard/planck/keymaps/angerthosenear/angerthosenear.c +++ /dev/null @@ -1,50 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT}, - {KC_LCTL, KC_LGUI, KC_LALT, BL_STEP, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* WASD + NumPad */ - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_PMNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PPLS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PDOT, KC_PENT, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_SPC, KC_P0, FUNC(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -[2] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS}, - {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* LOWER */ - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_DEL}, - {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} -} -}; - - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/austin/austin.c b/keyboard/planck/keymaps/austin/austin.c deleted file mode 100644 index 49fc98a587..0000000000 --- a/keyboard/planck/keymaps/austin/austin.c +++ /dev/null @@ -1,50 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {BL_STEP, KC_LGUI, KC_LALT, KC_LCTL, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* Colemak */ - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_FN3, KC_LGUI, KC_LALT, KC_LCTL, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[2] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* LOWER */ - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -} -}; - - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/bone2planck/bone2planck.c b/keyboard/planck/keymaps/bone2planck/bone2planck.c deleted file mode 100644 index a99e7719f9..0000000000 --- a/keyboard/planck/keymaps/bone2planck/bone2planck.c +++ /dev/null @@ -1,112 +0,0 @@ - -#include "planck.h" -#ifdef BACKLIGHT_ENABLE -#include "backlight.h" -#endif -#include "..\..\quantum\keymap_extras\keymap_german.h" - -/* This Layout tries to emulate the Bone2 Variant of Neo2, and is intended to be used with a German QWERTZ Softwarelayout. - It has Umlauts and "ß" as it is optimized for a mix of German & English. - My favourite features are the placement of the special characters often used for programming right on the home row - and the number & navigation block combo, so you never have to move your hands from their home position. - - Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone -*/ - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* Bone2 - * ,-----------------------------------------------------------------------------------. - * | Q | J | D | U | A | X | P | H | L | M | W | ẞ | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | M1 | C | T | I | E | O | B | N | R | S | G | M1 | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | - * `-----------------------------------------------------------------------------------' - */ - [0] = { - { DE_Q, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_SS }, - { MO(1), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, MO(1) }, - { DE_S, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, DE_S }, - { KC_LCTL, KC_LGUI, KC_LALT, MO(3), MO(2), KC_SPC, KC_SPC, MO(2), MO(3), KC_ESC, KC_TAB, KC_ENT } - }, - - /* M1 Special Characters - * ,-----------------------------------------------------------------------------------. - * | ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | M1 | \ | / | { | } | * | ? | ( | ) | - | : | M1 | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | # | $ | | | ~ | € | + | % | " | ' | ; | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | - * `-----------------------------------------------------------------------------------' - */ - [1] = { - { DE_RING, DE_AT, DE_UNDS, DE_LBRC, DE_RBRC, DE_CIRC, DE_EXLM, DE_LESS, DE_MORE, DE_EQL, DE_AMPR, KC_NO }, - { KC_TRNS, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR, DE_QST, DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, KC_TRNS }, - { KC_NO , DE_HASH, DE_DLR, DE_PIPE, DE_TILD, DE_EURO, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, KC_NO }, - { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS } - }, - - /* Navigation & Number Blocks - * ,-----------------------------------------------------------------------------------. - * | | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | Home | Lft | Down | Right| End | . | 4 | 5 | 6 | , | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| | Tab | Ins | Enter| | 0 | 1 | 2 | 3 | ; |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | - * `-----------------------------------------------------------------------------------' - */ - [2] = { - { KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_NO }, - { KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_NO }, - { DE_S, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, KC_0, DE_1, DE_2, DE_3, DE_SCLN, DE_S }, - { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS } - }, - - /* Function & Media Keys - * ,-----------------------------------------------------------------------------------. - * | | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt | M3 | | Space | | M3 | Esc | Tab |Enter | - * `-----------------------------------------------------------------------------------' - */ - [3] = { - { KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F12, KC_NO }, - { KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO }, - { KC_TRNS, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, KC_TRNS}, - { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} - } -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch (id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); -#ifdef BACKLIGHT_ENABLE - backlight_step(); -#endif - } - else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/brandon/brandon.c b/keyboard/planck/keymaps/brandon/brandon.c deleted file mode 100644 index 2b89f86db2..0000000000 --- a/keyboard/planck/keymaps/brandon/brandon.c +++ /dev/null @@ -1,134 +0,0 @@ -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, -// this is the style you want to emulate. - -#include "planck.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" -#endif - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QW 0 -#define _CM 1 -#define _TK 2 -#define _LW 3 -#define _RS 4 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QW] = { /* Qwerty */ -/* MIT Layout (QWERTY layer) - * - * ,-----------------------------------------------------------------------. - * | esc | q | w | e | r | t | y | u | i | o | p | bspc| - * |-----------------------------------------------------------------------| - * | tab | a | s | d | f | g | h | j | k | l | ; | ' | - * |-----------------------------------------------------------------------| - * |shift| z | x | c | v | b | n | m | , | . | / |enter| - * |-----------------------------------------------------------------------| - * | ctl | alt | win | TK |lower| spc |raise|left |down | up |right| - * `-----------------------------------------------------------------------' - */ - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_LSFT, KC_ENT) }, - {KC_LCTL, KC_LALT, KC_LGUI, TG(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[_CM] = { /* Colemak */ -/* MIT Layout (Colemak layer) - * - * ,-----------------------------------------------------------------------. - * | esc | q | w | f | p | g | j | l | u | y | ; | bspc| - * |-----------------------------------------------------------------------| - * | tab | a | r | s | t | d | h | n | e | i | o | ' | - * |-----------------------------------------------------------------------| - * |shift| z | x | c | v | b | k | m | , | . | / |enter| - * |-----------------------------------------------------------------------| - * | ctl | alt | win | TK |lower| spc |raise|left |down | up |right| - * `-----------------------------------------------------------------------' - */ - {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_LSFT, KC_ENT)}, - {KC_LCTL, KC_LALT, KC_LGUI, TG(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[_RS] = { /* RAISE */ -/* MIT Layout (RAISE layer) - * - * ,-----------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | bspc| - * |-----------------------------------------------------------------------| - * | tab | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | - * |-----------------------------------------------------------------------| - * |shift| F7 | F8 | F9 | F10 | F11 | F12 | QW | CM | BL | RST |enter| - * |-----------------------------------------------------------------------| - * | ctl | alt | win | del |lower| spc |raise|next |vold |volu |PLAY | - * `-----------------------------------------------------------------------' - */ - - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), M(0), RESET, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[_LW] = { /* LOWER */ -/* MIT Layout (Colemak layer) - * - * ,-----------------------------------------------------------------------. - * | esc | q | w | f | p | g | j | l | u | y | ; | bspc| - * |-----------------------------------------------------------------------| - * | tab | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | - * |-----------------------------------------------------------------------| - * |shift| F7 | F8 | F9 | F10 | F11 | F12 | QW | CM | BL | RST |enter| - * |-----------------------------------------------------------------------| - * | ctl | alt | win | TK |lower| spc |raise|next |vold |volu |PLAY | - * `-----------------------------------------------------------------------' - */ - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), M(0), RESET, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[_TK] = { /* Ten Key*/ -/* MIT Layout (Ten Key layer) - * - * ,-----------------------------------------------------------------------. - * | esc | F9 | F10 | F11 | F12 | PGUP| % | / | 7 | 8 | 9 | bspc| - * |-----------------------------------------------------------------------| - * | tab | F5 | F6 | F7 | F8 | PGDN| HOME| * | 4 | 5 | 6 | \ | - * |-----------------------------------------------------------------------| - * |shift| F1 | F2 | F3 | F4 | DEL | END | 0 | 1 | 2 | 3 |enter| - * |-----------------------------------------------------------------------| - * | ctl | alt | win | TK |lower| spc |raise|left |down | up |right| - * `-----------------------------------------------------------------------' - */ - {KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_PGUP, KC_PERC, KC_SLSH, KC_7, KC_8, KC_9, KC_BSPC}, - {KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8, KC_PGDN, KC_HOME, KC_ASTR, KC_4, KC_5, KC_6, KC_PIPE}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_DEL, KC_END, KC_0, KC_1, KC_2, KC_3, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -} - -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/cbbrowne/README.md b/keyboard/planck/keymaps/cbbrowne/README.md deleted file mode 100644 index 323e9a8596..0000000000 --- a/keyboard/planck/keymaps/cbbrowne/README.md +++ /dev/null @@ -1,16 +0,0 @@ -cbbrowne custom keyboard -============================== - -Due to cbbrowne@acm.org -Christopher Browne - -This was originally based on the default keyboard map, but I have been -doing sundry experimentation: - - * To figure things out about the toolset - * I'm an Emacs guy, so will be needing a fair bit of tuning - * It made sense to mess around some with keyboard maps. - - I added Workman alongside Dvorak and Colemak - - Boy, oh boy, these don't help - - I have done 30 years of learning of Emacs key mappings, and these alternative keyboards massively mess me up - - I added a keypad, originally based on keymaps/numpad.c, but mighty substantially revised, as that one seems to be rotated 90 degrees from usual conventions for number pads
\ No newline at end of file diff --git a/keyboard/planck/keymaps/cbbrowne/keymap.c b/keyboard/planck/keymaps/cbbrowne/keymap.c deleted file mode 100644 index 250d412ced..0000000000 --- a/keyboard/planck/keymaps/cbbrowne/keymap.c +++ /dev/null @@ -1,172 +0,0 @@ -#include "planck.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" -#endif - -/* Each layer is given a name to aid in readability, which is then - used in the keymap matrix below. The underscores do not denote - anything - you can have a layer called STUFF or any other name. - - Layer names don't all need to be of the same length, obviously, and - you could also skip them entirely and just use numbers, though that - means needing to manage the numbers. - - It is preferable to keep the symbols short so that a line worth of - key mappings fits compactly onto a line of code. */ - -/* This was originally based on planck/keymaps/default/default.c, and - then cbbrowne has revised things */ - -/* Things I did not like about the default mapping - - - I find control too hard to get to. I think I'll want it on a - left finger. Gonna need to lose something to do that... - - Almost certainly, KC_LCTL should be on [2][1] - - having dash on [lower-j] is a bit nonintuitive, but may be OK - - I'll bet I should switch ESC/TAB - - I'm suspicious that I want to shift M(0) from [4][1] to [4][2], - and shift ESC off the first column so KC_LCTL and KC_LALT can - be on the first column. - - I think I wanna swap ' and ENTER - - - All of the above are done :-) - - - I'm keeping Colemak and Dvorak around for reference, and added - Workman just for fun. They're useless to me, though. -*/ - - -/* Some interesting things implemented - - - There is a macro that writes out "cbbrowne" just because I could - - There is a (somewhat cruddy) linear congruential random number - generator. - - I would like to be seeding it with clock info to make it look - more random - - There are two macros that use the random number generators - - one, M_RANDDIGIT, generates a random digit based on state - of the random number generator - - the other, M_RANDLETTER, generates a random letter based on state - of the random number generator - - in both, note the use of register_code()/unregister_code() - to indicate the desired key -*/ - -/* Other things to do... - - - Need to think about what zsh and readline actions I use lots - - Wanna figure out macros, so I can put in a "cbbrowne" macro - - Ought to ensure that Control-Alt-Delete is convenient enough - - How about Alt-F1 thru Alt-F8? - - What's the keystroke to get from X to console these days? - - I do indeed want a sweet number pad! - - A layer for doing console switching would not be a bad idea -*/ - -enum layers { - _QW = 0, /* Qwerty mapping */ - _LW, /* Lower layer, where top line has symbols !@#$%^&*() */ - _RS, /* Raised layer, where top line has digits 1234567890 */ - _KP, /* Key pad */ -}; - -enum macro_id { - M_LED = 0, - M_USERNAME, - M_RANDDIGIT, - M_RANDLETTER -}; - -/* Note that Planck has dimensions 4 rows x 12 columns */ - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QW] = { /* Qwerty */ - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT }, - {KC_TAB, M(M_LED), KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[_RS] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_KP), DF(_KP), RESET, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[_LW] = { /* LOWER */ - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_KP), DF(_KP), RESET, KC_TRNS}, - {KC_TRNS, DF(_KP), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[_KP] = { /* Key Pad */ - {KC_ESC, M(M_USERNAME), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_KP_ENTER, KC_KP_PLUS, KC_KP_PLUS, KC_KP_ENTER, KC_BSPC}, - {KC_LCTL, M(M_RANDDIGIT), KC_S, KC_D, KC_F, KC_G, KC_H, KC_KP_MINUS, KC_7, KC_8, KC_9, KC_ENT}, - {KC_LSFT, M(M_RANDLETTER), KC_X, KC_C, KC_V, KC_B, KC_N, KC_KP_PLUS, KC_4, KC_5, KC_6, KC_DOT}, - {BL_STEP, M(M_LED), KC_LALT, KC_LGUI, KC_NO, KC_SPC, KC_SPC, DF(_QW), KC_1, KC_2, KC_3, KC_0} -} -}; - -const uint16_t PROGMEM fn_actions[] = { -}; - -/* This bit of logic seeds a wee linear congruential random number generator */ - -static uint16_t random_value = 157; -#define randadd 53 -#define randmul 181 -#define randmod 167 - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - uint8_t clockbyte=0; - clockbyte = TCNT1 % 256; - uint8_t rval; - // MACRODOWN only works in this function - switch(id) { - case M_LED: - if (record->event.pressed) { - register_code(KC_RSFT); -#ifdef BACKLIGHT_ENABLE - backlight_step(); -#endif - } else { - unregister_code(KC_RSFT); - } - break; - case M_USERNAME: - if (record->event.pressed) { - return MACRO( I(1), T(C), T(B), T(B), T(R), T(O), T(W), T(N), T(E)); - } else { - return MACRO_NONE ; - } - break; - case M_RANDDIGIT: - /* Generate, based on random number generator, a keystroke for - a numeric digit chosen at random */ - random_value = ((random_value + randadd) * randmul) % randmod; - if (record->event.pressed) { - /* Here, we mix the LCRNG with low bits from one of the system - clocks via XOR in the theory that this may be more random - than either separately */ - rval = (random_value ^ clockbyte) % 10; - /* Note that KC_1 thru KC_0 are a contiguous range */ - register_code (KC_1 + rval); - unregister_code (KC_1 + rval); - } - break; - case M_RANDLETTER: - /* Generate, based on random number generator, a keystroke for - a letter chosen at random */ - /* Here, we mix the LCRNG with low bits from one of the system - clocks via XOR in the theory that this may be more random - than either separately */ - random_value = ((random_value + randadd) * randmul) % randmod; - if (record->event.pressed) { - rval = (random_value ^ clockbyte) % 26; - register_code (KC_A + rval); - unregister_code (KC_A + rval); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/charlie/charlie.c b/keyboard/planck/keymaps/charlie/charlie.c deleted file mode 100644 index 88f454d789..0000000000 --- a/keyboard/planck/keymaps/charlie/charlie.c +++ /dev/null @@ -1,54 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = { /* Native */ - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, FUNC(2)}, - {KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_TAB, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_DEL, KC_LCTL, KC_NO, KC_LSFT, KC_LALT, KC_SPC, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - [1] = { /* QWERTY->PHOTOSHOP */ - {KC_DELETE, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, FUNC(1)}, - {KC_O, KC_G, KC_S, KC_U, KC_T, FUNC(27), KC_F21, KC_F10, KC_F11, KC_F7, KC_F8, KC_F9}, - {KC_TAB, FUNC(4), FUNC(5), FUNC(6), KC_F1, FUNC(7), KC_F18, KC_F19, KC_F23, KC_F20, KC_F22, FUNC(9)}, - {KC_COMM, KC_DOT, KC_R, FUNC(11), FUNC(3), KC_SPC, FUNC(12), KC_F2, FUNC(8), KC_F3, KC_F14} - }, - [2] = { /* 2: FUNC(3 PHOTOSHOP */ - {KC_ESC, FUNC(25), FUNC(26), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}, - {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, FUNC(19), FUNC(20), FUNC(21)}, - {KC_C, KC_NO, FUNC(22), FUNC(5), KC_NO, FUNC(23), KC_NO, KC_NO, KC_NO, KC_NO, FUNC(13), KC_NO}, - {FUNC(14), FUNC(15), FUNC(16), FUNC(17), FUNC(3), KC_SPC, FUNC(18), KC_NO, KC_NO, KC_F24, KC_NO} - } -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_DEFAULT_LAYER_SET(0), // set Qwerty layout - [2] = ACTION_DEFAULT_LAYER_SET(1), // set Photoshop presets - [3] = ACTION_LAYER_MOMENTARY(2), // Photoshop function layer - - [4] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F9), // photo folder AHK - [5] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_I), // select inverse - [6] = ACTION_MODS_KEY(MOD_LSFT, KC_M), // marquee select - [7] = ACTION_MODS_KEY(MOD_LALT, KC_BSPC), // fill - [8] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_X), // warp - [9] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT | MOD_LSFT, KC_F12), // merge all new layer - [10] = ACTION_MODS_KEY(MOD_LCTL, KC_MINS), // zoom out - [11] = ACTION_MODS_KEY(MOD_LCTL, KC_H), // RBG sliders - [12] = ACTION_MODS_KEY(MOD_LCTL, KC_S), // save - [13] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_F5), // layer mask from transparancy - [14] = ACTION_MODS_KEY(MOD_LCTL, KC_F2), // stroke - [15] = ACTION_MODS_KEY(MOD_LCTL | MOD_LSFT, KC_F2), // stroke layer - [16] = ACTION_MODS_KEY(MOD_LCTL, KC_0), // zoom 0 - [17] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_H), // HSV sliders - [18] = ACTION_MODS_KEY(MOD_LCTL | MOD_LSFT, KC_S), // save as - [19] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F7), // gaussian blur - [20] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F8), // motion blur - [21] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_X), // liquify filter - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // prev layer blending - [23] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_BSPC), // KC_NOrmal layer blending - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // next layer blending - [25] = ACTION_MODS_KEY(MOD_LCTL, KC_Z), // step back - [26] = ACTION_MODS_KEY(MOD_LCTL, KC_Y), // step forward - [27] = ACTION_MODS_KEY(MOD_LCTL, KC_R), // rasterize - -}; diff --git a/keyboard/planck/keymaps/daniel/daniel.c b/keyboard/planck/keymaps/daniel/daniel.c deleted file mode 100644 index 234e48ff4a..0000000000 --- a/keyboard/planck/keymaps/daniel/daniel.c +++ /dev/null @@ -1,48 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, - {FUNC(3), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* RAISE */ - {KC_GRV, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_EQL}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, S(KC_MINS), KC_BSLS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[2] = { /* LOWER */ - {S(KC_GRV), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, S(KC_EQL)}, - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_ENT}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* Qwerty */ - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL}, - {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, - {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -} -}; - - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(1), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(2), // to LOWER - [3] = ACTION_LAYER_MOMENTARY(3) // to LOWER -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/david/david.c b/keyboard/planck/keymaps/david/david.c deleted file mode 100644 index f483084801..0000000000 --- a/keyboard/planck/keymaps/david/david.c +++ /dev/null @@ -1,76 +0,0 @@ -#include "keymap_common.h" -#include "beeps.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_A, KC_S, KC_D, KC_F, KC_G, KC_ENT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ESC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {M(10), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* Colemak */ - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[2] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), RESET, M(0), M(1), M(2), KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F11, KC_F12, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* LOWER */ - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), RESET, M(0), M(1), M(2), S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - if (record->event.pressed) { - switch(id) { - case 0: - true_note(12, 12, 20); - break; - case 1: - true_note(14, 14, 20); - break; - case 2: - true_note(16, 16, 20); - break; - case 3: - true_note(17, 17, 20); - break; - case 4: - true_note(19, 19, 20); - break; - case 5: - true_note(21, 21, 20); - break; - case 6: - true_note(23, 23, 20); - break; - case 7: - true_note(24, 24, 20); - break; - case 10: - - break; - } - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/default/README.md b/keyboard/planck/keymaps/default/README.md deleted file mode 100644 index de9680b498..0000000000 --- a/keyboard/planck/keymaps/default/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# The Default Planck Layout - diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c deleted file mode 100644 index 3d62898171..0000000000 --- a/keyboard/planck/keymaps/default/keymap.c +++ /dev/null @@ -1,316 +0,0 @@ -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, -// this is the style you want to emulate. - -#include "planck.h" -#include "action_layer.h" -#ifdef AUDIO_ENABLE - #include "audio.h" -#endif -#include "eeconfig.h" - -extern keymap_config_t keymap_config; - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QWERTY 0 -#define _COLEMAK 1 -#define _DVORAK 2 -#define _LOWER 3 -#define _RAISE 4 -#define _PLOVER 5 -#define _ADJUST 16 - -// Macro name shortcuts -#define QWERTY M(_QWERTY) -#define COLEMAK M(_COLEMAK) -#define DVORAK M(_DVORAK) -#define LOWER M(_LOWER) -#define RAISE M(_RAISE) -#define M_BL 5 -#define PLOVER M(12) -#define EXT_PLV M(13) -#define TOG_OUT M(14) - -// Fillers to make layering more clear -#define _______ KC_TRNS -#define XXXXXXX KC_NO - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Qwerty - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ; | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_QWERTY] = { - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - -/* Colemak - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | R | S | T | D | H | N | E | I | O | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_COLEMAK] = { - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - -/* Dvorak - * ,-----------------------------------------------------------------------------------. - * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | O | E | U | I | D | H | T | N | S | / | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_DVORAK] = { - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - -/* Lower - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_LOWER] = { - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, - -/* Raise - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_RAISE] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, - -/* Plover layer (http://opensteno.org) - * ,-----------------------------------------------------------------------------------. - * | # | # | # | # | # | # | # | # | # | # | # | # | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | S | T | P | H | * | * | F | P | L | T | D | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * |TogOut| S | K | W | R | * | * | R | B | G | S | Z | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Exit | | | A | O | | E | U | | | | - * `-----------------------------------------------------------------------------------' - */ - -[_PLOVER] = { - {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, - {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, - {TOG_OUT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} -}, - -/* Adjust (Lower + Raise) - * ,-----------------------------------------------------------------------------------. - * | | Reset| | | | | | | | | | Del | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff| | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_ADJUST] = { - {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, - {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -} - - -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -#ifdef AUDIO_ENABLE - -float tone_startup[][2] = SONG(STARTUP_SOUND); -float tone_qwerty[][2] = SONG(QWERTY_SOUND); -float tone_dvorak[][2] = SONG(DVORAK_SOUND); -float tone_colemak[][2] = SONG(COLEMAK_SOUND); -float tone_plover[][2] = SONG(PLOVER_SOUND); -float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); - -float tone_goodbye[][2] = SONG(GOODBYE_SOUND); -#endif - - -void persistant_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); -} - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case _QWERTY: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_qwerty, false, 0); - #endif - persistant_default_layer_set(1UL<<_QWERTY); - } - break; - case _COLEMAK: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_colemak, false, 0); - #endif - persistant_default_layer_set(1UL<<_COLEMAK); - } - break; - case _DVORAK: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_dvorak, false, 0); - #endif - persistant_default_layer_set(1UL<<_DVORAK); - } - break; - case _LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - break; - case _RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - break; - case M_BL: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - break; - case 12: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - stop_all_notes(); - PLAY_NOTE_ARRAY(tone_plover, false, 0); - #endif - layer_off(_RAISE); - layer_off(_LOWER); - layer_off(_ADJUST); - layer_on(_PLOVER); - if (!eeconfig_is_enabled()) { - eeconfig_init(); - } - keymap_config.raw = eeconfig_read_keymap(); - keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); - } - break; - case 13: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); - #endif - layer_off(_PLOVER); - } - break; - case 14: - if (record->event.pressed) { - return MACRO( D(E), D(R), D(F), D(V), D(O), D(L), U(E), U(R), U(F), U(V), U(O), U(L), END ); - } - break; - } - return MACRO_NONE; -}; - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user() -{ - _delay_ms(20); // gets rid of tick - PLAY_NOTE_ARRAY(tone_startup, false, 0); -} - -void shutdown_user() -{ - PLAY_NOTE_ARRAY(tone_goodbye, false, 0); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_NOTE_ARRAY(music_scale, false, 0); -} - -#endif diff --git a/keyboard/planck/keymaps/default/makefile.mk b/keyboard/planck/keymaps/default/makefile.mk deleted file mode 100644 index 99fbfbd0bb..0000000000 --- a/keyboard/planck/keymaps/default/makefile.mk +++ /dev/null @@ -1,2 +0,0 @@ -AUDIO_ENABLE = yes -NKRO_ENABLE = yes
\ No newline at end of file diff --git a/keyboard/planck/keymaps/dzobert/dzobert.c b/keyboard/planck/keymaps/dzobert/dzobert.c deleted file mode 100644 index 665e9c20b6..0000000000 --- a/keyboard/planck/keymaps/dzobert/dzobert.c +++ /dev/null @@ -1,49 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TAB}, - {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_BSPC}, - {KC_LALT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_FN4, KC_RSFT, KC_LGUI, KC_LSFT, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* Colemak */ - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TAB}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_BSPC}, - {KC_LALT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_FN3, KC_RSFT, KC_LGUI, KC_LSFT, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[2] = { /* RAISE */ - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_DEL}, - {KC_TRNS, KC_GRV, KC_MINS, KC_EQL, KC_QUOT, S(KC_QUOT), S(KC_LBRC), S(KC_RBRC), KC_LBRC, KC_RBRC, KC_BSLS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_HOME, KC_PGUP, KC_PGDN, KC_END} -}, -[3] = { /* LOWER */ - {KC_POWER,KC_PSCR, KC_SLCK, KC_PAUSE, KC_NLCK, KC_EXECUTE, KC_MENU, KC_APP, KC_7, KC_8, KC_9, KC_KP_SLASH}, - {KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_CAPS, KC_CANCEL, KC_UNDO, KC_AGAIN, KC_4, KC_5, KC_6, KC_KP_ASTERISK}, - {KC_TRNS, KC_INSERT,KC_CUT, KC_COPY, KC_PASTE, KC_BSLS, KC_9, KC_0, KC_1, KC_2, KC_3, KC_KP_MINUS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_KP_DOT, KC_KP_ENTER, KC_KP_PLUS} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -};
\ No newline at end of file diff --git a/keyboard/planck/keymaps/experimental/README.md b/keyboard/planck/keymaps/experimental/README.md deleted file mode 100644 index de9680b498..0000000000 --- a/keyboard/planck/keymaps/experimental/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# The Default Planck Layout - diff --git a/keyboard/planck/keymaps/experimental/keymap.c b/keyboard/planck/keymaps/experimental/keymap.c deleted file mode 100644 index 4b9c15e084..0000000000 --- a/keyboard/planck/keymaps/experimental/keymap.c +++ /dev/null @@ -1,333 +0,0 @@ -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, -// this is the style you want to emulate. - -#include "planck.h" -#include "action_layer.h" -#ifdef AUDIO_ENABLE - #include "audio.h" -#endif - -#include "eeconfig.h" - -extern keymap_config_t keymap_config; - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QWERTY 0 -#define _COLEMAK 1 -#define _DVORAK 2 -#define _LOWER 3 -#define _RAISE 4 -#define _PLOVER 5 -#define _ADJUST 16 - -// Macro name shortcuts -#define QWERTY M(_QWERTY) -#define COLEMAK M(_COLEMAK) -#define DVORAK M(_DVORAK) -#define LOWER M(_LOWER) -#define RAISE M(_RAISE) -#define M_BL 5 -#define PLOVER M(12) -#define EXT_PLV M(13) - -// Fillers to make layering more clear -#define _______ KC_TRNS -#define XXXXXXX KC_NO - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Qwerty - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ; | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_QWERTY] = { - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - -/* Colemak - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | R | S | T | D | H | N | E | I | O | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_COLEMAK] = { - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - -/* Dvorak - * ,-----------------------------------------------------------------------------------. - * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | O | E | U | I | D | H | T | N | S | / | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_DVORAK] = { - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - -/* Lower - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_LOWER] = { - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, - -/* Raise - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_RAISE] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUHS, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, - -/* Plover layer (http://opensteno.org) - * ,-----------------------------------------------------------------------------------. - * | # | # | # | # | # | # | # | # | # | # | # | # | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | S | T | P | H | * | * | F | P | L | T | D | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | S | K | W | R | * | * | R | B | G | S | Z | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Exit | | | A | O | | E | U | | | | - * `-----------------------------------------------------------------------------------' - */ - -[_PLOVER] = { - {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, - {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, - {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} -}, - -/* Adjust (Lower + Raise) - * ,-----------------------------------------------------------------------------------. - * | | Reset| | | | | | | | | | Del | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff| | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_ADJUST] = { - {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, - {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -} - - -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -#ifdef AUDIO_ENABLE -float tone_startup[][2] = { - {440.0*pow(2.0,(31)/12.0), 12}, - {440.0*pow(2.0,(28)/12.0), 8}, - {440.0*pow(2.0,(19)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {440.0*pow(2.0,(28)/12.0), 20} -}; - -float tone_qwerty[][2] = SONG(QWERTY_SOUND); -float tone_dvorak[][2] = SONG(DVORAK_SOUND); -float tone_colemak[][2] = SONG(COLEMAK_SOUND); -float tone_plover[][2] = SONG(PLOVER_SOUND); -float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); - -float goodbye[][2] = SONG(GOODBYE_SOUND); -#endif - - -void persistant_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); -} - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case _QWERTY: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_qwerty, false, 0); - #endif - persistant_default_layer_set(1UL<<_QWERTY); - } - break; - case _COLEMAK: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_colemak, false, 0); - #endif - persistant_default_layer_set(1UL<<_COLEMAK); - } - break; - case _DVORAK: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_dvorak, false, 0); - #endif - persistant_default_layer_set(1UL<<_DVORAK); - } - break; - case _LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - #ifdef BACKLIGHT_ENABLE - breathing_speed_set(2); - breathing_pulse(); - #endif - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - break; - case _RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - #ifdef BACKLIGHT_ENABLE - breathing_speed_set(2); - breathing_pulse(); - #endif - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - break; - case M_BL: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - break; - case 12: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - stop_all_notes(); - PLAY_NOTE_ARRAY(tone_plover, false, 0); - #endif - layer_off(_RAISE); - layer_off(_LOWER); - layer_off(_ADJUST); - layer_on(_PLOVER); - if (!eeconfig_is_enabled()) { - eeconfig_init(); - } - keymap_config.raw = eeconfig_read_keymap(); - keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); - } - break; - case 13: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); - #endif - layer_off(_PLOVER); - } - break; - - } - return MACRO_NONE; -}; - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - _delay_ms(20); // stops the tick - PLAY_NOTE_ARRAY(tone_startup, false, 0); - #endif -} - -#ifdef AUDIO_ENABLE - void play_goodbye_tone(void) - { - PLAY_NOTE_ARRAY(goodbye, false, 0); - _delay_ms(150); - } -#endif - -LEADER_EXTERNS(); - -#define LEADER_TIMEOUT 300 - -void matrix_scan_user(void) { - LEADER_DICTIONARY() { - leading = false; - leader_end(); - - SEQ_ONE_KEY(KC_F) { - register_code(KC_S); - unregister_code(KC_S); - } - SEQ_TWO_KEYS(KC_A, KC_S) { - register_code(KC_H); - unregister_code(KC_H); - } - SEQ_THREE_KEYS(KC_A, KC_S, KC_D) { - register_code(KC_LGUI); - register_code(KC_S); - unregister_code(KC_S); - unregister_code(KC_LGUI); - } - } -} diff --git a/keyboard/planck/keymaps/experimental/makefile.mk b/keyboard/planck/keymaps/experimental/makefile.mk deleted file mode 100644 index 6c1e05b65a..0000000000 --- a/keyboard/planck/keymaps/experimental/makefile.mk +++ /dev/null @@ -1,5 +0,0 @@ -AUDIO_ENABLE = yes -NKRO_ENABLE = yes -MIDI_ENABLE = yes -BACKLIGHT_ENABLE = no -COMMAND_ENABLE = no
\ No newline at end of file diff --git a/keyboard/planck/keymaps/gabriel/gabriel.c b/keyboard/planck/keymaps/gabriel/gabriel.c deleted file mode 100644 index 805484488b..0000000000 --- a/keyboard/planck/keymaps/gabriel/gabriel.c +++ /dev/null @@ -1,108 +0,0 @@ -#include "planck.h" - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QW 0 -#define _LW 1 -#define _RS 2 -#define _FN 3 - -// This a slightly modified 'default' keymap that's closer to the Mac keyboard layout. I like the position -// of 'esc' and 'tab' better this way. I also got rid of the backlighting control key and the dvorak and -// colemak layers. I added an 'fn' layer that makes the 'bspc' a forward delete (like on OSX). -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* MIT Layout (QWERTY layer) - * - * ,-----------------------------------------------------------------------. - * | esc | q | w | e | r | t | y | u | i | o | p | bspc| - * |-----------------------------------------------------------------------| - * | tab | a | s | d | f | g | h | j | k | l | ; | ' | - * |-----------------------------------------------------------------------| - * |shift| z | x | c | v | b | n | m | , | . | / |enter| - * |-----------------------------------------------------------------------| - * | fn | ctl | alt | cmd |lower| spc |raise|left |down | up |right| - * `-----------------------------------------------------------------------' - */ -[_QW] = { /* QWERTY */ - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {MO(_FN), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -/* MIT Layout (Raised layer) - * - * ,-----------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | - * |-----------------------------------------------------------------------| - * | | F1 | F2 | F3 | F4 | F5 | F6 | - | + | [ | ] | | | - * |-----------------------------------------------------------------------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------' - */ -[_RS] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_PLUS, KC_LBRC, KC_RBRC, KC_PIPE}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -/* MIT Layout (Lowered layer) - * - * ,-----------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | - * |-----------------------------------------------------------------------| - * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | = | { | } | \ | - * |-----------------------------------------------------------------------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------' - */ -[_LW] = { /* LOWER */ - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_EQL, KC_LCBR, KC_RCBR, KC_BSLS}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -/* MIT Layout (FN layer) - * - * ,-----------------------------------------------------------------------. - * | | | | | | | | | | | | del | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | |home |pgdn |pgup | end | - * `-----------------------------------------------------------------------' - */ -[_FN] = { /* FUNCTION */ - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DELT}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - backlight_step(); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/jacob/Keyboard Layout.PNG b/keyboard/planck/keymaps/jacob/Keyboard Layout.PNG Binary files differdeleted file mode 100644 index 40f0b89429..0000000000 --- a/keyboard/planck/keymaps/jacob/Keyboard Layout.PNG +++ /dev/null diff --git a/keyboard/planck/keymaps/jacob/keymap.c b/keyboard/planck/keymaps/jacob/keymap.c deleted file mode 100644 index 5e6e8498e2..0000000000 --- a/keyboard/planck/keymaps/jacob/keymap.c +++ /dev/null @@ -1,56 +0,0 @@ -#include "planck.h" -#include "action_layer.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" -#endif - -//Simple Keymap where CTRL, WINKEY, and ALT keys are placed in a more familiar location for Windows users. -//Focus of this particular keymap is to enable easy transition from more traditional keyboards to OLKB Planck. - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -#define _QW 0 -#define _LW 1 -#define _RS 2 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = { /* Qwerty */ - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_RSFT, KC_ENT)}, - {KC_LCTL, KC_LGUI, KC_LALT, M(0), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - }, - [_RS] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} - }, - [_LW] = { /* LOWER */ - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL }, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} - } -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/jacob/readme.md b/keyboard/planck/keymaps/jacob/readme.md deleted file mode 100644 index 2a4be4ebce..0000000000 --- a/keyboard/planck/keymaps/jacob/readme.md +++ /dev/null @@ -1 +0,0 @@ -Focus of this particular keymap is to enable easy transition from more traditional keyboards to OLKB Planck.
\ No newline at end of file diff --git a/keyboard/planck/keymaps/joe/joe.c b/keyboard/planck/keymaps/joe/joe.c deleted file mode 100644 index 5b7bbe2bbb..0000000000 --- a/keyboard/planck/keymaps/joe/joe.c +++ /dev/null @@ -1,88 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = { /* Joe colemak */ - {F(3), KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS}, - {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT }, - {F(15), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_QUOT}, - {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} - }, - [1] = { /* Joe soft Colemak */ - {F(3), CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, CM_SCLN, KC_MINS}, - {KC_BSPC, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, KC_ENT }, - {F(15), CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, KC_COMM, KC_DOT, KC_UP, KC_QUOT}, - {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} - }, - [2] = { /* Joe NUMPAD */ - {F(3), KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, LSFT(KC_9), LSFT(KC_0), KC_PSLS, KC_P7, KC_P8, KC_P9 }, - {KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, LSFT(KC_5), KC_PEQL, KC_PAST, KC_P4, KC_P5, KC_P6 }, - {F(15), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PCMM, KC_PMNS, KC_P1, KC_P2, KC_P3 }, - {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_TRNS, KC_TRNS, F(2), KC_PPLS, KC_P0, KC_PDOT, KC_PENT} - }, - [3] = { /* Joe 1337 haxOr5*/ - {F(3), KC_Q, KC_W, KC_F, KC_P, KC_6, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS}, - {KC_BSPC, KC_4, KC_R, KC_5, KC_7, KC_D, KC_H, KC_N, KC_3, KC_1, KC_0, KC_ENT }, - {F(15), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_QUOT}, - {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} - }, - [4] = { /* Joe LOWER fn1 */ - {KC_GRV, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(3), M(2), M(1), M(0) }, - {KC_BSPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS}, - {KC_BSLS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LBRC, KC_RBRC, KC_PGUP, KC_EQL }, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1), KC_TRNS, KC_TRNS, F(2), KC_NO, KC_HOME, KC_PGDN, KC_END } - }, - [5] = { /* Joe UPPER fn2 */ - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 }, - {KC_DEL, KC_BTN1, KC_MS_U, KC_BTN2, KC_BTN3, KC_WH_U, KC_BTN4, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO }, - {KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_L, KC_WH_D, KC_WH_R, KC_NO, KC_NO, LCTL(KC_PGUP), LCTL(LALT(KC_UP)), LCTL(KC_PGDN) }, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1), KC_NO, KC_NO, F(2), KC_NO, LCTL(LALT(KC_LEFT)), LCTL(LALT(KC_DOWN)), LCTL(LALT(KC_RGHT))} - }, - [6] = { /* Joe SPECIAL fn3 */ - {KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, - {KC_NO, KC_MPLY, KC_MPRV, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET }, - {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, - {F(6), F(7), F(8), F(9), F(1), KC_TRNS, KC_TRNS, F(2), KC_POWER, KC_WAKE, KC_SLEP, LCTL(LALT(KC_L))} - } -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(4), // fn1 - [2] = ACTION_LAYER_MOMENTARY(5), // fn2 - - /* ESC on tap, fn3 on hold */ - [3] = ACTION_LAYER_TAP_KEY(6, KC_ESC), - - /* toggle layers */ - [6] = ACTION_DEFAULT_LAYER_SET(0), - [7] = ACTION_DEFAULT_LAYER_SET(1), - [8] = ACTION_DEFAULT_LAYER_SET(2), - [9] = ACTION_DEFAULT_LAYER_SET(3), - - /* tab on tap, shift on hold */ - [15] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_TAB), -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch (id) { - case 0: - /* :) */ - return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_0), UP(KC_LSFT), END ); - break; - case 1: - /* :( */ - return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_9), UP(KC_LSFT), END ); - break; - case 2: - /* (: | :) */ - return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_9), TYPE(KC_SCLN), TYPE(KC_SPC), TYPE(KC_SPC), TYPE(KC_SCLN), TYPE(KC_0), UP(KC_LSFT), TYPE(KC_LEFT), TYPE(KC_LEFT), TYPE(KC_LEFT), END ); - break; - case 3: - /* :( | ): */ - return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_9), TYPE(KC_SPC), TYPE(KC_SPC), TYPE(KC_0), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_LEFT), TYPE(KC_LEFT), TYPE(KC_LEFT), END ); - break; - default: - break; - } - return MACRO_NONE; -} diff --git a/keyboard/planck/keymaps/kyle/kyle.c b/keyboard/planck/keymaps/kyle/kyle.c deleted file mode 100644 index da32b74f96..0000000000 --- a/keyboard/planck/keymaps/kyle/kyle.c +++ /dev/null @@ -1,49 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_RCTL, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* Colemak */ - {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[2] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* LOWER */ - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), LSFT(RSFT(KC_D)), KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/leo/leo.c b/keyboard/planck/keymaps/leo/leo.c deleted file mode 100644 index 6d66441822..0000000000 --- a/keyboard/planck/keymaps/leo/leo.c +++ /dev/null @@ -1,46 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* BASE */ - {KC_ESC, KC_LBRC, KC_QUOT, KC_SCLN, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_TAB, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENT}, - {KC_LSFT, KC_DOT, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_COMM}, - {KC_LCTL, KC_LALT, KC_LGUI, FUNC(3), FUNC(2), KC_SPC, KC_SPC, FUNC(1), FUNC(3), KC_RGUI, KC_RALT, KC_RCTL} -}, -[2] = { /* RAISE */ - {RALT(KC_RBRC), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, S(KC_RBRC)}, - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -[3] = { /* LOWER */ - {S(KC_EQL),S(KC_1),S(KC_2),S(KC_3),RALT(KC_5),S(KC_5), S(KC_6), S(KC_7),RALT(KC_7),RALT(KC_0),S(KC_0), KC_MINS}, - {KC_TRNS,RALT(KC_2),S(KC_SLSH),KC_NUBS,S(KC_NUBS),RALT(KC_MINS),RALT(KC_NUBS), KC_NUHS, S(KC_8), S(KC_9), S(KC_MINS), KC_SLSH}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RALT(KC_8), RALT(KC_9), KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -[4] = { /* META */ - {KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_DEL}, - {KC_TRNS, KC_RGHT, KC_DOWN, KC_LEFT, KC_PGUP, KC_TRNS, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS, KC_PGDN, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - [3] = ACTION_LAYER_MOMENTARY(4), // to META - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/lock/README.md b/keyboard/planck/keymaps/lock/README.md deleted file mode 100644 index d21cb990b0..0000000000 --- a/keyboard/planck/keymaps/lock/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Lock layout - -This layout is designed for having a lock switch in the lower-left-hand corner, and for experimenting with MIDI/audio features. It's constantly in development, so don't expect anything to work/be documented correctly!
\ No newline at end of file diff --git a/keyboard/planck/keymaps/lock/keymap.c b/keyboard/planck/keymaps/lock/keymap.c deleted file mode 100644 index f1629492ef..0000000000 --- a/keyboard/planck/keymaps/lock/keymap.c +++ /dev/null @@ -1,156 +0,0 @@ -// USING_MIDI -// USING_BACKLIGHT -#include "keymap_common.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" -#endif -#include "action_layer.h" -#include "keymap_midi.h" -#include "audio.h" -#include <avr/boot.h> - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* Colemak */ - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[2] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* LOWER */ - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[4] = { /* TENKEY */ - {KC_TAB, N_C5, N_D5, N_E5, N_F5, N_G5, N_A5, KC_KP_7, KC_KP_8, KC_KP_9, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_KP_4, KC_KP_5, KC_KP_6, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_KP_1, KC_KP_2, KC_KP_3, KC_SLSH, KC_ENT}, - {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, KC_TRNS, KC_SPC, KC_SPC, KC_KP_0, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[5] = { - { MIDI12 }, - { MIDI12 }, - { MIDI12 }, - {M(0), KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_SPC, KC_SPC, FUNC(1), MIDI, MIDI, MIDI, MIDI} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -uint16_t hextokeycode(int hex) { - if (hex == 0x0) { - return KC_0; - } else if (hex < 0xA) { - return KC_1 + (hex - 0x1); - } else { - return KC_A + (hex - 0xA); - } -} - -float walk_up[][2] = { - {440.0*pow(2.0,(60)/12.0), 400}, - {0, 50}, - {440.0*pow(2.0,(67)/12.0), 600}, -}; - -float walk_dn[][2] = { - {440.0*pow(2.0,(67)/12.0), 400}, - {0, 50}, - {440.0*pow(2.0,(60)/12.0), 600}, -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - - play_notes(&walk_up, 3, false); - // play_note(440, 20); - // register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_set(BACKLIGHT_LEVELS); - #endif - default_layer_and(0); - default_layer_or((1<<5)); - - // uint8_t low = boot_lock_fuse_bits_get(0x0000); - // uint8_t high = boot_lock_fuse_bits_get(0x0003); - // uint8_t ext = boot_lock_fuse_bits_get(0x0002); - // uint8_t lock = boot_lock_fuse_bits_get(0x0001); - - // register_code(hextokeycode((low & 0xF0) >> 4)); - // unregister_code(hextokeycode((low & 0xF0) >> 4)); - // register_code(hextokeycode((low & 0x0F))); - // unregister_code(hextokeycode((low & 0x0F))); - - - // register_code(hextokeycode((high & 0xF0) >> 4)); - // unregister_code(hextokeycode((high & 0xF0) >> 4)); - // register_code(hextokeycode((high & 0x0F))); - // unregister_code(hextokeycode((high & 0x0F))); - - - // register_code(hextokeycode((ext & 0xF0) >> 4)); - // unregister_code(hextokeycode((ext & 0xF0) >> 4)); - // register_code(hextokeycode((ext & 0x0F))); - // unregister_code(hextokeycode((ext & 0x0F))); - - - // register_code(hextokeycode((lock & 0xF0) >> 4)); - // unregister_code(hextokeycode((lock & 0xF0) >> 4)); - // register_code(hextokeycode((lock & 0x0F))); - // unregister_code(hextokeycode((lock & 0x0F))); - - } else { - unregister_code(KC_RSFT); - play_notes(&walk_dn, 3, false); - #ifdef BACKLIGHT_ENABLE - backlight_set(0); - #endif - default_layer_and(0); - default_layer_or(0); - } - break; - } - return MACRO_NONE; -}; - -float start_up[][2] = { - {440.0*pow(2.0,(67)/12.0), 600}, - {0, 50}, - {440.0*pow(2.0,(64)/12.0), 400}, - {0, 50}, - {440.0*pow(2.0,(55)/12.0), 400}, - {0, 50}, - {440.0*pow(2.0,(60)/12.0), 400}, - {0, 50}, - {440.0*pow(2.0,(64)/12.0), 1000}, -}; - -void matrix_init_user(void) { - init_notes(); - play_notes(&start_up, 9, false); -}
\ No newline at end of file diff --git a/keyboard/planck/keymaps/lucas/lucas.c b/keyboard/planck/keymaps/lucas/lucas.c deleted file mode 100644 index 27672e1bbc..0000000000 --- a/keyboard/planck/keymaps/lucas/lucas.c +++ /dev/null @@ -1,163 +0,0 @@ -/* -This is the keymap of /u/deepshitgoeshere! -Layer 1 exists so I can have the symbol positions of QWERTY while having my system in german. -The second layer has all the german umlauts I need and with capital and small letters on the -same layer there is no need to press shift+lower. -This keymap is made to work with software implemented QWERTZ. -The "Gaming" layer is mainly customized for CS:GO. -If you have any question about this keymap feel free to shoot me a message on reddit! -*/ - -#include "keymap_common.h" -#include "keymap_extras/keymap_german.h" -#include "backlight.h" -#include "debug.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Colemak - * ,-----------------------------------------------------------------------. - * | Esc | q | w | f | p | g | j | l | u | y | ; | - | - * |-----------------------------------------------------------------------| - * | BS | a | r | s | t | d | h | n | e | i | o | ' | - * |-----------------------------------------------------------------------| - * | SFT | z | x | c | v | b | k | m | , | . | / | Ent | - * |-----------------------------------------------------------------------| - * | CTL | GUI | Tab | ALT |Lower| Space |Raise|Left |Down | Up |Right| - * `-----------------------------------------------------------------------' - */ - {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Z, DE_SCLN, DE_MINS}, - {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, DE_QUOT}, - {M(0), KC_Y, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, DE_COMM, DE_DOT, DE_SLSH, KC_ENT}, - {KC_LCTL, KC_LGUI, KC_TAB, KC_LALT, F(2), F(3), F(3), F(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[1] = { /* Symbols - * ,-----------------------------------------------------------------------. - * | | | | | | | | | | | : | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | " | - * |-----------------------------------------------------------------------| - * | | | | | | | | | < | > | ? | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------' - */ - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DOT, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DQOT}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(1), DE_MORE, DE_QST, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -[2] = { /* Raise - * ,-----------------------------------------------------------------------. - * | | Ä | | | | | | | Ü | Ö | |Game | - * |-----------------------------------------------------------------------| - * | Del | ä | | ß | | | | | ü | ö | |FVol+| - * |-----------------------------------------------------------------------| - * | | | | | | | | |Stop | Prv | Nxt |FVol-| - * |-----------------------------------------------------------------------| - * |LCTL |LGUI | Tab |LALT |Lower| Space | |Mute |Vol- |Vol+ | P/P | - * `-----------------------------------------------------------------------' - */ - {KC_NO, S(DE_AE), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, S(DE_UE), S(DE_OE), KC_NO, F(4)}, - {KC_DEL, DE_AE, KC_NO, DE_SS, KC_NO, KC_NO, KC_NO, KC_NO, DE_UE, DE_OE, KC_NO, RALT(KC_F12)}, - {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MSTP, KC_MPRV, KC_MNXT, RALT(KC_F11)}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* Lower - * ,-----------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | + | - * |-----------------------------------------------------------------------| - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = | - * |-----------------------------------------------------------------------| - * | | | | | | [ | ] | { | } | € | | \ | Ent | - * |-----------------------------------------------------------------------| - * |LCTL |LGUI | Tab |LALT | | Space |Raise|Home |PgDn |PgUp | End | - * `-----------------------------------------------------------------------' - */ - {DE_TILD, DE_EXLM, DE_AT, DE_HASH, DE_DLR, DE_PERC, DE_CIRC, DE_AMPR, DE_ASTR, DE_LPRN, DE_RPRN, DE_PLUS}, - {DE_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, DE_EQL}, - {KC_NO, KC_NO, KC_NO, DE_PIPE, DE_LBRC, DE_RBRC, DE_LCBR, DE_RCBR, DE_EURO, KC_NO, DE_BSLS, KC_ENT}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} -}, -[4] = { /* Function - * ,-----------------------------------------------------------------------. - * | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | - * |-----------------------------------------------------------------------| - * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | - * |-----------------------------------------------------------------------| - * | | | | | | KP- | KP+ | | | | |Reset| - * |-----------------------------------------------------------------------| - * | |Light|BL DN|BL UP| | | | |Mute |Vol- |Vol+ | P/P | - * `-----------------------------------------------------------------------' - */ - {KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24}, - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PMNS, KC_PPLS, KC_NO, KC_NO, KC_NO, RESET, KC_NO}, - {KC_NO, BL_TOGG, BL_DEC, BL_INC, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[5] = { /* Gaming - * ,-----------------------------------------------------------------------. - * | Buy | ESC | q | w | e | r | t | y | u | i | o | p | - * |-----------------------------------------------------------------------| - * | ENT | BS | a | s | d | f | g | h | j | k | l | ; | - * |-----------------------------------------------------------------------| - * | CTL | SFT | z | x | c | v | b | n | m | , | Up | / | - * |-----------------------------------------------------------------------| - * | | | Tab | ALT | | Space |CrJmp| GUI |Left |Down |Right| - * `-----------------------------------------------------------------------' - */ - {MO(6), KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, F(4)}, - {KC_ENT, KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_SCLN}, - {KC_LCTL, KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, DE_DOT, KC_UP, DE_SLSH}, - {KC_NO, KC_NO, KC_TAB, KC_LALT, KC_NO, KC_SPC, KC_SPC, LCTL(KC_SPC), KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT} -}, -[6] = { /* Gaming - /* CS:GO buy binds - * ,-----------------------------------------------------------------------. - * | | | | | | | | | 7 | 8 | 9 | | - * |-----------------------------------------------------------------------| - * | BS | | | | | | | | 6 | 5 | 4 | End | - * |-----------------------------------------------------------------------| - * | CTL | SFT | | | | | | | 1 | 2 | 3 |Pgdn | - * |-----------------------------------------------------------------------| - * | | | Tab | ALT | | Space |CrJmp| | 0 | KP+ |PEnt | - * `-----------------------------------------------------------------------' - */ - {KC_TRNS, KC_NO, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_P7, KC_P8, KC_P9, KC_NO}, - {KC_BSPC, KC_NO, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_P4, KC_P5, KC_P6, KC_END}, - {KC_LCTL, KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_K, KC_P1, KC_P2, KC_P3, KC_PGDN}, - {KC_NO, KC_NO, KC_TAB, KC_LALT, KC_NO, KC_SPC, KC_SPC, LCTL(KC_SPC), KC_NO, KC_P0, KC_PDOT, KC_PENT} -}, -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - [3] = ACTION_LAYER_TAP_KEY(4,KC_SPC), // to Function - [4] = ACTION_LAYER_TOGGLE(5), // toggle Gaming - [5] = ACTION_MODS_TAP_KEY(KC_LSFT, KC_CAPS), //Shift on press, Caps on tap -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case 0: // M(0) - if (record->event.pressed) { - register_code(KC_LSFT); - layer_on(1); - } else { - layer_off(1); - unregister_code(KC_LSFT); - } - break; - case 1: // M(1) - if (record->event.pressed) { - unregister_code(KC_LSFT); - register_code(DE_MORE); - } else { - unregister_code(DE_MORE); - } - break; - } - return MACRO_NONE; - -};
\ No newline at end of file diff --git a/keyboard/planck/keymaps/lukas/lukas.c b/keyboard/planck/keymaps/lukas/lukas.c deleted file mode 100644 index 6fd95378b1..0000000000 --- a/keyboard/planck/keymaps/lukas/lukas.c +++ /dev/null @@ -1,64 +0,0 @@ -#include "planck.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" -#endif - -// This simple keymap is optimized for xmonad users using super as their modifier key. -// M(1) makes it possible to change virtual screens and swap windows between them. - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -#define _QW 0 -#define _LW 1 -#define _RS 2 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = { /* Qwerty */ - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {KC_LCTL, KC_LALT, KC_LGUI, M(1), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - }, - [_RS] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} - }, - [_LW] = { /* LOWER */ - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} - } -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - break; - case 1: - if (record->event.pressed) { - register_code(KC_LGUI); - layer_on(_RS); - } else { - unregister_code(KC_LGUI); - layer_off(_RS); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/max/max.c b/keyboard/planck/keymaps/max/max.c deleted file mode 100644 index 7fb29bc7a4..0000000000 --- a/keyboard/planck/keymaps/max/max.c +++ /dev/null @@ -1,49 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT }, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT}, - {KC_LCTL, BL_STEP, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* Colemak */ - {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT }, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT}, - {KC_LCTL, BL_STEP, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[2] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TRNS}, - {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_BSLS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* LOWER */ - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), KC_TRNS}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, S(KC_BSLS)}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/mollat/mollat.c b/keyboard/planck/keymaps/mollat/mollat.c deleted file mode 100644 index e7c71efd47..0000000000 --- a/keyboard/planck/keymaps/mollat/mollat.c +++ /dev/null @@ -1,149 +0,0 @@ -// -// This layout is based on the following needs: -// -// should be as close as possible to querty/us-international layout (using international/AltGr as o/s driver) -// added german umlauts at known places from de-layout -// all movement keys should be at known places from vi/bash (eg HJKL for cursor keys) -// Fn layer (at CapsLock place like the Pok3r does) for missing keys -// additional layer for tmux window switching -// -// This is work in Progress! If you have suggestions write me at github.com/mollat/qmk_firmware/ and check -// this fork for updates as I probably won't bother jack with my pull requests frequently. -// - -#include "planck.h" - -#define _QWERTY 0 -#define _HIGH 1 -#define _LOW 2 -#define _FN 3 -#define _TMUX 4 -#define _LCTL 5 -#define _MOUSE 6 -#define __________ KC_NO // just for easy reading - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -[_QWERTY] = { /* Qwerty */ - { LT(_MOUSE, KC_ESC),KC_Q,KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, - { LT(_FN, KC_TAB),KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT }, - { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT)}, - { __________, __________, KC_LGUI, KC_LALT, KC_LCTL,LT(_TMUX, KC_SPC),LT(_HIGH, KC_SPC),MO(_LOW),KC_RALT,KC_RGUI, __________, __________ } -}, - -// missing keys regarding to the form factor -// keeping the dot and comma for typing faster IP addresses and (german) float values -// putting the backslash on the slash's place -[_HIGH] = { - { KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_MINS }, - { __________, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL }, - { __________, __________, __________, __________, __________, __________, __________, __________, KC_COMM, KC_DOT, KC_BSLS, LSFT(KC_BSLS)}, - { __________, __________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________, __________ } -}, - -// classic Fn-Layer triggered with 'CapsLock-key' like on Pok3r -// SPC and ENT are doubled for using repeat (which I switched off, see https://github.com/tmk/tmk_keyboard/issues/287) -// '€' sign is on the '5' position as this is the usual AltGr place on the US Internation layout -// home/end at the 'a' and 'e' position like in bash -// ins at 'i' -// del besides backspace (had no better place for it because of the umlauts) -// pg-down at 'f' (forward in vi), pg-up at 'b' (back in 'vi') -// -[_FN] = { - { __________, __________, __________, KC_END, __________, __________, __________, __________, KC_INS, __________, KC_DEL, RALT(KC_Y) }, - { KC_TRNS, __________, RALT(KC_S), __________, KC_PGDN, RALT(KC_5), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, RALT(KC_P), RALT(KC_Q) }, - { __________, KC_HOME, __________, __________, __________, KC_PGUP, __________, __________, __________, __________, __________, KC_ENT }, - { RESET, __________, __________, __________, __________, KC_SPC, KC_SPC, __________, __________, __________, __________, __________ } -}, - -// function key layer and some shift + (missing key at the small form factor) -[_LOW] = { - { KC_TILD, __________, __________, __________, __________, __________, __________, __________, __________, KC_LCBR, KC_RCBR, KC_UNDS }, - { __________, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, KC_PLUS }, - { __________, __________, __________, __________, __________, KC_F9, KC_F10, KC_F11, KC_F12, __________, __________, __________ }, - { __________, __________, __________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________ } -}, - -// most macros will switch tmux screens -// two macros are for vi's save/quit at 'w' and 'q' -[_TMUX] = { - { __________, M(14), M(13), __________, __________, __________, __________, __________, __________, __________, M(11), __________ }, - { M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), __________, __________ }, - { __________, __________, __________, M(12), __________, __________, M(10), __________, __________, __________, __________, __________ }, - { __________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________, __________, __________ } -}, - -// mouse movement can be improved (e.g. can't press hj at once), but I will use this seldom, so I stick with hjkl keys. -[_MOUSE] = { - { KC_TRNS, __________, __________, __________, __________, __________, __________, __________, __________, __________, __________, __________ }, - { __________, __________, __________, __________, KC_WH_D, __________, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, __________, __________ }, - { __________, __________, __________, __________, __________, KC_WH_U, __________, __________, __________, __________, __________, __________ }, - { __________, __________, __________, KC_ACL2, KC_ACL1, KC_ACL0, KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN2, __________, __________, __________ } -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [_LCTL] = ACTION_MODS_TAP_KEY(KC_LCTL, M(12)), // does not work -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case 0: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_0), END ); - break; - case 1: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_1), END ); - break; - case 2: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_2), END ); - break; - case 3: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_3), END ); - break; - case 4: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_4), END ); - break; - case 5: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_5), END ); - break; - case 6: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_6), END ); - break; - case 7: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_7), END ); - break; - case 8: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_8), END ); - break; - case 9: - // tmux last window - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_L), END ); - break; - // tmux next window - case 10: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_N), END ); - break; - // tmux previous window - case 11: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_P), END ); - break; - // tmux new window - case 12: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_C), END ); - break; - case 13: - // vi save document - return MACRODOWN( TYPE(KC_ESC), DOWN(KC_LSFT), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_W), TYPE(KC_ENT), END ); - break; - case 14: - // vi quit - return MACRODOWN( TYPE(KC_ESC), DOWN(KC_LSFT), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_Q), TYPE(KC_ENT), END ); - break; - // tmux press ctrl-b - case 15: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), END ); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/monkey/monkey.c b/keyboard/planck/keymaps/monkey/monkey.c deleted file mode 100644 index 21a2c146ab..0000000000 --- a/keyboard/planck/keymaps/monkey/monkey.c +++ /dev/null @@ -1,76 +0,0 @@ -#include "keymap_common.h" -#include "backlight.h" -#include "debug.h" - -#define COLEMAK_LAYER 0 -#define QWERTY_LAYER 1 -#define LOWER_LAYER 2 -#define UPPER_LAYER 3 -#define SPACEFN_LAYER 4 -#define TENKEY_LAYER 5 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[COLEMAK_LAYER] = { /* Colemak */ - {KC_TAB, UNI(0x1961), KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {FUNC(5), KC_ESC, KC_LGUI, KC_LALT, FUNC(1), FUNC(6), FUNC(6), FUNC(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[QWERTY_LAYER] = { /* Qwerty */ - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {FUNC(5), KC_ESC, KC_LGUI, KC_LALT, FUNC(1), FUNC(6), FUNC(6), FUNC(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[LOWER_LAYER] = { /* LOWER */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELETE}, - {KC_TRNS, FUNC(3), FUNC(4), RESET, DEBUG, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} -}, -[UPPER_LAYER] = { /* RAISE */ - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_DELETE}, - {KC_CALC, FUNC(3), FUNC(4), RESET, DEBUG, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[SPACEFN_LAYER] = { /* SpaceFN */ - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_TRNS}, - {KC_TRNS, FUNC(3), FUNC(4), KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -[TENKEY_LAYER] = { /* TENKEY */ - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, KC_BSPC}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, KC_NLCK}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_1, KC_KP_2, KC_KP_3, KC_PDOT, KC_ENT}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_SPC, KC_KP_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_KEY(LOWER_LAYER, KC_BSPC), // Tap for backspace, hold for LOWER - [2] = ACTION_LAYER_TAP_KEY(UPPER_LAYER, KC_ENT), // Tap for enter, hold for RAISE - - [3] = ACTION_DEFAULT_LAYER_SET(COLEMAK_LAYER), - [4] = ACTION_DEFAULT_LAYER_SET(QWERTY_LAYER), - [5] = ACTION_LAYER_TOGGLE(TENKEY_LAYER), - - [6] = ACTION_LAYER_TAP_KEY(SPACEFN_LAYER, KC_SPC), // Tap for space, hold for SpaceFN -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - backlight_step(); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -};
\ No newline at end of file diff --git a/keyboard/planck/keymaps/nico/nico.c b/keyboard/planck/keymaps/nico/nico.c deleted file mode 100644 index e81fd80a44..0000000000 --- a/keyboard/planck/keymaps/nico/nico.c +++ /dev/null @@ -1,69 +0,0 @@ -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, -// this is the style you want to emulate. - -#include "planck.h" -#include "backlight.h" - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QW 0 -#define _CM 1 -#define _DV 2 -#define _LW 3 -#define _RS 4 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QW] = { /* Qwerty */ - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[_CM] = { /* Colemak */ - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[_DV] = { /* Dvorak */ - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {M(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[_RS] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, - {M(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14, KC_F15, KC_TRNS, KC_MFFD, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[_LW] = { /* LOWER */ - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, - {M(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14, KC_F15, KC_TRNS, KC_MFFD, KC_VOLD, KC_VOLU, KC_MPLY} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_KEY(MO(_LW), KC_BSPC), // Tap for backspace, hold for LOWER - [2] = ACTION_LAYER_TAP_KEY(MO(_RS), KC_ENT), // Tap for enter, hold for RAISE -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - backlight_step(); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/numpad/numpad.c b/keyboard/planck/keymaps/numpad/numpad.c deleted file mode 100644 index 7de4372ab0..0000000000 --- a/keyboard/planck/keymaps/numpad/numpad.c +++ /dev/null @@ -1,26 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_KP_MINUS, KC_KP_PLUS, KC_KP_PLUS, KC_KP_ENTER, KC_KP_ENTER}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_KP_ASTERISK, KC_KP_9, KC_KP_6, KC_KP_3, KC_KP_DOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_KP_SLASH, KC_KP_8, KC_KP_5, KC_KP_2, KC_KP_0}, - {BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, KC_NO, KC_SPC, KC_SPC, KC_NUMLOCK, KC_KP_7, KC_KP_4, KC_KP_1, KC_KP_0} - // Space is repeated to accommadate for both spacebar wiring positions -} -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -};
\ No newline at end of file diff --git a/keyboard/planck/keymaps/pete/README.md b/keyboard/planck/keymaps/pete/README.md deleted file mode 100644 index 3cf594f3a9..0000000000 --- a/keyboard/planck/keymaps/pete/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Planck Layout by Pete - -This layout is based on the default layout but uses a FN key in the bottom left corner instead of the shift / backlight key. -On the FN layer you can do the following things - -- Step through back light -- Put a mac to sleep -- The Fxx keys in a block to click with the right hand -- The delete key in the upper right corner -- Quick access to screenshot functions -- Control volume and media playback -- Home/PgDown/PgUp/End buttons where the arrow keys are - -Pressing the lower and raise buttons allows to reset and change from QWERT to Colemak or Dvorak. diff --git a/keyboard/planck/keymaps/pete/keymap.c b/keyboard/planck/keymaps/pete/keymap.c deleted file mode 100644 index 57cab65a31..0000000000 --- a/keyboard/planck/keymaps/pete/keymap.c +++ /dev/null @@ -1,223 +0,0 @@ -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, -// this is the style you want to emulate. - -#include "planck.h" -#include "action_layer.h" -#ifdef AUDIO_ENABLE - #include "audio.h" -#endif -#include "eeconfig.h" - -extern keymap_config_t keymap_config; - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QWERTY 0 -#define _COLEMAK 1 -#define _DVORAK 2 -#define _LOWER 3 -#define _RAISE 4 -#define _FCT 5 -#define _SETUP 6 -#define _MICMUTE 16 - -// Macro name shortcuts -#define QWERTY M(_QWERTY) -#define COLEMAK M(_COLEMAK) -#define DVORAK M(_DVORAK) -#define LOWER M(_LOWER) -#define RAISE M(_RAISE) -#define FCT M(_FCT) -#define MICMUTE M(_MICMUTE) - -#define MACPRNT LGUI(LSFT(KC_3)) -#define MACPRNT2 LGUI(LSFT(KC_4)) -#define CYCLWIN LGUI(KC_GRV) -#define MAC_SLEP LSFT(LCTL(KC_POWER)) - -// Fillers to make layering more clear -#define _______ KC_TRNS -#define XXXXXXX KC_NO - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -[_QWERTY] = { - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {FCT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - -[_COLEMAK] = { - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {FCT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - -[_DVORAK] = { - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {FCT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - -[_LOWER] = { - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {_______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, - -[_RAISE] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {_______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, - -[_FCT] = { /* Function */ - {BL_STEP, MAC_SLEP,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_DELT}, - {_______, MICMUTE, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, MACPRNT}, - {_______, CYCLWIN, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, MACPRNT2}, - {FCT, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDOWN,KC_PGUP,KC_END } -}, - -[_SETUP] = { /* Setup */ - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, RESET, RESET, _______, _______, _______, _______, _______} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -#ifdef AUDIO_ENABLE -float tone_startup[][2] = { - {440.0*pow(2.0,(31)/12.0), 12}, - {440.0*pow(2.0,(28)/12.0), 8}, - {440.0*pow(2.0,(19)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {440.0*pow(2.0,(28)/12.0), 20} -}; - -float tone_qwerty[][2] = SONG(QWERTY_SOUND); -float tone_dvorak[][2] = SONG(DVORAK_SOUND); -float tone_colemak[][2] = SONG(COLEMAK_SOUND); -float tone_plover[][2] = SONG(PLOVER_SOUND); -float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); - -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); -float goodbye[][2] = SONG(GOODBYE_SOUND); -#endif - - -void persistant_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); -} - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case _QWERTY: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_qwerty, false, 0); - #endif - persistant_default_layer_set(1UL<<_QWERTY); - } - break; - case _COLEMAK: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_colemak, false, 0); - #endif - persistant_default_layer_set(1UL<<_COLEMAK); - } - break; - case _DVORAK: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_dvorak, false, 0); - #endif - persistant_default_layer_set(1UL<<_DVORAK); - } - break; - case _LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _RAISE, _SETUP); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _SETUP); - } - break; - case _RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer(_LOWER, _RAISE, _SETUP); - } else { - layer_off(_RAISE); - update_tri_layer(_LOWER, _RAISE, _SETUP); - } - break; - case _FCT: - if (record->event.pressed) { - layer_on(_FCT); - } else { - layer_off(_FCT); - } - break; - case _MICMUTE: - if (record->event.pressed) { - register_code(KC_RSFT); - register_code(KC_RCTL); - register_code(KC_RALT); - register_code(KC_RGUI); - } else { - unregister_code(KC_RSFT); - unregister_code(KC_RCTL); - unregister_code(KC_RALT); - unregister_code(KC_RGUI); - } - break; - - } - return MACRO_NONE; -}; - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - _delay_ms(20); // stops the tick - PLAY_NOTE_ARRAY(tone_startup, false, 0); - #endif -} - -#ifdef AUDIO_ENABLE -void play_goodbye_tone() -{ - PLAY_NOTE_ARRAY(goodbye, false, 0); - _delay_ms(150); -} - -uint8_t starting_note = 0x0C; -int offset = 0; - -void process_action_user(keyrecord_t *record) { - - if (IS_LAYER_ON(_MUSIC)) { - if (record->event.pressed) { - play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); - } else { - stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); - } - } - -} -#endif diff --git a/keyboard/planck/keymaps/pete/makefile.mk b/keyboard/planck/keymaps/pete/makefile.mk deleted file mode 100644 index 812264cb35..0000000000 --- a/keyboard/planck/keymaps/pete/makefile.mk +++ /dev/null @@ -1,2 +0,0 @@ -AUDIO_ENABLE = no -NKRO_ENABLE = yes
\ No newline at end of file diff --git a/keyboard/planck/keymaps/pvc/config.h b/keyboard/planck/keymaps/pvc/config.h deleted file mode 100644 index b648931081..0000000000 --- a/keyboard/planck/keymaps/pvc/config.h +++ /dev/null @@ -1,89 +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/>. -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Ortholinear Keyboards -#define PRODUCT The Planck Keyboard -#define DESCRIPTION A compact ortholinear keyboard - -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 12 - -/* Planck PCB default pin-out */ -#define MATRIX_ROW_PINS { D0, D5, B5, B6 } -#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } -#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)) \ -) - -/* ws2812 RGB LED */ -#define ws2812_PORTREG PORTD -#define ws2812_DDRREG DDRD -#define ws2812_pin PD1 -#define RGBLED_NUM 28 // Number of LEDs -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboard/planck/keymaps/pvc/keymap.c b/keyboard/planck/keymaps/pvc/keymap.c deleted file mode 100644 index 2fc5f0da16..0000000000 --- a/keyboard/planck/keymaps/pvc/keymap.c +++ /dev/null @@ -1,478 +0,0 @@ -#include "planck.h" -#include "action_layer.h" -#include "eeconfig.h" -#include "led.h" - -#ifdef AUDIO_ENABLE - #include "audio.h" - #include "song_list.h" -#endif - -#define LAYER_QWERTY 0 -#define LAYER_COLEMAK 1 -#define LAYER_DVORAK 2 -#define LAYER_UPPER 3 -#define LAYER_LOWER 4 -#define LAYER_FUNCTION 5 -#define LAYER_MOUSE 6 -#define LAYER_ADJUST 7 - -#define MACRO_QWERTY 0 -#define MACRO_COLEMAK 1 -#define MACRO_DVORAK 2 -#define MACRO_UPPER 3 -#define MACRO_LOWER 4 -#define MACRO_FUNCTION 5 -#define MACRO_MOUSE 6 -#define MACRO_TIMBRE_1 7 -#define MACRO_TIMBRE_2 8 -#define MACRO_TIMBRE_3 9 -#define MACRO_TIMBRE_4 10 -#define MACRO_TEMPO_U 11 -#define MACRO_TEMPO_D 12 -#define MACRO_TONE_DEFAULT 13 -#define MACRO_MUSIC_TOGGLE 14 -#define MACRO_AUDIO_TOGGLE 16 -#define MACRO_INC_VOICE 18 -#define MACRO_DEC_VOICE 19 -#define MACRO_BACKLIGHT 20 -#define MACRO_BREATH_TOGGLE 21 -#define MACRO_BREATH_SPEED_INC 23 -#define MACRO_BREATH_SPEED_DEC 24 -#define MACRO_BREATH_DEFAULT 25 - -#define M_QWRTY M(MACRO_QWERTY) -#define M_COLMK M(MACRO_COLEMAK) -#define M_DVORK M(MACRO_DVORAK) -#define M_UPPER M(MACRO_UPPER) -#define M_LOWER M(MACRO_LOWER) -#define M_FUNCT M(MACRO_FUNCTION) -#define M_MOUSE M(MACRO_MOUSE) -#define TIMBR_1 M(MACRO_TIMBRE_1) -#define TIMBR_2 M(MACRO_TIMBRE_2) -#define TIMBR_3 M(MACRO_TIMBRE_3) -#define TIMBR_4 M(MACRO_TIMBRE_4) -#define TMPO_UP M(MACRO_TEMPO_U) -#define TMPO_DN M(MACRO_TEMPO_D) -#define TMPO_DF M(MACRO_TONE_DEFAULT) -#define M_BACKL M(MACRO_BACKLIGHT) -#define M_BRTOG M(MACRO_BREATH_TOGGLE) -#define M_BSPDU M(MACRO_BREATH_SPEED_INC) -#define M_BSPDD M(MACRO_BREATH_SPEED_DEC) -#define M_BDFLT M(MACRO_BREATH_DEFAULT) - - -#define VC_UP M(MACRO_INC_VOICE) -#define VC_DOWN M(MACRO_DEC_VOICE) - - -#define SC_UNDO LCTL(KC_Z) -#define SC_REDO LCTL(KC_Y) -#define SC_CUT LCTL(KC_X) -#define SC_COPY LCTL(KC_C) -#define SC_PSTE LCTL(KC_V) -#define SC_SELA LCTL(KC_A) -#define SC_SAVE LCTL(KC_S) -#define SC_OPEN LCTL(KC_O) -#define SC_ACLS LALT(KC_F4) -#define SC_CCLS LCTL(KC_F4) - -#define OS_SHFT KC_FN0 - -#define _______ KC_TRNS -#define XXXXXXX KC_NO -#define ________________ _______, _______ -#define XXXXXXXXXXXXXXXX XXXXXXX, XXXXXXX - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* QWERTY - * .-----------------------------------------------------------------------------------------------------------. - * | TAB | Q | W | E | R | T | Y | U | I | O | P | BACKSP | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | ESC | A | S | D | F | G | H | J | K | L | ; | ' | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LSHIFT | Z | X | C | V | B | N | M | , | . | UP | ENTER | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LCTRL | LWIN | FN | LALT | UPPER | SPACE | SPACE | LOWER | SHIFT | LEFT | DOWN | RIGHT | - * '-----------------------------------------------------------------------------------------------------------' - */ - - [LAYER_QWERTY] = { // QWERTY - { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, - { KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT }, - { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT }, - { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_LEFT, KC_DOWN, KC_RGHT }, - }, - -/* COLEMAK - * .-----------------------------------------------------------------------------------------------------------. - * | TAB | Q | W | F | P | G | J | L | U | Y | ; | ESC | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | BACKSP | A | R | S | T | D | H | N | E | I | O | ' | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LSHIFT | Z | X | C | V | B | K | M | , | . | UP | ENTER | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LCTRL | LWIN | FN | LALT | UPPER | SPACE | SPACE | LOWER | SHIFT | LEFT | DOWN | RIGHT | - * '-----------------------------------------------------------------------------------------------------------' - */ - - [LAYER_COLEMAK] = { // COLEMAK - { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_ESC }, - { KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT }, - { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT }, - { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_LEFT, KC_DOWN, KC_RGHT }, - }, - -/* DVORAK - * .-----------------------------------------------------------------------------------------------------------. - * | TAB | ' | , | . | P | Y | F | G | C | R | L | BACKSP | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | ESC | A | O | E | U | I | D | H | T | N | S | / | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | ENTER | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LCTRL | LWIN | FN | LALT | UPPER | SPACE | SPACE | LOWER | UP | DOWN | LEFT | RIGHT | - * '-----------------------------------------------------------------------------------------------------------' - */ - - [LAYER_DVORAK] = { // DVORAK - { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC }, - { KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH }, - { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT }, - }, - -/* UPPER - * .-----------------------------------------------------------------------------------------------------------. - * | PRINT | F1 | F2 | F3 | F4 | NUM LK | / | 7 | 8 | 9 | - | DEL | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | CAP LK | F5 | F6 | F7 | F8 | SCR LK | * | 4 | 5 | 6 | + | INS | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | F9 | F10 | F11 | F12 | PAUSE | | 1 | 2 | 3 | ENTER | HOME | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | | | | | | 0 | 0 | | RALT | . | ENTER | END | - * '-----------------------------------------------------------------------------------------------------------' - */ - - [LAYER_UPPER] = { // UPPER - { KC_PSCR, KC_F1, KC_F2, KC_F3, KC_F4, KC_NLCK, KC_PSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, KC_DEL }, - { KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_SLCK, KC_PAST, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, KC_INS }, - { _______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PAUS, XXXXXXX, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, KC_HOME }, - { _______, _______, _______, _______, _______, KC_KP_0, KC_KP_0, _______, KC_RALT, KC_PDOT, KC_PENT, KC_END }, - }, - -/* LOWER - * .-----------------------------------------------------------------------------------------------------------. - * | | $ | { | [ | ( | % | # | ) | ] | } | @ | PG UP | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | ^ | * | + | - | ; | : | _ | ' | " | ` | PG DN | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | | | & | ! | ~ | / | \ | = | < | > | ? | HOME | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | | | | | | | | | | | | END | - * '-----------------------------------------------------------------------------------------------------------' - */ - - [LAYER_LOWER] = { // LOWER - { _______, KC_DLR, KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT, KC_PGUP }, - { _______, KC_CIRC, KC_ASTR, KC_PPLS, KC_PMNS, KC_SCLN, KC_COLN, KC_UNDS, KC_QUOT, KC_DQT, KC_GRV, KC_PGDN }, - { _______, KC_PIPE, KC_AMPR, KC_EXLM, KC_TILD, KC_SLSH, KC_BSLS, KC_EQL, KC_LT, KC_GT, KC_QUES, KC_HOME }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END }, - }, - - -/* FUNCTION - * .-----------------------------------------------------------------------------------------------------------. - * | NUM LK | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | PAUSE | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | CAP LK | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | PRINT | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | SCR LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MUTE | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LCTRL | LWIN | FN | LALT | UPPER | PLAY | PLAY | LOWER | VOL UP | VOL DN | NEXT | PREV | - * '-----------------------------------------------------------------------------------------------------------' - */ - [LAYER_FUNCTION] = { // FUNCTION - { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PAUS }, - { KC_CAPS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_PSCR }, - { KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE }, - { _______, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, KC_VOLU, KC_VOLD, KC_MPRV, KC_MNXT }, - }, - -#ifdef MOUSEKEY_ENABLE - - [LAYER_MOUSE] = { // MOUSE - { KC_ESC, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC }, - { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, - { _______, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_U, KC_WH_D }, - { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, KC_MS_U, KC_MS_D, KC_MS_L, KC_MS_R }, - }, - -#endif - - [LAYER_ADJUST] = { // ADJUST - { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, _______, _______, MU_TOG, AU_TOG }, - { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, M_BACKL, RESET, _______, M_MOUSE, _______, _______, MUV_IN, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MUV_DE, _______ }, - }, - -/* - [LAYER_EMPTY] = { - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, - { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, }, - }, -*/ - -}; - -#ifdef AUDIO_ENABLE - -float tone_my_startup[][2] = SONG(ODE_TO_JOY); -float tone_my_goodbye[][2] = SONG(ROCK_A_BYE_BABY); - -float tone_qwerty[][2] = SONG(QWERTY_SOUND); -float tone_dvorak[][2] = SONG(DVORAK_SOUND); -float tone_colemak[][2] = SONG(COLEMAK_SOUND); - -float tone_audio_on[][2] = SONG(CLOSE_ENCOUNTERS_5_NOTE); -float tone_music_on[][2] = SONG(DOE_A_DEER); -float tone_caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND); -float tone_caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND); -float tone_numlk_on[][2] = SONG(NUM_LOCK_ON_SOUND); -float tone_numlk_off[][2] = SONG(NUM_LOCK_OFF_SOUND); -float tone_scroll_on[][2] = SONG(SCROLL_LOCK_ON_SOUND); -float tone_scroll_off[][2] = SONG(SCROLL_LOCK_OFF_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); - -#endif /* AUDIO_ENABLE */ - -void persistant_default_layer_set(uint16_t default_layer) -{ - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); -} - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_MODS_ONESHOT(MOD_LSFT), -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - - // MACRODOWN only works in this function - switch(id) - { - - case MACRO_QWERTY: - if (record->event.pressed) - { - persistant_default_layer_set(1UL<<LAYER_QWERTY); - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_qwerty, false, STACCATO); - #endif /* AUDIO_ENABLE */ - } - break; - - case MACRO_COLEMAK: - if (record->event.pressed) - { - persistant_default_layer_set(1UL<<LAYER_COLEMAK); - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_colemak, false, STACCATO); - #endif /* AUDIO_ENABLE */ - } - break; - - case MACRO_DVORAK: - if (record->event.pressed) - { - persistant_default_layer_set(1UL<<LAYER_DVORAK); - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_dvorak, false, STACCATO); - #endif /* AUDIO_ENABLE */ - } - break; - - case MACRO_LOWER: - if (record->event.pressed) - { - layer_on(LAYER_LOWER); - update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); - } - else - { - layer_off(LAYER_LOWER); - update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); - } - break; - - case MACRO_UPPER: - if (record->event.pressed) - { - layer_on(LAYER_UPPER); - update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); - } - else - { - layer_off(LAYER_UPPER); - update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); - } - break; - - case MACRO_FUNCTION: - if (record->event.pressed) - { - layer_on(LAYER_FUNCTION); - } - else - { - layer_off(LAYER_FUNCTION); - } - break; - - -#ifdef BACKLIGHT_ENABLE - case MACRO_BACKLIGHT: - if (record->event.pressed) - { - backlight_step(); - } -#endif - -#ifdef MOUSEKEY_ENABLE - - case MACRO_MOUSE: - if (record->event.pressed) - { - layer_invert(LAYER_MOUSE); - } - break; - -#endif /* MOUSEKEY_ENABLE */ - -#ifdef AUDIO_ENABLE - - case MACRO_TIMBRE_1: - if (record->event.pressed) set_timbre(TIMBRE_12); - break; - - case MACRO_TIMBRE_2: - if (record->event.pressed) set_timbre(TIMBRE_25); - break; - - case MACRO_TIMBRE_3: - if (record->event.pressed) set_timbre(TIMBRE_50); - break; - - case MACRO_TIMBRE_4: - if (record->event.pressed) set_timbre(TIMBRE_75); - break; - - case MACRO_TEMPO_U: - if (record->event.pressed) increase_tempo(10); - break; - - case MACRO_TEMPO_D: - if (record->event.pressed) decrease_tempo(10); - break; - - case MACRO_TONE_DEFAULT: - if (record->event.pressed) - { - set_timbre(TIMBRE_DEFAULT); - set_tempo(TEMPO_DEFAULT); - } - break; - -#endif /* AUDIO_ENABLE */ - - default: - break; - - } - return MACRO_NONE; -}; - - -#ifdef AUDIO_ENABLE - -void matrix_init_user(void) -{ - set_voice(default_voice); - startup_user(); - println("Matrix Init"); -} - -void led_set_user(uint8_t usb_led) -{ - static uint8_t old_usb_led = 0; - - _delay_ms(10); // gets rid of tick - - if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK))) - { - // If CAPS LK LED is turning on... - PLAY_NOTE_ARRAY(tone_caps_on, false, LEGATO); - } - else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK))) - { - // If CAPS LK LED is turning off... - PLAY_NOTE_ARRAY(tone_caps_off, false, LEGATO); - } - else if ((usb_led & (1<<USB_LED_NUM_LOCK)) && !(old_usb_led & (1<<USB_LED_NUM_LOCK))) - { - // If NUM LK LED is turning on... - PLAY_NOTE_ARRAY(tone_numlk_on, false, LEGATO); - } - else if (!(usb_led & (1<<USB_LED_NUM_LOCK)) && (old_usb_led & (1<<USB_LED_NUM_LOCK))) - { - // If NUM LED is turning off... - PLAY_NOTE_ARRAY(tone_numlk_off, false, LEGATO); - } - else if ((usb_led & (1<<USB_LED_SCROLL_LOCK)) && !(old_usb_led & (1<<USB_LED_SCROLL_LOCK))) - { - // If SCROLL LK LED is turning on... - PLAY_NOTE_ARRAY(tone_scroll_on, false, LEGATO); - } - else if (!(usb_led & (1<<USB_LED_SCROLL_LOCK)) && (old_usb_led & (1<<USB_LED_SCROLL_LOCK))) - { - // If SCROLL LED is turning off... - PLAY_NOTE_ARRAY(tone_scroll_off, false, LEGATO); - } - old_usb_led = usb_led; -} - - -void startup_user() -{ - _delay_ms(10); // gets rid of tick - PLAY_NOTE_ARRAY(tone_my_startup, false, STACCATO); -} - -void shutdown_user() -{ - PLAY_NOTE_ARRAY(tone_my_goodbye, false, STACCATO); - _delay_ms(2000); - stop_all_notes(); -} - -void audio_on_user(void) -{ - PLAY_NOTE_ARRAY(tone_audio_on, false, STACCATO); -} - -void music_on_user(void) -{ - PLAY_NOTE_ARRAY(tone_music_on, false, STACCATO); -} - -void music_scale_user(void) -{ - PLAY_NOTE_ARRAY(music_scale, false, STACCATO); -} - -#endif /* AUDIO_ENABLE */
\ No newline at end of file diff --git a/keyboard/planck/keymaps/pvc/makefile.mk b/keyboard/planck/keymaps/pvc/makefile.mk deleted file mode 100644 index f7798b09d5..0000000000 --- a/keyboard/planck/keymaps/pvc/makefile.mk +++ /dev/null @@ -1,17 +0,0 @@ -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 = no # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = yes # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. - -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - -CONFIG_H = keymaps/$(KEYMAP)/config.h
\ No newline at end of file diff --git a/keyboard/planck/keymaps/tak3over/tak3over.c b/keyboard/planck/keymaps/tak3over/tak3over.c deleted file mode 100644 index 7d8243dfac..0000000000 --- a/keyboard/planck/keymaps/tak3over/tak3over.c +++ /dev/null @@ -1,130 +0,0 @@ -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, -// this is the style you want to emulate. -// -//Dropped the Dvorak layer and added two my layer buttons. Both Raise and lower can be accessed from either side now. - -#include "planck.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" -#endif - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QW 0 -#define _CM 1 -#define _LW 2 -#define _RS 3 -#define _FN 4 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Qwerty - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ; | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_QW] = { - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {KC_LCTL, KC_LALT, KC_LGUI, MO(_FN), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -/* Colemak - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | R | S | T | D | H | N | E | I | O | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right - * `-----------------------------------------------------------------------------------' - */ -[_CM] = { - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {KC_LCTL, KC_LALT, KC_LGUI, MO(_FN), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -/* Raise - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 | _ | + | { | } |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_RS] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_PIPE}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -/* Lower - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | Reset| Ins | Home | PGUP |Colemk| Left | - | = | [ | ] | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Brite| Del | End | PGDN |Qwerty| Del | _ | + | { | } |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_LW] = { - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_TRNS, RESET, KC_INS, KC_HOME, KC_PGUP, DF(_CM), KC_LEFT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, M(0), KC_DEL, KC_END, KC_PGDN, DF(_QW), KC_DEL, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -/* Function - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | GUI | X | C | V | Z | Left | Down | Up |Right | Del | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * |Shift | Ctrl | X | C | V | Z | Next | Mute | Vol- | Vol+ | Play |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_FN] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, KC_RGUI, KC_X, KC_C, KC_V, KC_Z, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, KC_BSLS}, - {KC_TRNS, KC_RCTL, KC_X, KC_C, KC_V, KC_Z, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/unicode/keymap.c b/keyboard/planck/keymaps/unicode/keymap.c deleted file mode 100644 index d73e7e09d4..0000000000 --- a/keyboard/planck/keymaps/unicode/keymap.c +++ /dev/null @@ -1,326 +0,0 @@ -/* - Copyright - 2015 Jack Humbert <jack.humb@gmail.com> - 2016 Francois Marlier <fmarlier@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/>. - - For more info on how this works per OS, see here - https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_code_input -*/ - - -#include "planck.h" -#include "action_layer.h" -#ifdef AUDIO_ENABLE - #include "audio.h" -#endif -#include "eeconfig.h" - -extern keymap_config_t keymap_config; - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QWERTY 0 -#define _COLEMAK 1 -#define _DVORAK 2 -#define _LOWER 3 -#define _RAISE 4 -#define _PLOVER 5 -#define _ADJUST 16 - -// Macro name shortcuts -#define QWERTY M(_QWERTY) -#define COLEMAK M(_COLEMAK) -#define DVORAK M(_DVORAK) -#define LOWER M(_LOWER) -#define RAISE M(_RAISE) -#define M_BL 5 -#define PLOVER M(12) -#define EXT_PLV M(13) -#define TOG_OUT M(14) - -// Fillers to make layering more clear -#define _______ KC_TRNS -#define XXXXXXX KC_NO - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Qwerty - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ; | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_QWERTY] = { - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - -/* Colemak - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | R | S | T | D | H | N | E | I | O | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_COLEMAK] = { - {KC_TAB, UC_q, UC_w, UC_f, UC_p, UC_g, UC_j, UC_l, UC_u, UC_y, UC_SCLN, UC_BSPC}, - {KC_ESC, UC_a, UC_r, UC_s, UC_t, UC_d, UC_h, UC_n, UC_e, UC_i, UC_o, UC_QUOT}, - {KC_LSFT, UC_z, UC_x, UC_c, UC_v, UC_b, UC_k, UC_m, UC_COMM, UC_DOT, UC_SLSH, KC_ENT}, - {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - -/* Dvorak - * ,-----------------------------------------------------------------------------------. - * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | O | E | U | I | D | H | T | N | S | / | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_DVORAK] = { - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - -/* Lower - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_LOWER] = { - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, - -/* Raise - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_RAISE] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, - -/* Plover layer (http://opensteno.org) - * ,-----------------------------------------------------------------------------------. - * | # | # | # | # | # | # | # | # | # | # | # | # | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | S | T | P | H | * | * | F | P | L | T | D | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * |TogOut| S | K | W | R | * | * | R | B | G | S | Z | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Exit | | | A | O | | E | U | | | | - * `-----------------------------------------------------------------------------------' - */ - -[_PLOVER] = { - {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, - {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, - {TOG_OUT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} -}, - -/* Adjust (Lower + Raise) - * ,-----------------------------------------------------------------------------------. - * | | Reset| | | | | | | | | | Del | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff| | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_ADJUST] = { - {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, - {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -} - - -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -#ifdef AUDIO_ENABLE -float tone_startup[][2] = { - {440.0*pow(2.0,(31)/12.0), 12}, - {440.0*pow(2.0,(28)/12.0), 8}, - {440.0*pow(2.0,(19)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {440.0*pow(2.0,(28)/12.0), 20} -}; - -float tone_qwerty[][2] = SONG(QWERTY_SOUND); -float tone_dvorak[][2] = SONG(DVORAK_SOUND); -float tone_colemak[][2] = SONG(COLEMAK_SOUND); -float tone_plover[][2] = SONG(PLOVER_SOUND); -float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); - -float goodbye[][2] = SONG(GOODBYE_SOUND); -#endif - - -void persistant_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); -} - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case _QWERTY: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_qwerty, false, 0); - #endif - persistant_default_layer_set(1UL<<_QWERTY); - } - break; - case _COLEMAK: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_colemak, false, 0); - #endif - persistant_default_layer_set(1UL<<_COLEMAK); - } - break; - case _DVORAK: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_dvorak, false, 0); - #endif - persistant_default_layer_set(1UL<<_DVORAK); - } - break; - case _LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - break; - case _RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - break; - case M_BL: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - break; - case 12: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - stop_all_notes(); - PLAY_NOTE_ARRAY(tone_plover, false, 0); - #endif - layer_off(_RAISE); - layer_off(_LOWER); - layer_off(_ADJUST); - layer_on(_PLOVER); - if (!eeconfig_is_enabled()) { - eeconfig_init(); - } - keymap_config.raw = eeconfig_read_keymap(); - keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); - } - break; - case 13: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); - #endif - layer_off(_PLOVER); - } - break; - case 14: - if (record->event.pressed) { - return MACRO( D(E), D(R), D(F), D(V), D(O), D(L), U(E), U(R), U(F), U(V), U(O), U(L), END ); - } - break; - } - return MACRO_NONE; -}; - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - _delay_ms(20); // stops the tick - PLAY_NOTE_ARRAY(tone_startup, false, 0); - #endif -} - -#ifdef AUDIO_ENABLE -void play_goodbye_tone() -{ - PLAY_NOTE_ARRAY(goodbye, false, 0); - _delay_ms(150); -} -#endif - - diff --git a/keyboard/planck/keymaps/unicode/makefile.mk b/keyboard/planck/keymaps/unicode/makefile.mk deleted file mode 100644 index 9b27b08bed..0000000000 --- a/keyboard/planck/keymaps/unicode/makefile.mk +++ /dev/null @@ -1 +0,0 @@ -UNICODE_ENABLE = yes # Unicode diff --git a/keyboard/planck/keymaps/yang/WS2812-wiring.jpg b/keyboard/planck/keymaps/yang/WS2812-wiring.jpg Binary files differdeleted file mode 100644 index 2c65cd283a..0000000000 --- a/keyboard/planck/keymaps/yang/WS2812-wiring.jpg +++ /dev/null diff --git a/keyboard/planck/keymaps/yang/keymap.c b/keyboard/planck/keymaps/yang/keymap.c deleted file mode 100644 index 541b1a57e4..0000000000 --- a/keyboard/planck/keymaps/yang/keymap.c +++ /dev/null @@ -1,146 +0,0 @@ -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, -// this is the style you want to emulate. - -#include "planck.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" -#endif - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QW 0 -#define _CM 1 -#define _DV 2 -#define _LW 3 -#define _RS 4 -#define _RGB 5 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QW] = { /* Qwerty */ - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), F(0), F(0), MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[_CM] = { /* Colemak */ - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), F(0), F(0), MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[_DV] = { /* Dvorak */ - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), F(0), F(0), MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[_RS] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[_LW] = { /* LOWER */ - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[_RGB] = { /* RGBLIGHT */ - {KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL}, - {KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_END, KC_TRNS}, - {KC_TRNS, F(1), F(2), F(3), F(4), F(5), F(6), F(7), F(8), KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} - -} -}; - -enum function_id { - RGBLED_TOGGLE, - RGBLED_STEP_MODE, - RGBLED_INCREASE_HUE, - RGBLED_DECREASE_HUE, - RGBLED_INCREASE_SAT, - RGBLED_DECREASE_SAT, - RGBLED_INCREASE_VAL, - RGBLED_DECREASE_VAL, -}; - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_TAP_KEY(_RGB, KC_SPC), - [1] = ACTION_FUNCTION(RGBLED_TOGGLE), - [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), - [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), - [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), - [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), - [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), - [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), - [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { - switch (id) { - case RGBLED_TOGGLE: - //led operations - if (record->event.pressed) { - rgblight_toggle(); - } - - break; - case RGBLED_INCREASE_HUE: - if (record->event.pressed) { - rgblight_increase_hue(); - } - break; - case RGBLED_DECREASE_HUE: - if (record->event.pressed) { - rgblight_decrease_hue(); - } - break; - case RGBLED_INCREASE_SAT: - if (record->event.pressed) { - rgblight_increase_sat(); - } - break; - case RGBLED_DECREASE_SAT: - if (record->event.pressed) { - rgblight_decrease_sat(); - } - break; - case RGBLED_INCREASE_VAL: - if (record->event.pressed) { - rgblight_increase_val(); - } - break; - case RGBLED_DECREASE_VAL: - if (record->event.pressed) { - rgblight_decrease_val(); - } - break; - case RGBLED_STEP_MODE: - if (record->event.pressed) { - rgblight_step(); - } - break; - } -} diff --git a/keyboard/planck/keymaps/yang/planck-with-rgb-underglow.jpg b/keyboard/planck/keymaps/yang/planck-with-rgb-underglow.jpg Binary files differdeleted file mode 100644 index c636b9a83d..0000000000 --- a/keyboard/planck/keymaps/yang/planck-with-rgb-underglow.jpg +++ /dev/null diff --git a/keyboard/planck/old_keymap_files/common_keymaps/keymap_brett.c b/keyboard/planck/old_keymap_files/common_keymaps/keymap_brett.c deleted file mode 100644 index 97d832b47a..0000000000 --- a/keyboard/planck/old_keymap_files/common_keymaps/keymap_brett.c +++ /dev/null @@ -1,42 +0,0 @@ -#include "keymap_common.h" - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( - ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC, - LCTL, A, S, D, F, G, H, J, K, L, SCLN, ENT, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, - TAB, LGUI, RSFT, LALT, FN2, SPC, FN1, LEFT, DOWN, UP, RGHT), -[1] = KEYMAP( /* RAISE */ - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, DEL, - TRNS, F1, F2, F3, F4, F5, F6, 4, 5, 6, QUOT, TRNS, - TRNS, F7, F8, F9, F10, F11, F12, 1, 2, 3, TRNS, PGUP, - MPRV, MNXT, TRNS, MUTE, TRNS, TRNS, FN1, 0, 0, TRNS, PGDN), -[2] = KEYMAP( /* LOWER */ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MINS, - TRNS, TRNS, TRNS, PAUSE, TRNS, TRNS, TRNS, TRNS, LBRC, RBRC, BSLS, EQL, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - MPLY, MSTP, VOLU, VOLD, FN2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), -}; -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay - [2] = ACTION_LAYER_MOMENTARY(2), // to Fn overlay - - [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), - [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), - - [29] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE), -}; diff --git a/keyboard/planck/old_keymap_files/common_keymaps/keymap_dotcom.c b/keyboard/planck/old_keymap_files/common_keymaps/keymap_dotcom.c deleted file mode 100644 index 347f6dea91..0000000000 --- a/keyboard/planck/old_keymap_files/common_keymaps/keymap_dotcom.c +++ /dev/null @@ -1,34 +0,0 @@ -#include "keymap_common.h" - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( - ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC, - FN1, A, S, D, F, G, H, J, K, L, SCLN, ENT, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, LBRC, - LCTL, BSLS, QUOT, LALT, FN22, SPC, LEFT, UP, DOWN, RGHT, RBRC), -[1] = KEYMAP( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, DEL, - TRNS, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, TRNS, TRNS, TRNS, - TRNS, FN18, FN19, FN22, EQL, MINS, FN20, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN1, TRNS, VOLD, VOLU, TRNS), -}; -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay - - [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), - [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), -}; diff --git a/keyboard/planck/old_keymap_files/common_keymaps/keymap_jack.c b/keyboard/planck/old_keymap_files/common_keymaps/keymap_jack.c deleted file mode 100644 index c74812121f..0000000000 --- a/keyboard/planck/old_keymap_files/common_keymaps/keymap_jack.c +++ /dev/null @@ -1,50 +0,0 @@ -#include "keymap_common.h" - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( /* Jack */ - TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC, - ESC, A, S, D, F, G, H, J, K, L, SCLN, QUOT, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ENT, - RSFT, LCTL, LALT, LGUI, FN2, SPC, FN1, LEFT, DOWN, UP, RGHT), -[1] = KEYMAP( /* Jack colemak */ - TAB, Q, W, F, P, G, J, L, U, Y, SCLN, BSPC, - ESC, A, R, S, T, D, H, N, E, I, O, QUOT, - LSFT, Z, X, C, V, B, K, M, COMM, DOT, SLSH, ENT, - FN3, LCTL, LALT, LGUI, FN2, SPC, FN1, LEFT, DOWN, UP, RGHT), -[2] = KEYMAP( /* Jack RAISE */ - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC, - TRNS, FN3, FN4, PAUSE, TRNS, TRNS, TRNS, MINS, EQL, LBRC, RBRC, BSLS, - TRNS, F11, F12, F13, F14, F15, F16, F17, F18, F19, F20, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN1, MNXT, VOLD, VOLU, MPLY), -[3] = KEYMAP( /* Jack LOWER */ - FN22, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, FN18, FN19, BSPC, - TRNS, FN3, FN4, PAUSE, TRNS, TRNS, TRNS, FN20, FN21, FN23, FN24, FN28, - TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, TRNS, - TRNS, TRNS, TRNS, TRNS, FN2, TRNS, TRNS, MNXT, VOLD, VOLU, MPLY), -}; -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to Fn overlay - [2] = ACTION_LAYER_MOMENTARY(3), // to Fn overlay - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - - [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), - [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), - - [29] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE), -}; diff --git a/keyboard/planck/old_keymap_files/common_keymaps/keymap_joe.c b/keyboard/planck/old_keymap_files/common_keymaps/keymap_joe.c deleted file mode 100644 index 598b0c455c..0000000000 --- a/keyboard/planck/old_keymap_files/common_keymaps/keymap_joe.c +++ /dev/null @@ -1,83 +0,0 @@ -#include "keymap_common.h" - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( /* Joe qwerty */ - ESC, Q, W, E, R, T, Y, U, I, O, P, MINS, - BSPC, A, S, D, F, G, H, J, K, L, SCLN, ENTER, - FN7, Z, X, C, V, B, N, M, COMM, DOT, SLSH, QUOT, - LCTL, LGUI, LALT, LSFT, FN1, SPC, FN0, LEFT, UP, DOWN, RGHT), -[1] = KEYMAP( /* Joe colemak */ - ESC, Q, W, F, P, G, J, L, U, Y, SCLN, MINS, - BSPC, A, R, S, T, D, H, N, E, I, O, ENTER, - FN7, Z, X, C, V, B, K, M, COMM, DOT, SLSH, QUOT, - LCTL, LGUI, LALT, LSFT, FN1, SPC, FN0, LEFT, UP, DOWN, RGHT), -[2] = KEYMAP( /* Joe UPPER */ - F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, - DEL, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, MENU, CAPS, INS, PSCR, TRNS, FN5, FN6, - TRNS, TRNS, TRNS, TRNS, FN2, TRNS, FN0, FN26, FN27, FN28, FN29), -[3] = KEYMAP( /* Joe LOWER */ - GRV, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN8, FN9, FN30, - BSPC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, TRNS, - BSLS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, RBRC, TRNS, EQL, - TRNS, TRNS, TRNS, TRNS, FN1, TRNS, FN2, HOME, PGUP, PGDN, END), -[4] = KEYMAP( /* Joe LOWER + UPPER */ - FN3, FN4, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, SLEP, - 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, MUTE, VOLD, VOLU, MPLY), -}; - -enum macro_id { - M_Q0, - M_Q1, - M_Q2 -}; - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_MOMENTARY(2), // to Fn overlay - [1] = ACTION_LAYER_MOMENTARY(3), // to Fn overlay - [2] = ACTION_LAYER_MOMENTARY(4), // to Fn overlay - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - - [5] = ACTION_MODS_KEY(MOD_LCTL, KC_PGUP), - [6] = ACTION_MODS_KEY(MOD_LCTL, KC_PGDN), - - /* tab on tap, shift on hold */ - [7] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_TAB), - - [8] = ACTION_MACRO(M_Q0), - [9] = ACTION_MACRO(M_Q1), - - [26] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_LEFT), - [27] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_UP), - [28] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_DOWN), - [29] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_RGHT), - - [30] = ACTION_MACRO(M_Q2), -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - keyevent_t event = record->event; - switch (id) { - case M_Q0: - /* :( | ): */ - return event.pressed ? - MACRO( D(LSFT), T(P), T(9), T(SPC), T(SPC), T(0), T(P), U(LSFT), T(LEFT), T(LEFT), T(LEFT), END ) : - MACRO_NONE; - case M_Q1: - /* (: | :) */ - return event.pressed ? - MACRO( D(LSFT), T(9), T(P), T(SPC), T(SPC), T(P), T(0), U(LSFT), T(LEFT), T(LEFT), T(LEFT), END ) : - MACRO_NONE; - case M_Q2: - /* :) */ - return event.pressed ? - MACRO( D(LSFT), T(P), T(0), U(LSFT), END ) : - MACRO_NONE; - } - return MACRO_NONE; -} diff --git a/keyboard/planck/old_keymap_files/common_keymaps/keymap_matthew.c b/keyboard/planck/old_keymap_files/common_keymaps/keymap_matthew.c deleted file mode 100644 index 56e7003a97..0000000000 --- a/keyboard/planck/old_keymap_files/common_keymaps/keymap_matthew.c +++ /dev/null @@ -1,70 +0,0 @@ -// by Matthew Pepers - https://github.com/pepers - -/* grid planck layout - modified programmer dvorak -,-----------------------------------------------------------------------------------------------. -| pause | @ | | | ^ | | | | | * | # | $ | del | -| esc | ; : | , < | . > | P | Y | F | G | G | C | R | bkspc | -| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | -|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------| -| & | / | { | ( | [ | = | ! | ] | ) | } | \ | + | -| ` ~ | A | O | E | U | I | D | H | T | N | S | - _ | -| % | 7 | 5 | 3 | 1 | 9 | 0 | 2 | 4 | 6 | 8 | ? | -|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------| -| | | | | | | | | | | | prtsc | -| tab | ' " | Q | J | K | X | B | M | W | V | Z | retrn | -| | | | | | | | | | | | insrt | -|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------| -| | | | | | | | | | | | | -| lctrl | lgui | lalt | ralt | lower | shift | space | raise | left | down | up | right | -| | | | | | | | | home | pgdn | pgup | end | -`-----------------------------------------------------------------------------------------------' -*/ - -#include "keymap_common.h" - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* 0: dvorak */ - [0] = KEYMAP_GRID( ESC, SCLN, COMM, DOT, P, Y, F, G, C, R, L, BSPC, \ - GRV, A, O, E, U, I, D, H, T, N, S, MINS, \ - TAB, QUOT, Q, J, K, X, B, M, W, V, Z, ENT, \ - LCTL, LGUI, LALT, RALT, FN1, LSFT, SPC, FN2, LEFT, DOWN, UP, RGHT), - - /* 1: lower (FN1) */ - [1] = KEYMAP_GRID( F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, \ - FN17, 7, 5, 3, 1, 9, 0, 2, 4, 6, 8, FN18, \ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, INS, \ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGDN, PGUP, END), - - /* 2: raise (FN2) */ - [2] = KEYMAP_GRID(PAUS, FN19, FN20, FN21, TRNS, TRNS, TRNS, TRNS, FN22, FN23, FN24, DEL, \ - FN10, SLSH, FN11, FN12, LBRC, EQL, FN13, RBRC, FN14, FN15, BSLS, FN16, \ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PSCR, \ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), - -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(1), // lower Fn layer - [2] = ACTION_LAYER_MOMENTARY(2), // raise Fn layer - - // lower row1 - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_5), // % - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_SLASH), // ? - - // raise row0 - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_2), // @ - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLASH), // | - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_6), // ^ - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_8), // * - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_3), // # - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_4), // $ - - // raise row1 - [10] = ACTION_MODS_KEY(MOD_LSFT, KC_7), // & - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRACKET), // { - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_9), // ( - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_1), // ! - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_0), // ) - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRACKET), // } - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_EQUAL), // + -}; diff --git a/keyboard/planck/old_keymap_files/common_keymaps/keymap_mitch.c b/keyboard/planck/old_keymap_files/common_keymaps/keymap_mitch.c deleted file mode 100644 index f7df7bbbaa..0000000000 --- a/keyboard/planck/old_keymap_files/common_keymaps/keymap_mitch.c +++ /dev/null @@ -1,49 +0,0 @@ -#include "keymap_common.h" - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( - TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC, - LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, FN3, - ESC, DEL, LALT, LGUI, FN2, SPC, FN1, LEFT, DOWN, UP, RGHT), -[1] = KEYMAP( - GRV, GRV, FN22, FN19, FN10, TRNS, TRNS, 7, 8, 9, 0, BSPC, - TRNS, LBRC, RBRC, FN23, FN24, TRNS, TRNS, 4, 5, 6, TRNS, BSLS, - TRNS, MINS, FN20, EQL, FN21, TRNS, TRNS, 1, 2, 3, TRNS, ENT, - TRNS, TRNS, TRNS, TRNS, TRNS, SPC, FN1, TRNS, PGDN, PGUP, TRNS), -[2] = KEYMAP( - FN26, FN10, FN11, FN12, FN13, FN14, FN15, FN17, FN18, FN19, FN10, DEL, - TRNS, TRNS, MUTE, VOLD, VOLU, TRNS, BSPC, FN14, FN15, FN16, TRNS, FN25, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN11, FN12, FN13, TRNS, ENT, - TRNS, TRNS, TRNS, TRNS, FN2, ENT, TRNS, TRNS, PGDN, PGUP, TRNS), -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(1), // Switch layer raise - [2] = ACTION_LAYER_MOMENTARY(2), // Switch layer lower - - [3] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), // Right shift serves as Enter on tap - - // Numeric shift modifiers - [10] = ACTION_MODS_KEY(MOD_LSFT, KC_0), - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_1), - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_2), - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_3), - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_4), - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_5), - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_6), - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_7), - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_8), - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_9), - - // Other shift modifiers - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // _ - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // + - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // ~ - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), // { - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), // } - [25] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), // | - - // Switch windows in app - [26] = ACTION_MODS_KEY(MOD_LGUI, KC_GRV), -}; diff --git a/keyboard/planck/old_keymap_files/common_keymaps/keymap_nathan.c b/keyboard/planck/old_keymap_files/common_keymaps/keymap_nathan.c deleted file mode 100644 index 5a0900b66d..0000000000 --- a/keyboard/planck/old_keymap_files/common_keymaps/keymap_nathan.c +++ /dev/null @@ -1,153 +0,0 @@ -// Author: Nathan Ross Powell <nathanrospowell@gmail.com> -// https://github.com/nathanrosspowell/tmk_keyboard/blob/planck-jack/keyboard/planck/keymap_nathan.c - -#include "keymap_common.h" - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* 0: main layer - * ,-----------------------------------------------------------------------. - * |Tab | q | w | e | r | t | y | u | i | o | p | BS | - * |-----------------------------------------------------------------------| - * |Ctrl | a | s | d | f | g | h | j | k | l | ; | Ret | - * |-----------------------------------------------------------------------| - * |Shift| z | x | c | v | b | n | m | [ | ( | { | < | - * |-----------------------------------------------------------------------| - * |Meta | \ | / | Alt |Lower|Space|Space|Upper|Left |Down | Up |Right| - * `-----------------------------------------------------------------------' - */ - [0] = KEYMAP_GRID( - TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC, - LCTL, A, S, D, F, G, H, J, K, L, SCLN, ENT, - RSFT, Z, X, C, V, B, N, M, LBRC, FN10, FN11, FN12, - LGUI, BSLS, SLSH, LALT, FN0, SPC, SPC, FN1, LEFT, DOWN, UP, RGHT), - - /* 1: fn left/lower layer - * The top row are Visual Studio combos: - * 'Run', 'Breakpoint', 'Step over', 'Step into', 'Set cursor to line' - * 2nd row are key combos: - * 'ctrl-alt-delete', 'ctrl-shift-escape' - * 3rd row are macros keys: - * 'P0' - 'P5' execute a script on Windows machines - * ,-----------------------------------------------------------------------. - * | ESC | F5 | F9 | F10 | F11 |S+F11|CSF10|NLock|Num7 |Num8 |Num9 | Del | - * |-----------------------------------------------------------------------| - * | |C/A/D|C/S/E| Ins |Print|Pause|SLock|Num0 |Num4 |Num5 |Num6 |Num= | - * |-----------------------------------------------------------------------| - * | | P0 | P1 | P2 | P3 | P4 | P5 |Num. |Num1 |Num2 |Num3 |Num/ | - * |-----------------------------------------------------------------------| - * | |User | | | | | | |Home |PgDn |PgUp | End | - * `-----------------------------------------------------------------------' - */ - [1] = KEYMAP_GRID( - ESC, F5, F9, F10, F11, FN30, FN31, NLCK, P7, P8, P9, DEL, - TRNS, FN16, FN17, INS, PSCR, PAUS, SLCK, P0, P4, P5, P6, PEQL, - TRNS, FN2, FN3, FN4, FN5, FN6, FN7, PDOT, P1, P2, P3, PSLS, - TRNS, FN8, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGDN, PGUP, END ), - - /* 2: fn right/raise layer - * ,-----------------------------------------------------------------------. - * | F1 | F2 | F3 | F4 |F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | - * |-----------------------------------------------------------------------| - * | | ! | @ | # | $ | % | ^ | & | * | - | + | = | - * |-----------------------------------------------------------------------| - * | | _ | ' | " | ` | ~ | , | . | ] | ) | } | > | - * |-----------------------------------------------------------------------| - * | |NextT|PrevT| | | | Esc | |Mute |Vol- |Vol+ | P/P | - * `-----------------------------------------------------------------------' - */ - [2] = KEYMAP_GRID( - F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, - TRNS, FN18, FN19, FN20, FN21, FN22, FN23, FN24, FN25, MINS, FN26, PAST, - TRNS, FN27, QUOT, FN28, GRV, FN29, COMM, DOT, RBRC, FN13, FN14, FN15, - TRNS, MNXT, MPRV, TRNS, TRNS, TRNS, ESC, TRNS, MUTE, VOLD, VOLU, MPLY ), -}; - -enum macro_id { - M_P0, - M_P1, - M_P2, - M_P3, - M_P4, - M_P5, - M_USERNAME -}; - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_MOMENTARY(1), // left/lower layer - [1] = ACTION_LAYER_MOMENTARY(2), // right/raise layer - // Program macros - [2] = ACTION_MACRO(M_P0), - [3] = ACTION_MACRO(M_P1), - [4] = ACTION_MACRO(M_P2), - [5] = ACTION_MACRO(M_P3), - [6] = ACTION_MACRO(M_P4), - [7] = ACTION_MACRO(M_P5), - [8] = ACTION_MACRO(M_USERNAME), - // Braces - [10] = ACTION_MODS_KEY(MOD_LSFT, KC_9), // ( - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), // { - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_COMMA), // < - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_0), // ) - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), // } - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_DOT), // > - // Combo - [16] = ACTION_MODS_KEY(MOD_LALT | MOD_LCTL, KC_DEL), // Ctrl+Alt+Delete - [17] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_ESC), // Ctrl+Shft+Escape - // Symbols - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_1), // ! - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_2), // @ - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_3), // # - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_4), // $ - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_5), // % - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_6), // ^ - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_7), // & - [25] = ACTION_MODS_KEY(MOD_LSFT, KC_8), // * - [26] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // + - [27] = ACTION_MODS_KEY(MOD_LSFT, KC_MINUS), // _ - [28] = ACTION_MODS_KEY(MOD_LSFT, KC_QUOTE), // " - [29] = ACTION_MODS_KEY(MOD_LSFT, KC_GRAVE), // ~ - // Debugging - [30] = ACTION_MODS_KEY(MOD_LSFT, KC_F11), // Step into - [31] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_F10), // Set cursor to line - }; - -// Run a script and pass a key number to it. This is Windows specific and the script needs to be on your path. -// *open run dialog* keypress.py [PRG_NUM] -#define ADD_PYTHON_PROGRAM_ON_WIN( PRG_NUM ) MACRO( D(LGUI), T(R), U(LGUI), W(100), T(K), T(E), T(Y), T(P), T(R), T(E), T(S), T(S), T(DOT), T(P), T(Y), T(SPC), T(PRG_NUM), END ) -// *return* -#define RUN_PYTHON_PROGRAM_ON_WIN MACRO( T(ENT), END ) - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - keyevent_t event = record->event; - switch (id) { - case M_P0: - return event.pressed ? - ADD_PYTHON_PROGRAM_ON_WIN( 0 ) : - RUN_PYTHON_PROGRAM_ON_WIN; - case M_P1: - return event.pressed ? - ADD_PYTHON_PROGRAM_ON_WIN( 1 ) : - RUN_PYTHON_PROGRAM_ON_WIN; - case M_P2: - return event.pressed ? - ADD_PYTHON_PROGRAM_ON_WIN( 2 ) : - RUN_PYTHON_PROGRAM_ON_WIN; - case M_P3: - return event.pressed ? - ADD_PYTHON_PROGRAM_ON_WIN( 3 ) : - RUN_PYTHON_PROGRAM_ON_WIN; - case M_P4: - return event.pressed ? - ADD_PYTHON_PROGRAM_ON_WIN( 4 ) : - RUN_PYTHON_PROGRAM_ON_WIN; - case M_P5: - return event.pressed ? - ADD_PYTHON_PROGRAM_ON_WIN( 5 ) : - RUN_PYTHON_PROGRAM_ON_WIN; - case M_USERNAME: - return event.pressed ? - MACRO( T(N), T(A), T(T), T(H), T(A), T(N), T(R), T(O), T(S), T(S), T(P), T(O), T(W), T(E), T(L), T(L), END ) : - MACRO_NONE; - } - return MACRO_NONE; -} diff --git a/keyboard/planck/old_keymap_files/common_keymaps/keymap_paul.c b/keyboard/planck/old_keymap_files/common_keymaps/keymap_paul.c deleted file mode 100644 index 49c90e0196..0000000000 --- a/keyboard/planck/old_keymap_files/common_keymaps/keymap_paul.c +++ /dev/null @@ -1,49 +0,0 @@ -#include "keymap_common.h" - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( /* Paul */ - TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC, - FN1, A, S, D, F, G, H, J, K, L, SCLN, QUOT, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ENT, - ESC, LCTL, LALT, LGUI, FN2, SPC, FN3, LEFT, DOWN, UP, RGHT), -[1] = KEYMAP( /* Paul FN */ - TRNS, TRNS, TRNS, FN8, FN9, TRNS, TRNS, TRNS, TRNS, MUTE, VOLD, VOLU, - FN1, TRNS, TRNS, HOME, END, TRNS, TRNS, TRNS, TRNS, MPRV, MPLY, MNXT, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LEFT, DOWN, RGHT), -[2] = KEYMAP( /* Paul LOWER */ - FN22, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, FN18, FN19, BSPC, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN20, FN21, FN23, FN24, FN28, - TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, TRNS, - TRNS, TRNS, TRNS, TRNS, FN2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), -[3] = KEYMAP( /* Paul RAISE */ - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MINS, EQL, LBRC, RBRC, BSLS, - TRNS, F11, F12, F13, F14, F15, F16, F17, F18, F19, F20, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN3, TRNS, TRNS, TRNS, TRNS), -}; -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(1), // to Fn1 overlay (FN) - [2] = ACTION_LAYER_MOMENTARY(2), // to Fn2 overlay (LOWER) - [3] = ACTION_LAYER_MOMENTARY(3), // to Fn3 overlay (RAISE) - - [8] = ACTION_MODS_KEY(MOD_LSFT, KC_HOME), - [9] = ACTION_MODS_KEY(MOD_LSFT, KC_END), - [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), - [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), - -}; diff --git a/keyboard/planck/old_keymap_files/common_keymaps/keymap_peasant.c b/keyboard/planck/old_keymap_files/common_keymaps/keymap_peasant.c deleted file mode 100644 index ddacb614e6..0000000000 --- a/keyboard/planck/old_keymap_files/common_keymaps/keymap_peasant.c +++ /dev/null @@ -1,51 +0,0 @@ -#include "keymap_common.h" - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP( /* Native */ - ESC, Q, W, E, R, T, Y, U, I, O, P, FN2, - BSPC, A, S, D, F, G, H, J, K, L, SCLN, QUOT, - TAB, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ENT, - DEL, LCTL, NO, LSFT, LALT, SPC, NO, LEFT, DOWN, UP, RGHT), - [1] = KEYMAP( /* QWERTY->PHOTOSHOP */ - DELETE, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, FN1, - O, G, S, U, T, FN27, F21, F10, F11, F7, F8, F9, - TAB, FN4, FN5, FN6, F1, FN7, F18, F19, F23, F20, F22, FN9, - COMM, DOT, FN10, FN11, FN3, SPC, FN12, F2, FN8, F3, F14), - [2] = KEYMAP( /* 2: FN3 PHOTOSHOP */ - ESC, FN25, FN26, NO, NO, NO, NO, NO, NO, NO, NO, NO, - NO, NO, NO, NO, NO, NO, NO, NO, NO, FN19, FN20, FN21, - C, NO, FN22, FN5, NO, FN23, NO, NO, NO, NO, FN13, NO, - FN14, FN15, FN16, FN17, FN3, SPC, FN18, NO, NO, F24, NO), -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_DEFAULT_LAYER_SET(0), // set Qwerty layout - [2] = ACTION_DEFAULT_LAYER_SET(1), // set Photoshop presets - [3] = ACTION_LAYER_ON_OFF(2), // Photoshop function layer - - [4] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F9), // photo folder AHK - [5] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_I), // select inverse - [6] = ACTION_MODS_KEY(MOD_LSFT, KC_M), // marquee select - [7] = ACTION_MODS_KEY(MOD_LALT, KC_BSPC), // fill - [8] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_X), // warp - [9] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT | MOD_LSFT, KC_F12), // merge all new layer - [10] = ACTION_MODS_KEY(MOD_LCTL, KC_MINS), // zoom out - [11] = ACTION_MODS_KEY(MOD_LCTL, KC_H), // RBG sliders - [12] = ACTION_MODS_KEY(MOD_LCTL, KC_S), // save - [13] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_F5), // layer mask from transparancy - [14] = ACTION_MODS_KEY(MOD_LALT, KC_LBRC), // prev layer - [15] = ACTION_MODS_KEY(MOD_LALT, KC_RBRC), // next layer - [16] = ACTION_MODS_KEY(MOD_LCTL, KC_EQL), // zoom in - [17] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_H), // HSV sliders - [18] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F11), // save as PNG - [19] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F7), // gaussian blur - [20] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F8), // motion blur - [21] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_X), // liquify filter - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // prev layer blending - [23] = ACTION_MODS_KEY(MOD_LSFT | MOD_LALT, KC_N), // normal layer blending - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // next layer blending - [25] = ACTION_MODS_KEY(MOD_LCTL, KC_Z), // step back - [26] = ACTION_MODS_KEY(MOD_LCTL, KC_Y), // step forward - [27] = ACTION_MODS_KEY(MOD_LCTL, KC_R), // rasterize - -}; diff --git a/keyboard/planck/old_keymap_files/common_keymaps/keymap_reed.c b/keyboard/planck/old_keymap_files/common_keymaps/keymap_reed.c deleted file mode 100644 index 1aa24e10de..0000000000 --- a/keyboard/planck/old_keymap_files/common_keymaps/keymap_reed.c +++ /dev/null @@ -1,74 +0,0 @@ -#include "keymap_common.h" - -/* - * BUILD: - * Simply run the command below in the keyboard/planck directory - * to build against this keymap - * - * make KEYMAP=reed COMMON_KEYMAP=true - * - * - * DETAILS: - * - * This layout works off of Jack's layout, making some changes that I - * feel significantly improve the function of the keyboard. Major changes - * include adding a "gaming mode" that will allow users to still access - * the number keys 1 through 4 easily for games that require it. Also - * included is the ability to use the tap/hold function for easy use of - * right shift and thumb shift with their tapped companions. - * - */ -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP_GRID( /* Reed */ - ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC, - TAB, A, S, D, F, G, H, J, K, L, SCLN, QUOT, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, FN5, - LCTL, CAPS, LALT, LGUI, FN2, FN7, SPC, FN1, LEFT, DOWN, UP, RGHT), - -[1] = KEYMAP_GRID( /* Reed EXTREME GAMING */ - ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC, - TAB, A, S, D, F, G, H, J, K, L, SCLN, QUOT, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, FN5, - LCTL, 1, 2, 3, 4, SPC, FN2, FN1, LEFT, DOWN, UP, RGHT), - -[2] = KEYMAP_GRID( /* Reed RAISE */ - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC, - TRNS, FN3, FN4, PAUSE, TRNS, TRNS, TRNS, MINS, EQL, LBRC, RBRC, BSLS, - TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN1, MNXT, VOLD, VOLU, MPLY), - -[3] = KEYMAP_GRID( /* Reed LOWER */ - TRNS, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, FN18, FN19, DEL, - TRNS, TRNS, INS, HOME, PGUP, TRNS, TRNS, FN20, FN21, FN23, FN24, FN28, - TRNS, TRNS, DEL, END, PGDN, F11, F12, F13, TRNS, VOLD, VOLU, TRNS, - TRNS, TRNS, TRNS, TRNS, FN2, TRNS, TRNS, TRNS, MPRV, MUTE, MPLY, MNXT), -}; -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to Fn overlay - RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to Fn overlay - LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - // Actions for the tap/hold modifiers listed above - [5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), - [7] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_BSPC), - - [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), - [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), - - [29] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE), -}; diff --git a/keyboard/planck/old_keymap_files/common_keymaps/keymap_sean.c b/keyboard/planck/old_keymap_files/common_keymaps/keymap_sean.c deleted file mode 100644 index cb2ef8f138..0000000000 --- a/keyboard/planck/old_keymap_files/common_keymaps/keymap_sean.c +++ /dev/null @@ -1,53 +0,0 @@ -#include "keymap_common.h" - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP( /* Matrix Dvorak */ - QUOT, COMM, DOT, P, Y, SLSH, EQL, F, G, C, R, L, - A, O, E, U, I, ESC, BSPC, D, H, T, N, S, - SCLN, Q, J, K, X, TAB, ENT, B, M, W, V, Z, - LSFT, LCTL, LALT, LGUI, FN1, SPC, FN2, LEFT, DOWN, UP, RGHT), - - [1] = KEYMAP( /* Matrix Qwerty */ - Q, W, E, R, T, QUOT, EQL, Y, U, I, O, P, - A, S, D, F, G, ESC, BSPC, H, J, K, L, SCLN, - Z, X, C, V, B, TAB, ENT, N, M, COMM, DOT, SLSH, - LSFT, LCTL, LALT, LGUI, FN1, SPC, FN2, LEFT, DOWN, UP, RGHT), - - [2] = KEYMAP( /* fn1 lower */ - F1, F2, F3, F4, F5, NO, NO, F6, F7, F8, F9, F10, - 1, 2, 3, 4, 5, F18, DEL, 6, 7, 8, 9, 0, - FN3, FN4, FN28, GRV, MINS, TRNS, INS, BSLS, LBRC, RBRC, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGDN, PGUP, END), - - [3] = KEYMAP( /* fn2 raise */ - MRWD, MPLY, MFFD, NO, NO, FN21, FN22, EJCT, PWR, LSFT,PAUSE, RSFT, - FN11, FN12, FN13, FN14, FN15, F18, DEL, FN16, FN17, FN18, FN19, FN20, - FN3, FN4, FN28, FN23, FN24, TRNS, INS, FN25, FN26, FN27, MPRV, MNXT, - TRNS, TRNS, TRNS, TRNS, FN1, TRNS, FN2, NO, VOLD, VOLU, MUTE), -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to Fn overlay LOWER - [2] = ACTION_LAYER_MOMENTARY(3), // to Fn overlay RAISE - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_1), - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_2), - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_3), - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_4), - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_5), - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_6), - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_7), - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_8), - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_9), - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_0), - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_SLSH), - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), - [25] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), - [26] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), - [27] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), - [28] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE), -}; diff --git a/keyboard/planck/old_keymap_files/common_keymaps/keymap_shane.c b/keyboard/planck/old_keymap_files/common_keymaps/keymap_shane.c deleted file mode 100644 index 8d5ad68753..0000000000 --- a/keyboard/planck/old_keymap_files/common_keymaps/keymap_shane.c +++ /dev/null @@ -1,98 +0,0 @@ -#include "keymap_common.h" -#include "action_layer.h" -#include "action.h" -#include "action_util.h" - -/* - Shane's Planck Layout - http://www.keyboard-layout-editor.com/#/layouts/015d9011102619d7695c86ffe57cf441 -*/ -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = KEYMAP_AND_SWAP( /* Base */ - TAB, Q, W, E, R, T, Y, U, I, O, P, MINS, - LCTL, A, S, D, F, G, H, J, K, L, SCLN, BSPC, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, FN5, - /*ALPHA*/FN3, /*HYPER*/ /*SUPER*/LGUI, /*META*/LALT, LCTL, FN2, FN6, FN1, LEFT, DOWN, UP, RGHT), - [2] = KEYMAP_AND_SWAP( /* More modifiers */ - 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, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RCTL, RALT, RGUI, TRNS), - [4] = KEYMAP_AND_SWAP( /* WASD */ - TRNS, TRNS, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, LEFT, DOWN, RIGHT, 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), - [6] = KEYMAP_AND_SWAP( /* Raise/FN1 */ - FN23, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, EQL, - TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, ENT, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, BSLS, TRNS, - PAUS, TRNS, TRNS, TRNS, TRNS, BSPC, TRNS, MUTE, PGUP, PGDN, MNXT), - [8] = KEYMAP_AND_SWAP( /* Lower/FN2 */ - ESC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN19, FN20, TRNS, - TRNS, TRNS, TRNS, TRNS, CAPS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, QUOT, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN24, FN25, LBRC, RBRC, TRNS, TRNS, - FN4, TRNS, TRNS, TRNS, TRNS, ENT, TRNS, MPLY, VOLD, VOLU, MPRV), -}; - -enum function_id { - SPACE_FN, -}; - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch (id) { - case SPACE_FN: - if (record->event.pressed) { - // Change the keyboard maps. - // Whatever even layer's are on, turn on the odd one's too. - for (uint8_t i = 0; i < 9; i += 2) { - if (layer_state & (1UL << i)) - layer_on(i + 1); - } - layer_on(1); - } else { - // turn off all the even layers. - for (uint8_t i = 0; i < 9; i += 2) - layer_off(i + 1); - - if (record->tap.count != 0) { - // Space was tapped rather than used like a modifier. - // So send a space up and down event. - add_key(KC_SPC); - send_keyboard_report(); - del_key(KC_SPC); - send_keyboard_report(); - } - } - break; - } -} - - - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(6), // to fist Fn overlay - [2] = ACTION_LAYER_MOMENTARY(8), // to second Fn overlay - [3] = ACTION_LAYER_TOGGLE(2), // toggle more modifiers - [4] = ACTION_LAYER_TOGGLE(4), // toggle wasd - [5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), - [6] = ACTION_FUNCTION_TAP(SPACE_FN), - - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_1), - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_2), - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_3), - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_4), - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_5), - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_6), - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_7), - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_8), - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_9), - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_0), - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), - [25] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), - [26] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), -};
\ No newline at end of file diff --git a/keyboard/planck/old_keymap_files/common_keymaps/keymap_simon.c b/keyboard/planck/old_keymap_files/common_keymaps/keymap_simon.c deleted file mode 100644 index 37951364be..0000000000 --- a/keyboard/planck/old_keymap_files/common_keymaps/keymap_simon.c +++ /dev/null @@ -1,44 +0,0 @@ -#include "keymap_common.h" - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( /* Jack */ - ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC, - TAB, A, S, D, F, G, H, J, K, L, DOT, ENT, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SCLN, DEL, - LCTL, ENT, LALT, CAPS, FN2, SPC, FN1, LEFT, DOWN, UP, RGHT), -[1] = KEYMAP( /* Jack RAISE */ - TRNS, F1, F2, F3, F4, NO, FN11, FN9, FN12, NO, FN14, TRNS, - TRNS, F5, F6, F7, F8, FN16, SLSH, MINS, EQL, LBRC, FN8, TRNS, - TRNS, F9, F10, F11, F12, F15, F16, FN22, SCLN, MINS, QUOT, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), -[2] = KEYMAP( /* Jack LOWER */ - FN22, 1, 2, 3, FN13, FN14, FN15, FN16, FN17, FN18, FN19, BSPC, - TRNS, 4, 5, 6, TRNS, TRNS, TRNS, FN20, FN21, FN23, FN24, FN28, - TRNS, 7, 8, 9, 0, FN28, FN15, F7, F8, F9, F10, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), -}; -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay - [2] = ACTION_LAYER_MOMENTARY(2), // to Fn overlay - - [8] = ACTION_MODS_KEY(MOD_LSFT, KC_SLSH), - [9] = ACTION_MODS_KEY(MOD_LSFT, KC_QUOT), - [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), - [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), - - [29] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE), -}; diff --git a/keyboard/planck/old_keymap_files/common_keymaps/keymap_tim.c b/keyboard/planck/old_keymap_files/common_keymaps/keymap_tim.c deleted file mode 100644 index 7444f3877b..0000000000 --- a/keyboard/planck/old_keymap_files/common_keymaps/keymap_tim.c +++ /dev/null @@ -1,44 +0,0 @@ -#include "keymap_common.h" - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( - ESC, Q, W, E, R, T, Y, U, I, O, P, 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, - LCTL, LALT, DEL, LGUI, FN2, SPC, FN1, F2, F5, F9, F12), -[2] = KEYMAP( /* RAISE */ - TRNS, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC, - GRV, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MINS, EQL, LBRC, RBRC, BSLS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, QUOT, FN29, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN1, TRNS, TRNS, TRNS, TRNS), -[3] = KEYMAP( /* LOWER */ - TRNS, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, FN18, FN19, BSPC, - FN22, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN20, FN21, FN23, FN24, FN28, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, QUOT, FN29, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, FN2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), -}; -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to Fn overlay - [2] = ACTION_LAYER_MOMENTARY(3), // to Fn overlay - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - - [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), - [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), - [29] = ACTION_MODS_KEY(MOD_LSFT, KC_QUOT), -}; diff --git a/keyboard/planck/old_keymap_files/common_keymaps/keymap_wilba.c b/keyboard/planck/old_keymap_files/common_keymaps/keymap_wilba.c deleted file mode 100644 index 9781f8fcd8..0000000000 --- a/keyboard/planck/old_keymap_files/common_keymaps/keymap_wilba.c +++ /dev/null @@ -1,56 +0,0 @@ -#include "keymap_common.h" - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( /* Wilba */ - FN27, FN28, FN29, E, R, T, Y, U, I, O, P, BSPC, - TAB, A, S, D, F, G, H, J, K, L, SCLN, QUOT, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ENT, - LCTL, LGUI, LALT, RSFT, FN1, SPC, FN2, LEFT, DOWN, UP, RGHT), -[1] = KEYMAP( /* Wilba Alternate */ - ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC, - TAB, A, S, D, F, G, H, J, K, L, SCLN, QUOT, - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ENT, - LCTL, LGUI, LALT, RSFT, FN1, SPC, FN2, LEFT, DOWN, UP, RGHT), -[2] = KEYMAP( /* Wilba LOWER */ - TRNS, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, TRNS, - TRNS, F11, F12, LBRC, RBRC, FN20, EQL, FN23, FN24, MINS, FN21, TRNS, - TRNS, BSLS, GRV, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, FN1, TRNS, TRNS, MNXT, VOLD, VOLU, MPLY), -[3] = KEYMAP( /* Wilba RAISE */ - TRNS, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, FN18, FN19, TRNS, - TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, TRNS, - TRNS, FN25, FN22, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN2, TRNS, TRNS, TRNS, TRNS), -}; -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // LOWER - [2] = ACTION_LAYER_MOMENTARY(3), // RAISE - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - - [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), // ! - [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), // @ - [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), // # - [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), // $ - [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), // % - [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), // ^ - [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), // & - [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), // * - [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), // ( - [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), // ) - - [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // _ - [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // + - [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // ~ - [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), // { - [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), // } - [25] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), // | - - [26] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE), - - [27] = ACTION_BACKLIGHT_TOGGLE(), - [28] = ACTION_BACKLIGHT_INCREASE(), - [29] = ACTION_BACKLIGHT_DECREASE() - -}; diff --git a/keyboard/planck/old_keymap_files/keymap_common.c b/keyboard/planck/old_keymap_files/keymap_common.c deleted file mode 100644 index fdb1769e1c..0000000000 --- a/keyboard/planck/old_keymap_files/keymap_common.c +++ /dev/null @@ -1,30 +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 "keymap_common.h" - - -/* translates key to keycode */ -uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key) -{ - return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]); -} - -/* translates Fn keycode to action */ -action_t keymap_fn_to_action(uint8_t keycode) -{ - return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) }; -} diff --git a/keyboard/planck/old_keymap_files/keymap_common.h b/keyboard/planck/old_keymap_files/keymap_common.h deleted file mode 100644 index d46df92876..0000000000 --- a/keyboard/planck/old_keymap_files/keymap_common.h +++ /dev/null @@ -1,129 +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 KEYMAP_COMMON_H -#define KEYMAP_COMMON_H - -#include <stdint.h> -#include <stdbool.h> -#include <avr/pgmspace.h> -#include "keycode.h" -#include "action.h" -#include "action_macro.h" -#include "report.h" -#include "host.h" -// #include "print.h" -#include "debug.h" -#include "keymap.h" - - -extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; -extern const uint16_t fn_actions[]; - - -// MIT Layout -/* - * ,-----------------------------------------------------------------------. - * | | | | | | | | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------' - */ -#define KEYMAP( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ - K30, K31, K32, K33, K34, K35, K37, K38, K39, K3A, K3B \ -) { \ - { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B }, \ - { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B }, \ - { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B }, \ - { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K35, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B } \ -} - -// Grid Layout -/* - * ,-----------------------------------------------------------------------. - * | | | | | | | | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | | - * `-----------------------------------------------------------------------' - */ -#define KEYMAP_GRID( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B \ -) { \ - { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B }, \ - { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B }, \ - { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B }, \ - { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B } \ -} - -#define KEYMAP_REVERSE( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ - K30, K31, K32, K33, K34, K35, K37, K38, K39, K3A, K3B \ - ) { \ - { KC_##K0B, KC_##K0A, KC_##K09, KC_##K08, KC_##K07, KC_##K06, KC_##K05, KC_##K04, KC_##K03, KC_##K02, KC_##K01, KC_##K00 }, \ - { KC_##K1B, KC_##K1A, KC_##K19, KC_##K18, KC_##K17, KC_##K16, KC_##K15, KC_##K14, KC_##K13, KC_##K12, KC_##K11, KC_##K10 }, \ - { KC_##K2B, KC_##K2A, KC_##K29, KC_##K28, KC_##K27, KC_##K26, KC_##K25, KC_##K24, KC_##K23, KC_##K22, KC_##K21, KC_##K20 }, \ - { KC_##K3B, KC_##K3A, KC_##K39, KC_##K38, KC_##K37, KC_##K35, KC_##K35, KC_##K34, KC_##K33, KC_##K32, KC_##K31, KC_##K30 }, \ - } - -#define KEYMAP_AND_REVERSE(args...) KEYMAP(args), KEYMAP_REVERSE(args) - -#define KEYMAP_SWAP( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ - K30, K31, K32, K33, K34, K35, K37, K38, K39, K3A, K3B \ - ) { \ - { KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05 }, \ - { KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15 }, \ - { KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25 }, \ - { KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K35, KC_##K35, KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34 }, \ -} - -#define KEYMAP_AND_SWAP(args...) KEYMAP(args), KEYMAP_SWAP(args) - -/* - Keymap for the Planck 48 key variant. - */ -#define KEYMAP_48( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B \ -) { \ - { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B }, \ - { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B }, \ - { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B }, \ - { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B }, \ -} - - -#endif diff --git a/keyboard/planck/planck.c b/keyboard/planck/planck.c deleted file mode 100644 index da7b3a1702..0000000000 --- a/keyboard/planck/planck.c +++ /dev/null @@ -1,306 +0,0 @@ -#include "planck.h" - -__attribute__ ((weak)) -void matrix_init_user(void) {} - -__attribute__ ((weak)) -void matrix_scan_user(void) {} - -__attribute__ ((weak)) -bool process_action_user(keyrecord_t *record) { - return true; -} - -__attribute__ ((weak)) -void led_set_user(uint8_t usb_led) {} - -void matrix_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_init_ports(); -#endif - -#ifdef RGBLIGHT_ENABLE - rgblight_init(); -#endif - - // Turn status LED on - DDRE |= (1<<6); - PORTE |= (1<<6); - - matrix_init_user(); -} - -void matrix_scan_kb(void) { - matrix_scan_user(); -} - -bool process_action_kb(keyrecord_t *record) { - return process_action_user(record); -} - -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - - led_set_user(usb_led); -} - -#ifdef BACKLIGHT_ENABLE -#define CHANNEL OCR1C -#define BREATHING_NO_HALT 0 -#define BREATHING_HALT_OFF 1 -#define BREATHING_HALT_ON 2 - -static uint8_t breath_intensity; -static uint8_t breath_speed; -static uint16_t breathing_index; -static uint8_t breathing_halt; - -void backlight_init_ports() -{ - - // 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(); - breathing_defaults(); -} - -void backlight_set(uint8_t level) -{ - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - - if ( level == 0 ) - { - // Turn off PWM control on PB7, revert to output low. - TCCR1A &= ~(_BV(COM1C1)); - CHANNEL = 0x0; - } - else if ( level == BACKLIGHT_LEVELS ) - { - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF; - } - else - { - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); - } - breathing_intensity_default(); -} - - -void breathing_enable(void) -{ - if (get_backlight_level() == 0) - { - breathing_index = 0; - } - else - { - // Set breathing_index to be at the midpoint (brightest point) - breathing_index = 0x20 << breath_speed; - } - - breathing_halt = BREATHING_NO_HALT; - - // Enable breathing interrupt - TIMSK1 |= _BV(OCIE1A); -} - -void breathing_pulse(void) -{ - if (get_backlight_level() == 0) - { - breathing_index = 0; - } - else - { - // Set breathing_index to be at the midpoint + 1 (brightest point) - breathing_index = 0x21 << breath_speed; - } - - breathing_halt = BREATHING_HALT_ON; - - // Enable breathing interrupt - TIMSK1 |= _BV(OCIE1A); -} - -void breathing_disable(void) -{ - // Disable breathing interrupt - TIMSK1 &= ~_BV(OCIE1A); - backlight_set(get_backlight_level()); -} - -void breathing_self_disable(void) -{ - if (get_backlight_level() == 0) - { - breathing_halt = BREATHING_HALT_OFF; - } - else - { - breathing_halt = BREATHING_HALT_ON; - } - - //backlight_set(get_backlight_level()); -} - -void breathing_toggle(void) -{ - if (!is_breathing()) - { - if (get_backlight_level() == 0) - { - breathing_index = 0; - } - else - { - // Set breathing_index to be at the midpoint + 1 (brightest point) - breathing_index = 0x21 << breath_speed; - } - - breathing_halt = BREATHING_NO_HALT; - } - - // Toggle breathing interrupt - TIMSK1 ^= _BV(OCIE1A); - - // Restore backlight level - if (!is_breathing()) - { - backlight_set(get_backlight_level()); - } -} - -bool is_breathing(void) -{ - return (TIMSK1 && _BV(OCIE1A)); -} - -void breathing_intensity_default(void) -{ - //breath_intensity = (uint8_t)((uint16_t)100 * (uint16_t)get_backlight_level() / (uint16_t)BACKLIGHT_LEVELS); - breath_intensity = ((BACKLIGHT_LEVELS - get_backlight_level()) * ((BACKLIGHT_LEVELS + 1) / 2)); -} - -void breathing_intensity_set(uint8_t value) -{ - breath_intensity = value; -} - -void breathing_speed_default(void) -{ - breath_speed = 4; -} - -void breathing_speed_set(uint8_t value) -{ - bool is_breathing_now = is_breathing(); - uint8_t old_breath_speed = breath_speed; - - if (is_breathing_now) - { - // Disable breathing interrupt - TIMSK1 &= ~_BV(OCIE1A); - } - - breath_speed = value; - - if (is_breathing_now) - { - // Adjust index to account for new speed - breathing_index = (( (uint8_t)( (breathing_index) >> old_breath_speed ) ) & 0x3F) << breath_speed; - - // Enable breathing interrupt - TIMSK1 |= _BV(OCIE1A); - } - -} - -void breathing_speed_inc(uint8_t value) -{ - if ((uint16_t)(breath_speed - value) > 10 ) - { - breathing_speed_set(0); - } - else - { - breathing_speed_set(breath_speed - value); - } -} - -void breathing_speed_dec(uint8_t value) -{ - if ((uint16_t)(breath_speed + value) > 10 ) - { - breathing_speed_set(10); - } - else - { - breathing_speed_set(breath_speed + value); - } -} - -void breathing_defaults(void) -{ - breathing_intensity_default(); - breathing_speed_default(); - breathing_halt = BREATHING_NO_HALT; -} - -/* Breathing Sleep LED brighness(PWM On period) table - * (64[steps] * 4[duration]) / 64[PWM periods/s] = 4 second breath cycle - * - * http://www.wolframalpha.com/input/?i=%28sin%28+x%2F64*pi%29**8+*+255%2C+x%3D0+to+63 - * (0..63).each {|x| p ((sin(x/64.0*PI)**8)*255).to_i } - */ -static const uint8_t breathing_table[64] PROGMEM = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 4, 6, 10, - 15, 23, 32, 44, 58, 74, 93, 113, 135, 157, 179, 199, 218, 233, 245, 252, -255, 252, 245, 233, 218, 199, 179, 157, 135, 113, 93, 74, 58, 44, 32, 23, - 15, 10, 6, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -}; - -ISR(TIMER1_COMPA_vect) -{ - // CHANNEL = (pgm_read_byte(&breathing_table[ ( (uint8_t)( (breathing_index++) >> breath_speed ) ) & 0x3F ] )) * breath_intensity; - - - uint8_t local_index = ( (uint8_t)( (breathing_index++) >> breath_speed ) ) & 0x3F; - - if (((breathing_halt == BREATHING_HALT_ON) && (local_index == 0x20)) || ((breathing_halt == BREATHING_HALT_OFF) && (local_index == 0x3F))) - { - // Disable breathing interrupt - TIMSK1 &= ~_BV(OCIE1A); - } - - CHANNEL = (uint16_t)(((uint16_t)pgm_read_byte(&breathing_table[local_index]) * 257)) >> breath_intensity; - -} - - - -#endif
\ No newline at end of file diff --git a/keyboard/planck/planck.h b/keyboard/planck/planck.h deleted file mode 100644 index 8aec6b2627..0000000000 --- a/keyboard/planck/planck.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef PLANCK_H -#define PLANCK_H - -#include "quantum.h" - -#define PLANCK_MIT( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ - k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \ -) \ -{ \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ - { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \ -} - -#define PLANCK_GRID( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \ -) \ -{ \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \ -} - -void matrix_init_user(void); -void matrix_scan_user(void); -bool process_action_user(keyrecord_t *record); - -void led_set_user(uint8_t usb_led); -void backlight_init_ports(void); - -void breathing_enable(void); -void breathing_pulse(void); -void breathing_disable(void); -void breathing_self_disable(void); -void breathing_toggle(void); -bool is_breathing(void); - - -void breathing_defaults(void); -void breathing_intensity_default(void); -void breathing_speed_default(void); -void breathing_speed_set(uint8_t value); -void breathing_speed_inc(uint8_t value); -void breathing_speed_dec(uint8_t value); - -#endif diff --git a/keyboard/planck/planck_pcb_r3.hex b/keyboard/planck/planck_pcb_r3.hex deleted file mode 100644 index 11f523c058..0000000000 --- a/keyboard/planck/planck_pcb_r3.hex +++ /dev/null @@ -1,1544 +0,0 @@ -:100000000C949D020C94E1020C94E1020C94E10228
-:100010000C94E1020C94E1020C94E1020C94E102D4
-:100020000C94E1020C94E1020C941C120C94EE125C
-:100030000C948D240C94E1020C94E1020C94E102E6
-:100040000C94E1020C94E1020C94E1020C94E102A4
-:100050000C94E1020C94FA240C94E1020C94E10259
-:100060000C94E1020C94E1020C94E1020C94E10284
-:100070000C94E1020C94E1020C94E1020C94E10274
-:100080000C94860A0C94E1020C94E1020C94E102B7
-:100090000C94E1020C94E1020C94E1020C94E10254
-:1000A0000C94E1020C94E1020C94E10207634236E5
-:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9
-:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD
-:1000D0000000803F08000000BE922449123EABAAF7
-:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52
-:1000F000AA3E00000000BF000000803F000000009A
-:1001000000084178D3BB4387D1133D190E3CC3BDD2
-:100110004282AD2B3E68EC8276BED98FE1A93E4C7F
-:1001200080EFFFBE01C4FF7F3F0000000000000021
-:10013000F1A4F1A3018C028C048C2B0014001A0092
-:100140000800150017001C0018000C001200130016
-:100150002A00290004001600070009000A000B000D
-:100160000D000E000F0033003400E1001D001B00E5
-:100170000600190005001100100036003700380095
-:1001800028000030E000E200E30002202C002C00F8
-:1001900001205000510052004F002B0014001A00A3
-:1001A000090013000A000D000F0018001C003300A6
-:1001B0002A002900040015001600170007000B0094
-:1001C000110008000C0012003400E1001D001B00AB
-:1001D0000600190005000E00100036003700380038
-:1001E00028000030E000E200E30002202C002C0098
-:1001F00001205000510052004F002B003400360007
-:10020000370013001C0009000A00060015000F004B
-:100210002A00290004001200080018000C00070042
-:100220000B001700110016003800E1003300140025
-:100230000D000E001B00050010001A0019001D0023
-:1002400028000030E000E200E30002202C002C0037
-:1002500001205000510052004F0035021E021F02C3
-:100260002002210222022302240225022602270262
-:100270002A0001003A003B003C003D003E003F00E8
-:100280002D022E022F0230023102010040004100F7
-:100290004200430044004500032004200520005094
-:1002A0000100010001000100010002200100010025
-:1002B0000100AB00AA00A900AE0035001E001F001F
-:1002C0002000210022002300240025002600270012
-:1002D0002A0001003A003B003C003D003E003F0088
-:1002E0002D002E002F0030003100010040004100A1
-:1002F0004200430044004500032004200520005034
-:1003000001000100010001000100010001000100E5
-:100310000120AB00AA00A900AE0028035400680029
-:100320006500200050006C0061006E0063006B00EF
-:1003300020004B006500790062006F0061007200D0
-:10034000640000002C034F007200740068006F000E
-:100350006C0069006E0065006100720020004B00B7
-:100360006500790062006F00610072006400730034
-:100370000000040309040902D000060100A03209AC
-:100380000400000103010100092111010001223FC5
-:10039000000705810308000A0904010001030102A6
-:1003A00000092111010001224D0007058203080008
-:1003B0000A090402000103000000092111010001E3
-:1003C0002236000705830308000A0904030002031C
-:1003D000000000092111010001222000070584030B
-:1003E00020000107050403200001090404000001A6
-:1003F00001000009240100010900010509040500AC
-:10040000020103000007240100014100062402014B
-:100410000100062402020200092403010301020173
-:10042000000924030204010101000905060240003D
-:1004300005000005250101010905850240000500B0
-:100440000005250101031201100100000008EDFE66
-:1004500060600100010200010631FF0974A1010979
-:1004600075150025FF952075088102097615002570
-:10047000FF952075089102C005010980A101850240
-:1004800016010026B7001A01002AB7007510950161
-:100490008100C0050C0901A1018503160100269CFD
-:1004A000021A01002A9C02751095018100C0050105
-:1004B0000902A1010901A100050919012905150079
-:1004C00025019505750181029501750381010501DD
-:1004D000093009311581257F950275088106093893
-:1004E0001581257F950175088106050C0A380215CE
-:1004F00081257F950175088106C0C005010906A107
-:1005000001050719E029E715002501950875018106
-:1005100002950175088101050819012905950575E0
-:100520000191029501750391010507190029FF1535
-:100530000025FF950675088100C011241FBECFEF6E
-:10054000DAE0DEBFCDBF04B603FE24C0809178039D
-:1005500090917903A0917A03B0917B038730904BFF
-:10056000A740B04BB9F4109278031092790310921F
-:100570007A0310927B0314BE84B7877F84BF88E11F
-:100580000FB6F89480936000109260000FBEE0E018
-:10059000F8E3099511E0A0E0B1E0E2EAFFE502C06E
-:1005A00005900D92A63BB107D9F713E0A6EBB1E099
-:1005B00001C01D92A837B107E1F70E94F90E0C9413
-:1005C000CF2F0C9400000895089561110DC0FC0117
-:1005D0008281882331F085EE0E949D190E94B62BFE
-:1005E00003C085EE0E94651A80E090E008958B3B81
-:1005F000910568F4883A910530F5853A9105C0F483
-:100600008430910598F4019709F06FC071C0803E65
-:10061000910508F46AC0883E910540F09C01205F76
-:1006200031092031310508F060C05CC09C01A1C0D7
-:10063000853A910509F45FC0863A910509F45EC0D8
-:1006400023E830E496C0883A910509F45AC0893A03
-:10065000910509F459C08A3A910509F458C08B3ABA
-:10066000910509F457C08C3A910509F456C08D3AAA
-:10067000910509F455C0803B910509F454C08E3AA8
-:10068000910509F453C08F3A910509F452C0813B9A
-:10069000910509F451C0823B910509F450C0833B98
-:1006A000910509F44FC0843B910509F44EC0853B88
-:1006B000910509F44DC0863B910509F44CC0873B78
-:1006C000910509F44BC0883B910509F44AC0893B68
-:1006D000910509F449C08A3B910509F048C02AE216
-:1006E00036E447C09C01306544C020E030E041C0A2
-:1006F00021E030E03EC021E830E43BC022E830E4B5
-:1007000038C022EE34E435C029EE34E432C02AEE9B
-:1007100034E42FC025EB34E42CC026EB34E429C0AC
-:1007200027EB34E426C02CEC34E423C02DEC34E475
-:1007300020C023E835E41DC02AE835E41AC022E9C8
-:1007400035E417C024E935E414C021E236E411C0D1
-:1007500023E236E40EC024E236E40BC025E236E4A0
-:1007600008C026E236E405C027E236E402C020E0F5
-:1007700034E4C90108959CE0799FF001112490E3CD
-:10078000899FE00DF11D1124E60FF11DEE0FFF1FF3
-:10079000E65CFE4F25913491C9010895880F991F99
-:1007A00082559040FC0125913491C9010895880F2C
-:1007B000991F825D9E4FFC0125913491C9010895D6
-:1007C0000E94BB039C013A9521153F4108F4DFC00C
-:1007D0009C0130522115304120F49F700E94D703B4
-:1007E00008959C0130532115304118F49927906CDD
-:1007F00008959C0130542031310520F48F709927E1
-:10080000946D0895803120E4920719F480E091ED11
-:100810000895813140E4940719F480E090ED089543
-:10082000823120E4920719F480E092ED089583313B
-:1008300040E4940719F480E093ED0895811520E5D4
-:10084000920711F40C941F25813040E5940731F490
-:100850008091680281608093680208959C013056FF
-:100860002115304108F402C097FF02C0906F08952F
-:10087000803E9105E0F4803C910568F58133910557
-:1008800009F474C048F48932910509F46AC08A32C7
-:10089000910509F07AC074C089339105F9F0823866
-:1008A0009105E1F08533910509F06FC050C0833E9A
-:1008B0009105A9F140F4803E9105C9F0823E910571
-:1008C00009F063C01BC0863E910571F1873E91051A
-:1008D00009F05BC037C00E94CE03089520917B02CF
-:1008E00020FD02C021FF51C080EE90E04EC08091FB
-:1008F0007B0280FFF9CF89E390E047C080917B02C3
-:1009000082FF0AC080917B0284FF03C080E090E0F8
-:100910003CC083EE90E039C082EE90E036C080911A
-:100920007B0282FFEFCFF8CF80917B0283FF07C06D
-:1009300080917B0284FDEACF87EE90E026C086EEB0
-:1009400090E023C080917B0283FFF2CFF8CF8091AB
-:100950007B0285FF03C089E290E017C085E390E049
-:1009600014C080917B0285FDF9CFF5CF80917B0289
-:1009700086FF03C08AE290E008C081E390E005C0F2
-:1009800080917B0286FDF9CFF5CF0E94F702089592
-:100990005F926F927F928F929F92AF92BF92CF920F
-:1009A000DF92EF92FF920F931F93CF93DF93CDB718
-:1009B000DEB728970FB6F894DEBF0FBECDBF9E01FD
-:1009C0002F5F3F4F4E0189E0880E911C60E070E080
-:1009D00000E010E0E12CF12CC12CD12CA12CB12C89
-:1009E00088E0782E622E532E41E050E0E3E2F1E001
-:1009F000A62DB52D872D01900D928A95E1F7F9016D
-:100A0000819191919F01FC01E07FFF27E032F10588
-:100A100059F48F709927FA0102C0EE0FFF1F8A95D3
-:100A2000E2F7AE2ABF2A37C0E033F10559F48F70E0
-:100A30009927FA0102C0EE0FFF1F8A95E2F7CE2A2E
-:100A4000DF2A29C0E034F10559F48F709927FA01A3
-:100A500002C0EE0FFF1F8A95E2F7EE2AFF2A1BC0A5
-:100A6000E035F10559F48F709927FA0102C0EE0FB5
-:100A7000FF1F8A95E2F70E2B1F2B0DC0E036F10504
-:100A800051F48F709927FA0102C0EE0FFF1F8A956B
-:100A9000E2F76E2B7F2B2815390509F0A7CF94B10B
-:100AA0008A2D8095892384B985B18A2985B997B122
-:100AB0008C2D8095892387B988B18C2988B99AB102
-:100AC0008E2D809589238AB98BB18E298BB99DB1E2
-:100AD000802F809589238DB98EB1802B8EB990B3EC
-:100AE000862F8095892380BB81B3862B81BB289676
-:100AF0000FB6F894DEBF0FBECDBFDF91CF911F912F
-:100B00000F91FF90EF90DF90CF90BF90AF909F90AC
-:100B10008F907F906F905F9008955F926F927F9219
-:100B20008F929F92AF92BF92CF92DF92EF92FF92FD
-:100B30000F931F93CF93DF93CDB7DEB768970FB6B0
-:100B4000F894DEBF0FBECDBF85B7806885BF85B77F
-:100B5000806885BF0E94CF076E9A769A0E94C8046B
-:100B60009E012F5F3F4F4E0189E1880E911C60E08E
-:100B700070E000E010E0E12CF12CC12CD12CA12C74
-:100B8000B12C98E1792E622E532E41E050E0EBE239
-:100B9000F1E0A62DB52D872D01900D928A95E1F7F4
-:100BA000F901819191919F01FC01E07FFF27E032E3
-:100BB000F10559F48F709927FA0102C0EE0FFF1F5B
-:100BC0008A95E2F7AE2ABF2A37C0E033F10559F41F
-:100BD0008F709927FA0102C0EE0FFF1F8A95E2F786
-:100BE000CE2ADF2A29C0E034F10559F48F70992705
-:100BF000FA0102C0EE0FFF1F8A95E2F7EE2AFF2AE4
-:100C00001BC0E035F10559F48F709927FA0102C035
-:100C1000EE0FFF1F8A95E2F70E2B1F2B0DC0E0365B
-:100C2000F10551F48F709927FA0102C0EE0FFF1FF2
-:100C30008A95E2F76E2B7F2B2815390509F0A7CF8F
-:100C400094B18A2D8095892384B985B18A2985B983
-:100C500097B18C2D8095892387B988B18C2988B963
-:100C60009AB18E2D809589238AB98BB18E298BB943
-:100C70009DB1802F809589238DB98EB1802B8EB93F
-:100C800090B3862F8095892380BB81B3862B81BB4F
-:100C90001092B7011092B6011092BF011092BE01DE
-:100CA0001092B9011092B8011092C1011092C001C6
-:100CB0001092BB011092BA011092C3011092C201AE
-:100CC0001092BD011092BC011092C5011092C40196
-:100CD00068960FB6F894DEBF0FBECDBFDF91CF91FF
-:100CE0001F910F91FF90EF90DF90CF90BF90AF904A
-:100CF0009F908F907F906F905F9008955F926F921A
-:100D00007F928F929F92AF92BF92CF92DF92EF929B
-:100D1000FF920F931F93CF93DF93CDB7DEB7A097CA
-:100D20000FB6F894DEBF0FBECDBF7E0149E1E40EE1
-:100D3000F11C2EEBC22E21E0D22E5E0151E2A50E57
-:100D4000B11C38E0532E470101E010E048E1642E69
-:100D500055E0752EE3E2F1E0D401852D01900D926E
-:100D60008A95E1F7F701819191917F019C01207FA4
-:100D700033272032310589F424B18F709927A801D7
-:100D800002C0440F551F8A95E2F7CA01242B24B9EB
-:100D900095B18095892385B94FC02033310589F4F9
-:100DA00027B18F709927F80102C0EE0FFF1F8A95B7
-:100DB000E2F7CF012E2B27B998B18095892388B906
-:100DC0003BC02034310589F42AB18F709927A801DE
-:100DD00002C0440F551F8A95E2F7CA01242B2AB995
-:100DE0009BB1809589238BB927C02035310589F4C3
-:100DF0002DB18F709927F80102C0EE0FFF1F8A9561
-:100E0000E2F7CF012E2B2DB99EB1809589238EB9A3
-:100E100013C02036310581F420B38F709927A801C3
-:100E200002C0440F551F8A95E2F7CA01242B20BB4C
-:100E300091B38095892381BB50EA5A95F1F7BE01A1
-:100E40006F5F7F4F80E090E020E030E0EBE2F1E088
-:100E5000DE011196462D01900D924A95E1F7FB01B6
-:100E600041915191BF01FA01E07FFF27E032F10586
-:100E700011F4E3B113C0E033F10511F4E6B10EC093
-:100E8000E034F10511F4E9B109C0E035F10511F4E0
-:100E9000ECB104C0E036F105B9F4EFB1F0E04F7009
-:100EA000552702C0F595E7954A95E2F7E0FD08C0A1
-:100EB000A801022E02C0440F551F0A94E2F702C097
-:100EC00040E050E0842B952B2F5F3F4F2C303105B5
-:100ED00009F0BCCFF601208131812817390721F0B4
-:100EE00091838083709200010E94C804F2E0CF0ECB
-:100EF000D11CEA14FB0409F02DCF80910001882356
-:100F000061F1815080930001811121C08091BE0167
-:100F10009091BF019093B7018093B6018091C00179
-:100F20009091C1019093B9018093B8018091C20161
-:100F30009091C3019093BB018093BA018091C40149
-:100F40009091C5019093BD018093BC0106C08FE9CB
-:100F50009FE00197F1F700C0000081E0A0960FB676
-:100F6000F894DEBF0FBECDBFDF91CF911F910F91DF
-:100F7000FF90EF90DF90CF90BF90AF909F908F90B9
-:100F80007F906F905F900895E82FF0E0EE0FFF1FC5
-:100F9000EA54FE4F80819181089508950895279A1B
-:100FA0002F988FEF9FEF90938700809386008AE0C1
-:100FB0008093800089E1809381000C945F2B8111E4
-:100FC0000BC080918000877F8093800010928D00FD
-:100FD00010928C002F9808952F98833041F48091BF
-:100FE00080008860809380008FEF9FEF12C0909107
-:100FF000800098609093800023E030E0281B310946
-:10100000220F331F8FEF9FEF02C0969587952A9589
-:10101000E2F790938D0080938C0008950F931F93B7
-:10102000CF93DF93CDB7DEB7CC58D1090FB6F89484
-:10103000DEBF0FBECDBF8C01862F642F882379F0D1
-:10104000F80192812FE7482F992329F08DE792E04C
-:101050000E94F81404C08DE792E00E940815F80180
-:1010600080818B3061F49181933009F068C0828176
-:10107000882309F4CDC0809103018F5F0EC08A30B0
-:10108000E1F5F8019181933009F059C082818823FC
-:1010900009F4BEC08091030181508093030120E0D8
-:1010A0004BE760E08DE792E00E94E81420E04BE718
-:1010B00061E08DE792E00E94E81420E04BE762E0F7
-:1010C0008DE792E00E94E81420E04BE763E08DE7B3
-:1010D00092E00E94E81420E04BE764E08DE792E0A4
-:1010E000C457DF4F0FB6F894DEBF0FBECDBFDF9100
-:1010F000CF911F910F910C94E814893069F4F80195
-:1011000091819330E1F492819923C9F0809101019A
-:101110009091020101960EC0883089F4F801918106
-:10112000933069F49281992351F08091010190915B
-:10113000020101979093020180930101B0CFF80161
-:10114000928140910301992391F196E4E3E4F1E067
-:10115000DE01A95BBF4F01900D929A95E1F7405DCA
-:10116000F8019181FCE09F9F40191124E091010159
-:10117000F0910201E80FF11DEE0FFF1F87E490E0F0
-:101180008C0F9D1FE80FF91F8081480F2FE760E04B
-:101190008DE792E0C457DF4F0FB6F894DEBF0FBE65
-:1011A000CDBFDF91CF911F910F910C94F81496E46D
-:1011B000E3E4F1E0DE01119601900D929A95E1F7DA
-:1011C000405DF8019181FCE09F9F40191124E0915E
-:1011D0000101F0910201E80FF11DEE0FFF1F81E008
-:1011E00090E08C0F9D1FE80FF91F8081480F2FE7BB
-:1011F00060E08DE792E0C457DF4F0FB6F894DEBF92
-:101200000FBECDBFDF91CF911F910F910C940815A8
-:10121000C457DF4F0FB6F894DEBF0FBECDBFDF91CE
-:10122000CF911F910F910895CF93DF93EA019B0116
-:10123000AC0160E074E284E79BE40E945F2C0E94B2
-:10124000C72C709397006093960020E130E02C1B30
-:101250003D0B02C0759567952A95E2F7709399004A
-:1012600060939800DF91CF9108951092020210923E
-:10127000010210929000109291001092FD011092C4
-:10128000FE011092FF01109200021092FC011092D8
-:10129000FB01E9EDF1E0A9ECB1E01192119211929C
-:1012A00011921D921D9281E0E93FF807B1F7089570
-:1012B000AF92BF92CF92DF92EF92FF920F931F9364
-:1012C000CF93DF936B017C0109EF11E047EDA42E72
-:1012D00041E0B42EC7E0D0E0A7019601F801929159
-:1012E0008291729162918F010E945B2C882349F058
-:1012F0002197F2E0AF1AB108CF3F8FEFD80761F71F
-:1013000034C0F8011082118212821382F501118219
-:101310001082FE01EE0FFF1FEE0FFF1FE752FE4F80
-:10132000DE01AA0FBB1FA753BE4FCE011AC0019604
-:1013300044815581668177814083518362837383C1
-:10134000148215821682178212962D913C91139762
-:1013500011963C932E9313961C921E9212973496DC
-:1013600012968730910519F7C3CF809101029091B1
-:101370000202019797FD05C090930202809301023B
-:1013800004C01092020210920102E0910102F09159
-:101390000202309789F410929000109291001092FE
-:1013A000FD011092FE011092FF01109200021092B6
-:1013B000FC011092FB019EC03197DF01AA0FBB1FF9
-:1013C000AA0FBB1FA752BE4FCD90DD90ED90FC90B1
-:1013D000EE0FFF1FE753FE4FC081D181A090FD01AA
-:1013E000B090FE010091FF0110910002A70196014B
-:1013F0006A2D7B2D802F912F0E945B2C87FF2FC0A1
-:1014000081E08093C801AE016A2D7B2D802F912F42
-:101410000E9414092091FD013091FE014091FF01CD
-:1014200050910002C701B6010E94F62B20E030E087
-:101430004AEF53E40E945F2C9B01AC016A2D7B2D87
-:10144000802F912F0E94F72B5B018C01A701960141
-:101450007B2D912F0E945B2C1816ACF638C0A7018B
-:1014600096016A2D7B2D802F912F0E94AA2D181690
-:1014700084F581E08093C801AE016A2D7B2D802F19
-:10148000912F0E941409A70196016091FD017091AE
-:10149000FE018091FF01909100020E94F62B20E056
-:1014A00030E04AEF53E40E945F2C9B01AC016A2DAF
-:1014B0007B2D802F912F0E94F62B5B018C01A701C1
-:1014C00096017B2D912F0E94AA2D87FFD5CF1092D8
-:1014D000C801AE01C701B6010E941409C092FD0106
-:1014E000D092FE01E092FF01F0920002D093FC0145
-:1014F000C093FB01DF91CF911F910F91FF90EF906F
-:10150000DF90CF90BF90AF90089508951F920F92F3
-:101510000FB60F9211242F933F934F935F936F93C6
-:101520007F938F939F93AF93BF93EF93FF9380919C
-:10153000960090919700892B09F455C08091C801BD
-:10154000811151C08091F9019091FA01813091058A
-:1015500071F082309105C1F0892BC1F52091FD0118
-:101560003091FE014091FF01509100021DC0609139
-:10157000FD017091FE018091FF01909100029B019D
-:10158000AC010E94F72B0EC020E030E040E450E4B4
-:101590006091FD017091FE018091FF019091000228
-:1015A0000E94AE2D9B01AC0160E074E284E79BE4F5
-:1015B0000E945F2C0E94C72C709397006093960046
-:1015C0007595679570939900609398008091F901E3
-:1015D0009091FA01019663E070E00E948A2F909347
-:1015E000FA018093F901FF91EF91BF91AF919F9123
-:1015F0008F917F916F915F914F913F912F910F90BC
-:101600000FBE0F901F901895AF92BF92CF92DF92AE
-:10161000EF92FF920F931F93CF93DF936B017C01A7
-:10162000EA0120E030E0A9010E94AA2D18160CF072
-:10163000B4C03E9A82E8809390008AE18093910042
-:10164000A090FD01B090FE010091FF0110910002F9
-:1016500020E030E0A9016A2D7B2D802F912F0E9480
-:101660005B2C81112DC0AE01C701B6010E94140987
-:10167000C092FD01D092FE01E092FF01F0920002C3
-:10168000D093FC01C093FB01809101029091020272
-:10169000FC01EE0FFF1FEE0FFF1FE752FE4FC0824F
-:1016A000D182E282F382FC01EE0FFF1FE753FE4F6F
-:1016B000D183C083019690930202809301026DC092
-:1016C000A70196016A2D7B2D802F912F0E945B2C04
-:1016D00087FF2CC0AE016A2D7B2D802F912F0E9499
-:1016E00014092091FD013091FE014091FF015091BC
-:1016F0000002C701B6010E94F62B20E030E04AEF5D
-:1017000053E40E945F2C9B01AC016A2D7B2D802F3E
-:10171000912F0E94F72B5B018C01A70196017B2D75
-:10172000912F0E945B2C1816ACF69DCFA701960155
-:101730006A2D7B2D802F912F0E94AA2D18160CF058
-:1017400092CFAE016A2D7B2D802F912F0E9414091C
-:10175000A70196016091FD017091FE018091FF014A
-:10176000909100020E94F62B20E030E04AEF53E413
-:101770000E945F2C9B01AC016A2D7B2D802F912F45
-:101780000E94F62B5B018C01A70196017B2D912F06
-:101790000E94AA2D87FFD5CF66CFDF91CF911F91F1
-:1017A0000F91FF90EF90DF90CF90BF90AF90089592
-:1017B00080910C020895CF93DF9300D01F92CDB794
-:1017C000DEB720916E03243021F523E029839B832B
-:1017D0008A832093E9008FEF06C095ED9A95F1F783
-:1017E0000000882329F09091E800815095FFF5CF03
-:1017F0008091E80085FF0DC040E050E063E070E0BC
-:10180000CE0101960E94BA0F8091E8008E778093F6
-:10181000E8000F900F900F90DF91CF910895CF9334
-:10182000DF9300D01F92CDB7DEB720916E03243036
-:1018300029F522E029839B838A8383E08093E90052
-:101840008FEF06C095ED9A95F1F70000882329F0F7
-:101850009091E800815095FFF5CF8091E80085FFD9
-:101860000DC040E050E063E070E0CE0101960E94C0
-:10187000BA0F8091E8008E778093E8000F900F9068
-:101880000F90DF91CF91089520916E032430F9F4E9
-:1018900022E02093E9002FEF06C035ED3A95F1F7ED
-:1018A0000000222329F03091E800215035FFF5CFC8
-:1018B0002091E80025FF0BC040E050E065E070E0BB
-:1018C0000E94BA0F8091E8008E778093E800089517
-:1018D000CF93DF93EC0180916E03843041F581E07A
-:1018E0008093E9008FEF06C095ED9A95F1F700001F
-:1018F000882329F09091E800815095FFF5CF8091E1
-:10190000E80085FF14C040E050E068E070E0CE01E0
-:101910000E94BA0F8091E8008E778093E80088E0FB
-:10192000FE01A4E0B2E001900D928A95E1F7DF910B
-:10193000CF910895BF92CF92DF92EF92FF920F93D3
-:101940001F93CF93DF937C01B62EE90100E010E0F6
-:10195000C42ED12C0BC04991202F2B0D2F774F7700
-:101960006FE0C7010E94E8140F5F1F4F0C151D05A3
-:1019700094F3DF91CF911F910F91FF90EF90DF9043
-:10198000CF90BF90089570E06F5F7F4F6F707727A3
-:101990000C94E8140F931F93CF93C42F63307105F9
-:1019A00009F04AC0842F807F803849F1803909F0DE
-:1019B00043C0622F6F7770E080E090E00E94FA2CC5
-:1019C00020E030E040E451E40E945F2C9B01AC0138
-:1019D00060E070E080E090E40E94112E0F7710E04C
-:1019E00023E0159507952A95E1F72DEC3CEC42E0B4
-:1019F00053E40E94AE2DA8010E94040B1DC0622F6B
-:101A00006F7770E080E090E00E94FA2C20E030E0F8
-:101A100040E451E40E945F2C9B01AC0160E070E067
-:101A200080E090E40E94112E2DEC3CEC42E053E467
-:101A30000E94AE2D0E945809CC3F29F4CF911F91EE
-:101A40000F910C943509CF911F910F9108950F9329
-:101A50001F93CF93DF93CDB7DEB727970FB6F894D8
-:101A6000DEBF0FBECDBF8C0114C08A810E94C2149C
-:101A70009A819D839B819E839C819F8381111EC03F
-:101A800089818430B1F08730A1F08630A1F08530B3
-:101A9000A1F0BE016F5F7F4F84E091E00E942F189C
-:101AA0008111E3CF84E091E00E9420180E949B14F2
-:101AB0000DC083E003C082E001C081E0AE014B5F56
-:101AC0005F4F682FC8010E945515E3CF27960FB6C8
-:101AD000F894DEBF0FBECDBFDF91CF911F910F9164
-:101AE0000895EF92FF920F93CF93DF9300D000D031
-:101AF00000D0CDB7DEB77B014A832B830C83842FC4
-:101B00002E834D830E94C2142E814D8181111BC0F2
-:101B100082E0E816F10479F083E0E816F10421F0A0
-:101B2000EA94EF2821F50BC0073F11F487E001C0CC
-:101B300084E089830BC0273FD9F786E0FACF473F7F
-:101B4000B9F785E0F6CF42954F704983BE016F5FCC
-:101B50007F4F84E091E00E94E51784E091E00E94CD
-:101B6000031884E091E00E9420180E949B1426969E
-:101B70000FB6F894DEBF0FBECDBFDF91CF910F91AE
-:101B8000FF90EF90089580916D03811109C00E942C
-:101B9000A1110E94FE118091E20084608093E20016
-:101BA000089510926D03089508950C94E4020C9426
-:101BB000892480916E03843049F58091E9008F700B
-:101BC0009091EC0090FF02C090E801C090E0982B4B
-:101BD00084E08093E9008091EB0080FF14C0809145
-:101BE000EE0087FD03C00FC01092F1008091E80065
-:101BF00085FDFACF8091E80080FF05C08091E80064
-:101C00008E778093E8009F709093E900089542E0FA
-:101C100061EC81E00E94171142E061EC82E00E94D9
-:101C2000171142E061EC83E00E94171146E261EC7B
-:101C300084E00E94171142E361E885E00E941711D9
-:101C400042E360E886E00C941711809170038330C2
-:101C500009F454C030F4813071F0823009F0AAC028
-:101C600091C08A3009F47EC08B3009F45FC089309E
-:101C700009F0A0C020C080916F03813A09F09AC09A
-:101C80008091E800877F8093E800809173039091B2
-:101C90007403892B21F060E080E090E003C068E0ED
-:101CA00084E092E070E00E9458108091E8008B7709
-:101CB0008093E800089580916F03813209F07AC023
-:101CC0008091730390917403892B09F073C0809104
-:101CD000E800877F8093E80005C080916E03882329
-:101CE00009F468C08091E80082FFF7CF8091F1008D
-:101CF00080930C028091E8008B7758C080916F032D
-:101D0000813A09F057C08091730390917403892B35
-:101D100009F050C08091E800877F8093E8008091AF
-:101D2000E80080FFFCCF80911A013BC080916F03D7
-:101D3000813209F03FC08091730390917403892B25
-:101D4000C9F58091E800877F8093E8000E944E11DA
-:101D50009091710381E0911101C080E080931A019C
-:101D60000C948C1E80916F03813221F58091E800E4
-:101D7000877F8093E8000E944E11809172038093C8
-:101D80000302089580916F03813AA1F48091E800E5
-:101D9000877F8093E8008091E80080FFFCCF8091EE
-:101DA00003028093F1008091E8008E778093E80031
-:101DB0000C944E11089584B7877F84BF88E10FB6D5
-:101DC000F89480936000109260000FBE90E080E86D
-:101DD0000FB6F89480936100909361000FBE0E944B
-:101DE000A1110E94FE11E2EEF0E080818460808308
-:101DF00008958DE792E00E94241561E77DE08DE76C
-:101E000092E00E947A1567E27DE08DE792E00E9401
-:101E10007E150E94DB0E78946AEC7CE08DE792E000
-:101E20000E94201563EC7CE08DE792E00E9418157B
-:101E30006AE97CE08DE792E00E941C150E94850A09
-:101E40000E949B140E94AC1880E191E00E945418FB
-:101E50000BC00E944E2480916C03882329F00E94BD
-:101E6000742481110E94A40F80916E03853089F340
-:101E70008DE792E00E942D170E94B618F5CF292F0A
-:101E8000332723303105B1F04CF42130310509F40A
-:101E90004DC02230310509F04EC007C02132310556
-:101EA00041F12232310591F146C0E0EDF0E086E7E4
-:101EB00093E045C099278130910569F08230910502
-:101EC00089F0892B09F037C0E2E7F3E0E491F0E014
-:101ED00082E793E034C0E4E4F3E0E491F0E084E4EA
-:101EE00093E02DC0EAE1F3E0E491F0E08AE193E0D1
-:101EF00026C0643000F5E62FF0E0EE0FFF1FE75735
-:101F0000FE4F80819181E9E0F0E019C0643098F4DF
-:101F1000E62FF0E0DF01AA0FBB1FAF56BE4F8D9139
-:101F20009C91E756FE4FE081F0E009C0E2E1F0E06D
-:101F300086E494E004C0E0E0F0E080E090E0DA01C4
-:101F40008D939C93CF01089580E189BD82E189BD85
-:101F500009B400FEFDCF8091D8008F7D8093D8001A
-:101F60008091E00082608093E0008091E00081FD3C
-:101F7000FCCF0895BF92CF92DF92EF92FF920F9322
-:101F80001F93CF93DF937C018B01EA010E946F11B5
-:101F9000B82E811133C0209731F028813981021B7E
-:101FA000130BE20EF31EC12CD12C23C08091E8004C
-:101FB00085FD15C08091E8008E778093E80020971A
-:101FC00049F0888199818C0D9D1D9983888325E036
-:101FD000B22E14C00E946F11882359F00EC0F70171
-:101FE00081917F018093F10001501109FFEFCF1A19
-:101FF000DF0A01151105D1F601C0B82E8B2DDF9136
-:10200000CF911F910F91FF90EF90DF90CF90BF90F5
-:102010000895BF92CF92DF92EF92FF920F931F939A
-:10202000CF93DF937C018B01EA010E946F11B82EE0
-:10203000811133C0209731F028813981021B130BA5
-:10204000E20EF31EC12CD12C23C08091E80085FD47
-:1020500015C08091E8008B778093E800209749F0C5
-:10206000888199818C0D9D1D9983888345E0B42ECC
-:1020700014C00E946F11882359F00EC08091F100A6
-:10208000F70181937F0101501109FFEFCF1ADF0A99
-:1020900001151105D1F601C0B82E8B2DDF91CF911E
-:1020A0001F910F91FF90EF90DF90CF90BF90089518
-:1020B00040917503509176034617570748F0611514
-:1020C000710539F44091E8004E774093E80001C073
-:1020D000BA01FC0140E033C080916E03882309F40B
-:1020E00042C0853009F441C08091E80083FD39C0C9
-:1020F0008091E80082FD2FC08091E80080FF1FC022
-:102100009091F3008091F200392F20E0A901482B33
-:10211000CA0106C041914093F100615071090196D6
-:102120006115710519F088309105A0F341E0089719
-:1021300009F040E08091E8008E778093E800611517
-:10214000710551F64111C8CF06C080916E038823F6
-:1021500051F0853051F08091E80082FFF6CF80E0A9
-:10216000089581E0089582E0089583E00895409104
-:102170007503509176034617570748F061157105AE
-:1021800039F44091E8004E774093E80001C0BA016D
-:10219000FC0140E034C080916E03882309F443C001
-:1021A000853009F442C08091E80083FD3AC08091F7
-:1021B000E80082FD30C08091E80080FF20C090914F
-:1021C000F3008091F200392F20E0A901482BCA01C9
-:1021D00007C044914093F100319661507109019616
-:1021E0006115710519F08830910598F341E0089761
-:1021F00009F040E08091E8008E778093E800611557
-:10220000710549F64111C7CF06C080916E0388233E
-:1022100051F0853051F08091E80082FFF6CF80E0E8
-:10222000089581E0089582E0089583E00895982F4D
-:102230002CC09093E900981739F07091EC00209130
-:10224000ED005091F00003C0242F762F50E021FDC7
-:1022500002C09F5F1AC03091EB003E7F3093EB00CD
-:102260003091ED003D7F3093ED003091EB00316017
-:102270003093EB007093EC002093ED005093F0004E
-:102280002091EE0027FDE5CF07C0973090F28F70C8
-:102290008093E90081E0089580E0089580916F03C4
-:1022A00087FD05C08091E80080FF0EC012C08091BC
-:1022B000E80082FD05C080916E038111F8CF08957A
-:1022C0008091E8008B7708C080916E038111EACF7E
-:1022D00008958091E8008E778093E80008958091BA
-:1022E000E4009091E50045E62091EC0020FD1FC040
-:1022F00023C020916E03222391F0253091F020918C
-:10230000EB0025FD10C02091E4003091E500281776
-:10231000390751F34150C90139F784E0089582E04B
-:10232000089583E0089581E0089580E00895209164
-:10233000E80020FFDECFF9CF2091E80022FFD9CFBF
-:10234000F4CF0E940F120E941712E0EEF0E080819D
-:1023500081608083E8EDF0E080818F77808319BC15
-:10236000A7EDB0E08C918E7F8C9380818F7E8083EF
-:1023700010926D0308950F931F93CF93DF930E94E4
-:102380000F120E941712C8EDD0E088818F778883E2
-:1023900088818068888388818F7D888319BC1092AA
-:1023A0006E0310926A0310926C0310926B0300EE9E
-:1023B00010E0F80180818B7F808388818160888331
-:1023C00042E060E080E00E941711E1EEF0E08081E1
-:1023D0008E7F8083E2EEF0E0808181608083808167
-:1023E00088608083F80180818E7F8083888180610E
-:1023F0008883DF91CF911F910F910895E8EDF0E070
-:1024000080818F7E8083E7EDF0E080818160808332
-:1024100084E082BF81E080936D030C94BB11E8EDF2
-:10242000F0E080818E7F80831092E2000895109208
-:10243000DA001092E10008951F920F920FB60F92EA
-:1024400011242F933F934F935F936F937F938F93B9
-:102450009F93AF93BF93EF93FF938091E10082FF2F
-:102460000BC08091E20082FF07C08091E1008B7F6A
-:102470008093E1000E94D90D8091DA0080FF1FC097
-:102480008091D80080FF1BC08091DA008E7F8093FE
-:10249000DA008091D90080FF0DC080E189BD82E122
-:1024A00089BD09B400FEFDCF81E080936E030E94D8
-:1024B000C30D05C019BC10926E030E94D10D80910E
-:1024C000E10080FF19C08091E20080FF15C080917B
-:1024D000E2008E7F8093E2008091E2008061809331
-:1024E000E2008091D80080628093D80019BC85E01A
-:1024F00080936E030E94D50D8091E10084FF30C06F
-:102500008091E20084FF2CC080E189BD82E189BD19
-:1025100009B400FEFDCF8091D8008F7D8093D80054
-:102520008091E1008F7E8093E1008091E2008F7EB8
-:102530008093E2008091E20081608093E2008091CC
-:102540006A03882311F084E007C08091E30087FFCD
-:1025500002C083E001C081E080936E030E94D70D2A
-:102560008091E10083FF29C08091E20083FF25C0B4
-:102570008091E100877F8093E10082E080936E0389
-:1025800010926A038091E1008E7F8093E100809138
-:10259000E2008E7F8093E2008091E2008061809370
-:1025A000E20042E060E080E00E9417118091F000BC
-:1025B00088608093F0000E94D40DFF91EF91BF914D
-:1025C000AF919F918F917F916F915F914F913F91CB
-:1025D0002F910F900FBE0F901F9018951F920F9282
-:1025E0000FB60F9211242F933F934F935F936F93E6
-:1025F0007F938F939F93AF93BF93CF93EF93FF936B
-:102600008091E9008F709091EC0090FF02C090E8FB
-:1026100001C090E0C92FC82B1092E9008091F00012
-:10262000877F8093F00078940E9432131092E90023
-:102630008091F00088608093F000CF70C093E90033
-:10264000FF91EF91CF91BF91AF919F918F917F912A
-:102650006F915F914F913F912F910F900FBE0F900F
-:102660001F9018951F93CF93DF93CDB7DEB7AC972C
-:102670000FB6F894DEBF0FBECDBFEFE6F3E080915A
-:10268000F100819323E0E737F207C9F70E94250E96
-:102690008091E80083FF37C180916F0390917003B0
-:1026A000953009F488C038F49130B1F170F093306E
-:1026B00009F029C131C0983009F4F8C0993009F403
-:1026C00004C1963009F01FC19DC0803821F08238C6
-:1026D00009F019C108C080916B0390916C03992394
-:1026E00089F082600FC080917303909174038F70A2
-:1026F00099278093E9008091EB0085FB882780F97A
-:102700001092E9009091E800977F9093E800809301
-:10271000F1001092F100D5C0882319F0823009F041
-:10272000F2C08F7121F0823009F0EDC00BC08091B2
-:102730007103813009F0E7C0933009F080E08093A5
-:102740006C032FC08091710381112BC080917303A2
-:10275000909174038F709927009709F4D4C08093E7
-:10276000E9002091EB0020FF1CC020917003233072
-:1027700021F48091EB00806212C09091EB00906197
-:102780009093EB0021E030E001C0220F8A95EAF738
-:102790002093EA001092EA008091EB008860809319
-:1027A000EB001092E9008091E800877F8093E800B9
-:1027B0000E944E11A8C08111A6C080917103909112
-:1027C00072038F779927182F9091E3009078982BB8
-:1027D0009093E3008091E800877F8093E8000E9457
-:1027E0004E118091E80080FFFCCF8091E30080686B
-:1027F0008093E300112311F083E001C082E0809315
-:102800006E0381C08058823008F07DC080917103D2
-:10281000909172038C3D23E0920779F583E08A83DF
-:102820008AE289834FB7F894DE01139620E03EE0F8
-:1028300051E2E32FF0E050935700E49120FF03C0F2
-:10284000E295EF703F5FEF708E2F90E0EA3010F06E
-:10285000C79601C0C0968D939D932F5F243149F791
-:102860004FBF8091E800877F8093E8006AE270E0C4
-:10287000CE0101960E94581013C0AE01455D5F4F16
-:10288000609173030E943F0F0097E9F12091E800E7
-:10289000277F2093E800BC018BA59CA50E94B71060
-:1028A0008091E8008B778093E8002DC0803859F53F
-:1028B0008091E800877F8093E80080916A0380938D
-:1028C000F1008091E8008E7771CF81111CC090914A
-:1028D00071039230C0F48091E800877F8093E80014
-:1028E00090936A030E944E1180916A03811104C083
-:1028F0008091E30087FF02C084E001C081E0809303
-:102900006E030E94070E8091E80083FF0AC0809149
-:10291000E800877F8093E8008091EB0080628093DD
-:10292000EB00AC960FB6F894DEBF0FBECDBFDF91C3
-:10293000CF911F910895CF9380916E038823B1F0BA
-:102940008091E9008F709091EC0090FF02C090E8B8
-:1029500001C090E0C92FC82B1092E9008091E800D7
-:1029600083FD0E943213CF70C093E900CF91089588
-:10297000881F8827881F089591E0883F08F490E019
-:10298000892F0895982F907F903B99F038F49039D3
-:1029900081F0903A71F09038C9F40BC0903DA1F0ED
-:1029A00018F4903C99F410C0903E19F0903F71F4E7
-:1029B00002C083E00895E82FE15FEF3038F4F0E0E3
-:1029C000E356FE4F8081089582E0089580E00895E7
-:1029D0000F932F774F776F70606BDC01ED91FC9157
-:1029E000022F242F462F63E070E009950F91089580
-:1029F0000F932F774F776F706069DC01ED91FC9139
-:102A0000022F242F462F63E070E009950F9108955F
-:102A10000F932F774F776F706068DC01ED91FC9119
-:102A2000022F242F462F63E070E009950F9108953F
-:102A3000FC01738362830895FC01738F628F089594
-:102A4000FC01758F648F0895CF93DF93EC011DA275
-:102A50001FA21EA2BC01685D7F4F40EC88519F4FB2
-:102A60000E9461171B821A821D821C821F821E8295
-:102A7000198618861B861A861D861C861F861E864A
-:102A8000198A188A1B8A1A8A1D8A1C8A1F8A1E8A1A
-:102A9000198E188E1B8E1A8E1D8E1C8E1F8E1E8EEA
-:102AA00019A218A2DF91CF910895CF92DF92FF92E1
-:102AB0000F931F93CF93DF931F92CDB7DEB7F62E00
-:102AC0006A018C0108511F4F08C0F60161916F0126
-:102AD000C80149830E94681749818C2D841B8F157A
-:102AE000A0F30F90DF91CF911F910F91FF90DF9096
-:102AF000CF900895FC01718360830895FC0171A358
-:102B000060A30895AF92BF92CF92DF92EF92FF92AF
-:102B10000F931F93CF93DF9300D01F92CDB7DEB7F3
-:102B20007C016B01142FB22EA02EDC0195968C91A6
-:102B300095978430F1F45A96ED91FC915B9730971C
-:102B400009F4D8C0CB01019763E070E00E94762FB2
-:102B5000DB01AA0FBB1FA60FB71F49832A830B8374
-:102B60004C2D4A1B9E012F5F3F4FBD01C7010995A8
-:102B7000B1C06230710509F453C06330710529F0AA
-:102B80006130710509F09CC083C0842F807F803A3A
-:102B900001F130F48038B9F0803909F0ABC00DC0D4
-:102BA000803EE9F0803F09F1803B09F0A3C0D701E6
-:102BB0001296ED91FC91139723C0D7011496ED91D5
-:102BC000FC9115971DC0D7011696ED91FC911797B2
-:102BD00017C0D7011896ED91FC91199711C0D70134
-:102BE0001A96ED91FC911B970BC0423F09F082C0F1
-:102BF000D7011C96ED91FC911D97309731F47AC066
-:102C0000309709F477C0123F21F42A2D4B2D62EF43
-:102C100004C0612F6F702A2D4B2DC70109955AC032
-:102C2000842F807F803D59F0803F79F0803C09F00F
-:102C300061C0D7011E96ED91FC911F9719C0D70175
-:102C40005096ED91FC91519713C0433F31F4D70159
-:102C50005296ED91FC91539708C0413F09F04AC04C
-:102C6000D7015496ED91FC915597309741F442C0AD
-:102C7000309709F43FC0133F11F0113F19F44B2D69
-:102C8000612F03C0612F6F704B2DC701099522C0C2
-:102C9000842F0E94BC14882331F0D7015696ED9101
-:102CA000FC91579707C0163F29F5D7015896ED912B
-:102CB000FC9159973097F1F0612FC70109950AC02F
-:102CC00064307105A8F416C00A2D2B2D412FB601D2
-:102CD000C7010995D7015E96ED91FC915F973097FA
-:102CE00089F00A2D2B2D412FB601C70109950AC085
-:102CF000C12CD12CD7015C96ED91FC915D9730975A
-:102D000019F7E8CF0F900F900F90DF91CF911F919F
-:102D10000F91FF90EF90DF90CF90BF90AF9008950C
-:102D2000EF92FF920F931F93CF93DF93EC01162F37
-:102D3000862F0E94BC14882369F0FDA081E08DA33A
-:102D400000E020E0412F61E070E0CE010E9482159A
-:102D5000FDA27CC0812F0E94B8144DA1882309F4E4
-:102D600040C0443029F01AA321E030E03FA32EA355
-:102D7000812F0E94C214813031F070F0823051F006
-:102D8000833059F507C08DA300E020E0412F61E0BA
-:102D900070E01EC08DA35AC0103F19F0173FE9F430
-:102DA00004C084E08DA31AA33FC02EA13FA1C90196
-:102DB00063E070E00E94762F8C0F9D1FFC0112A330
-:102DC000B9016F5F7F4F7FA36EA30CA12BA14AA116
-:102DD000CE010E9482151DA239C01DA21FA21EA2F3
-:102DE00035C0442399F12EA13FA1C90163E070E0F1
-:102DF0000E94762F7C01FE01E80FF91F12A3B90192
-:102E00006F5F7F4F7FA36EA38130910591F082E0C9
-:102E1000E816F104D9F40CA12BA14AA1CE010E941D
-:102E200082158DA1843091F081E090E09FA38EA364
-:102E30000DC0423059F400E02BA14AA1CE010E94FE
-:102E400082158DA1843011F0FFA2EEA2DF91CF9107
-:102E50001F910F91FF90EF900895CF92DF92EF9224
-:102E6000FF920F931F93CF93DF93EC01E8A1F9A199
-:102E7000309709F009958E0108511F4FC8010E9433
-:102E80009A17E12CF12CC82ED12C0FC060E0C8019C
-:102E90000E94AE17682FCE010E94901661E0C80113
-:102EA0000E94BF178FEFE81AF80AEC14FD0470F3C4
-:102EB000DF91CF911F910F91FF90EF90DF90CF9016
-:102EC0000895FC0142837483638311821082089504
-:102ED0000F931F93CF93DF93EC01062F0E94E0170F
-:102EE000182F298130E0C90101966A8170E00E94A3
-:102EF0008A2F488150E08417950729F4812F0E947A
-:102F0000E31780E012C0EB81FC81E20FF31F008326
-:102F10002981822F90E001966A8170E00E948A2FB9
-:102F20008983812F0E94E31781E0DF91CF911F9168
-:102F30000F910895CF93DF93EC010E94E017298150
-:102F40009881291710F0C22F02C0CA81C20FC91B75
-:102F50000E94E3178C2FDF91CF910895FC0120810F
-:102F6000862F90E0820F911D628170E00E948A2F6F
-:102F70000380F481E02DE80FF91F808108950F93FD
-:102F80001F93CF93DF931F92CDB7DEB78C01698378
-:102F90000E94E017482FF80180816981262F30E0D8
-:102FA000280F311D6281C90170E00E948A2F808341
-:102FB000842F0F90DF91CF911F910F910C94E31705
-:102FC0008FB7F89408958FBF0895FC01CB0120912D
-:102FD0006E032430B1F421812F702093E90040E08A
-:102FE00050E064E070E00E94BA0F81110BC0909134
-:102FF000E80095FD07C09091E8009E779093E80067
-:10300000089582E0089520916E032430A9F4FC0114
-:1030100081818F708093E9003091F3002091F2005C
-:10302000932F80E0822B892B49F08091E8008E77E6
-:103030008093E8000C946F1182E0089580E0089579
-:1030400020916E03243051F4FC0121812F702093D4
-:10305000E9002091E80020FD0C9403180895FC017C
-:10306000CB0120916E03243011F080E00895268179
-:103070002F702093E9002091E80022FFF6CF2091E5
-:10308000E80025FFF2CF40E050E064E070E00E94ED
-:1030900009108091E80085FD05C08091E8008B77DC
-:1030A0008093E80081E0089590930F0280930E02D0
-:1030B000089580910E0290910F020895E0910E0202
-:1030C000F0910F02309721F00190F081E02D0994EA
-:1030D00080E00895E0910E02F0910F02309721F008
-:1030E0000280F381E02D09940895E0910E02F091A1
-:1030F0000F02309721F00480F581E02D09940895A6
-:1031000020911002309111028217930771F0909371
-:10311000110280931002E0910E02F0910F0230979D
-:1031200021F00680F781E02D099408952091120284
-:10313000309113028217930771F0909313028093DA
-:103140001202E0910E02F0910F02309721F00084FC
-:10315000F185E02D099408950E94B6240E948D0502
-:103160000E948A250C945F2B0C94CE075F926F927D
-:103170007F928F929F92AF92BF92CF92DF92EF9207
-:10318000FF920F931F93CF93DF93CDB7DEB72A97AC
-:103190000FB6F894DEBF0FBECDBF0E947E0694E14D
-:1031A000C92E92E0D92E00E010E0AA24A394B12CFD
-:1031B000502E802F0E94C4073C01F601E190F1904F
-:1031C0006F01E826F926E114F10431F40F5F1F4F77
-:1031D0000430110569F73AC08091680281FD0E94B0
-:1031E000CD0720E030E04501022E02C0880C991C7A
-:1031F0000A94E2F7C4018E219F21892B09F12E83C5
-:103200005F826820792081E0672809F480E0888760
-:103210000E94BF248160782F9A8789874E815F81C1
-:1032200068858A850E946F19F801EE0FFF1FEC5E1A
-:10323000FD4F80819181882599259183808316C0D7
-:103240002F5F3F4F2C30310571F6C0CF8FEF898350
-:103250008A831B820E94BF248160782F9D838C8388
-:1032600049815A816B818D810E946F190E94772854
-:1032700010911C020E945E181817D9F00E945E1867
-:1032800080931C022A960FB6F894DEBF0FBECDBF06
-:10329000DF91CF911F910F91FF90EF90DF90CF9032
-:1032A000BF90AF909F908F907F906F905F900C94A5
-:1032B000B4182A960FB6F894DEBF0FBECDBFDF91CB
-:1032C000CF911F910F91FF90EF90DF90CF90BF9023
-:1032D000AF909F908F907F906F905F900895CF9365
-:1032E000DF93CDB7DEB72B970FB6F894DEBF0FBED6
-:1032F000CDBF4F83588769877A878B87DE01119608
-:1033000086E0FD0111928A95E9F785E0FE01379686
-:1033100001900D928A95E1F749815A816B817C81F8
-:103320008D819E810E9447212B960FB6F894DEBFB7
-:103330000FBECDBFDF91CF910895CF93C82F8823C3
-:1033400009F4C1C0823859F40E945E1881FDBBC0E7
-:1033500089E30E94AC230E94282489E30CC08338AF
-:1033600079F40E945E1880FDAEC083E50E94AC2314
-:103370000E94282483E50E94CE23CF910C94282418
-:10338000843859F40E945E1882FD9DC087E40E9433
-:10339000AC230E94282487E4EECF8450813A48F47D
-:1033A0008C2F0E94C72A81118EC08C2F0E94AC23C3
-:1033B000E4CF8C2F805E883050F4C77081E090E0BD
-:1033C00001C0880FCA95EAF70E94EF23D6CF8C2F51
-:1033D000855A833078F4C53A29F0C63A31F482E848
-:1033E00090E005C081E890E002C083E890E0CF91D2
-:1033F0000C9480188C2F885A833108F064C0C83A26
-:1034000039F1C93A41F1CA3A49F1CB3A51F1CC3AD2
-:1034100059F1CD3A61F1C03B69F1CE3A71F1CF3A41
-:1034200079F1C13B81F1C23B89F1C33B91F1C43BCE
-:1034300099F1C53BA1F1C63BA9F1C73BB1F1C83B2E
-:10344000B9F1C93BC1F1CA3BC9F58AE292E038C083
-:1034500082EE90E035C089EE90E032C08AEE90E0D6
-:103460002FC085EB90E02CC086EB90E029C087EB65
-:1034700090E026C08CEC90E023C08DEC90E020C062
-:1034800083E891E01DC08AE891E01AC082E991E0EA
-:1034900017C084E991E014C081E292E011C083E298
-:1034A00092E00EC084E292E00BC085E292E008C098
-:1034B00086E292E005C087E292E002C080E090E000
-:1034C000CF910C949618CF910895882309F44DC09C
-:1034D000823859F40E945E1881FF47C089E30E9438
-:1034E000AC230E94282489E30CC0833871F40E9425
-:1034F0005E1880FF3AC083E50E94AC230E94282416
-:1035000083E50E94CE230C942824843859F40E9429
-:103510005E1882FF2AC087E40E94AC230E94282400
-:1035200087E4EFCF982F9450913A08F4EACF982F80
-:10353000905E983058F4282F277081E090E001C009
-:10354000880F2A95EAF70E94F523DDCF982F955A28
-:10355000933020F480E090E00C948018885A8331F6
-:1035600020F480E090E00C9496180895882321F0D0
-:103570000E94EF230C9428240895882321F00E94B0
-:10358000F5230C9428240895BF92CF92DF92EF92F6
-:10359000FF920F931F93CF93DF93CDB7DEB727979B
-:1035A0000FB6F894DEBF0FBECDBF8C0185E0F801E9
-:1035B000DE01119601900D928A95E1F7F8013081B4
-:1035C0002181F280558152955F7083819481892B8E
-:1035D00039F02F3F41F481E090E03F3F31F003C0EC
-:1035E00081E090E002C080E090E080FD73C3398309
-:1035F0002A8389819A815E830E946923B92E8F83F1
-:103600000E9468230E9490222B2D22952F7030E07B
-:103610005E816F812530310509F4E6C06CF42430F9
-:1036200031050CF0A2C04B2D407F8B2D8F702230C6
-:1036300031050CF045C017C02C3031054CF42A3050
-:1036400031050CF0E7C12830310509F043C3E5C06E
-:103650002D30310509F4BAC20CF4A2C22F30310565
-:1036600009F038C323C3182F411101C002C01295BD
-:10367000107FFF2059F0112309F46BC2812F6F8353
-:103680000E94FF230E9428246F8163C2862F0E941C
-:10369000651A112309F41EC3812F0E940524279661
-:1036A0000FB6F894DEBF0FBECDBFDF91CF911F9153
-:1036B0000F91FF90EF90DF90CF90BF900C94282453
-:1036C000403211F08295807F662319F0613071F5E8
-:1036D00023C0FF20B1F0511101C032C0513081F53B
-:1036E00027960FB6F894DEBF0FBECDBFDF91CF9106
-:1036F0001F910F91FF90EF90DF90CF90BF900C94AF
-:103700000F24511101C003C0513009F4E3C28E836C
-:103710000E9412248E819AC1FF2021F0563008F0B9
-:10372000D9C20EC0553008F0D5C290C1FF20C9F0F3
-:10373000552331F0F801958190FF0BC29F7095835E
-:1037400027960FB6F894DEBF0FBECDBFDF91CF91A5
-:103750001F910F91FF90EF90DF90CF90BF900C944E
-:10376000B61A552309F472C109C22B2D2695269548
-:10377000237030E02115310529F02130310509F0A1
-:10378000A9C219C0FF2021F0862F9B2D937002C083
-:1037900080E090E027960FB6F894DEBF0FBECDBF55
-:1037A000DF91CF911F910F91FF90EF90DF90CF901D
-:1037B000BF900C948018FF2021F0862F9B2D9370D2
-:1037C00002C080E090E027960FB6F894DEBF0FBEEF
-:1037D000CDBFDF91CF911F910F91FF90EF90DF90C0
-:1037E000CF90BF900C949618862FFF2019F00E945E
-:1037F0007D2702C00E94E52727960FB6F894DEBF0A
-:103800000FBECDBFDF91CF911F910F91FF90EF9031
-:10381000DF90CF90BF900C946C288B2D837009F0B3
-:1038200079C0F11057C2262F229526952770220FB6
-:10383000220F862F8F70C82ED12CE12CF12C022E56
-:1038400004C0CC0CDD1CEE1CFF1C0A94D2F764FFF4
-:1038500010C06FE070E080E090E004C0660F771F5A
-:10386000881F991F2A95D2F760957095809590953D
-:1038700003C060E070E0CB012B2D269526952370C8
-:10388000422F50E042305105D9F04330510569F1E3
-:103890006C297D298E299F294130510551F12796A8
-:1038A0000FB6F894DEBF0FBECDBFDF91CF911F9151
-:1038B0000F91FF90EF90DF90CF90BF900C94A522D6
-:1038C0006C297D298E299F2927960FB6F894DEBF93
-:1038D0000FBECDBFDF91CF911F910F91FF90EF9061
-:1038E000DF90CF90BF900C94B7220E94A522C70111
-:1038F000B60127960FB6F894DEBF0FBECDBFDF919D
-:10390000CF911F910F91FF90EF90DF90CF90BF90DC
-:103910000C949322FF2019F08B2D817001C08695A5
-:10392000882309F4D7C1262F229526952770220FC8
-:10393000220F862F8F70C82ED12CE12CF12C022E55
-:1039400004C0CC0CDD1CEE1CFF1C0A94D2F764FFF3
-:1039500010C06FE070E080E090E004C0660F771F59
-:10396000881F991F2A95D2F760957095809590953C
-:1039700003C060E070E0CB012B2D269526952370C7
-:10398000422F50E042305105D9F04330510569F1E2
-:103990006C297D298E299F294130510551F12796A7
-:1039A0000FB6F894DEBF0FBECDBFDF91CF911F9150
-:1039B0000F91FF90EF90DF90CF90BF900C94442335
-:1039C0006C297D298E299F2927960FB6F894DEBF92
-:1039D0000FBECDBFDF91CF911F910F91FF90EF9060
-:1039E000DF90CF90BF900C9456230E944423C701D0
-:1039F000B60127960FB6F894DEBF0FBECDBFDF919C
-:103A0000CF911F910F91FF90EF90DF90CF90BF90DB
-:103A10000C943223603F59F120F4603E08F494C0C6
-:103A200008C0623F09F467C0F0F1633F09F08CC041
-:103A300065C0162F1F708B2D8F71FF2021F00E9403
-:103A4000DD22812F7DCE0E94F822812F27960FB68E
-:103A5000F894DEBF0FBECDBFDF91CF911F910F91C4
-:103A6000FF90EF90DF90CF90BF900C94BD1AFF2095
-:103A7000B1F0553008F02EC18B2D8F7127960FB6FF
-:103A8000F894DEBF0FBECDBFDF91CF911F910F9194
-:103A9000FF90EF90DF90CF90BF900C94172356309B
-:103AA00008F018C1E9CFFF2099F08B2D8F71279670
-:103AB0000FB6F894DEBF0FBECDBFDF91CF911F913F
-:103AC0000F91FF90EF90DF90CF90BF900C94DD228C
-:103AD0008B2D8F7127960FB6F894DEBF0FBECDBF2A
-:103AE000DF91CF911F910F91FF90EF90DF90CF90DA
-:103AF000BF900C94F822F110EBCFD7CFFF2099F0B4
-:103B00008B2D8F7127960FB6F894DEBF0FBECDBFF9
-:103B1000DF91CF911F910F91FF90EF90DF90CF90A9
-:103B2000BF900C94CE2227960FB6F894DEBF0FBE3E
-:103B3000CDBFDF91CF911F910F91FF90EF90DF905C
-:103B4000CF90BF900C94C922FF20A9F0552309F40F
-:103B5000ACCF862F27960FB6F894DEBF0FBECDBF31
-:103B6000DF91CF911F910F91FF90EF90DF90CF9059
-:103B7000BF900C949D19552309F4AACF862F279640
-:103B80000FB6F894DEBF0FBECDBFDF91CF911F916E
-:103B90000F91FF90EF90DF90CF90BF900C94651A3B
-:103BA0004B2D4F70C8010E94E50227960FB6F8947E
-:103BB000DEBF0FBECDBFDF91CF911F910F91FF9060
-:103BC000EF90DF90CF90BF900C94FD21F11082C058
-:103BD0009B2D9F70492F50E04230510599F144F4DC
-:103BE0004115510569F04130510509F073C019C004
-:103BF00043305105C1F14430510509F06BC044C058
-:103C000027960FB6F894DEBF0FBECDBFDF91CF91E0
-:103C10001F910F91FF90EF90DF90CF90BF900C9489
-:103C2000702B27960FB6F894DEBF0FBECDBFDF9185
-:103C3000CF911F910F91FF90EF90DF90CF90BF90A9
-:103C40000C94872B27960FB6F894DEBF0FBECDBF1E
-:103C5000DF91CF911F910F91FF90EF90DF90CF9068
-:103C6000BF900C94A32B27960FB6F894DEBF0FBE1F
-:103C7000CDBFDF91CF911F910F91FF90EF90DF901B
-:103C8000CF90BF900C94B62B862F27960FB6F89442
-:103C9000DEBF0FBECDBFDF91CF911F910F91FF907F
-:103CA000EF90DF90CF90BF900C94DA2B4B2D4F709C
-:103CB000C80127960FB6F894DEBF0FBECDBFDF91C7
-:103CC000CF911F910F91FF90EF90DF90CF90BF9019
-:103CD0000C940E0827960FB6F894DEBF0FBECDBF2A
-:103CE000DF91CF911F910F91FF90EF90DF90CF90D8
-:103CF000BF9008950E940C240E94E1230E94282472
-:103D00000E9418290E946C2880E090E00E94801890
-:103D100080E090E00C9496180E94FC230C947A1E8C
-:103D20000E946923292F22952F7030E02C30310515
-:103D30004CF42A3031056CF422503109223031051F
-:103D400070F407C02C30310531F02F30310539F4D3
-:103D500002C081E0089593FB882780F9089580E0F0
-:103D60000895CF93DF9300D000D01F92CDB7DEB778
-:103D70000F900F900F900F900F90DF91CF910895BB
-:103D8000CF93DF9300D000D000D0CDB7DEB726961A
-:103D90000FB6F894DEBF0FBECDBFDF91CF9108956F
-:103DA0001F93CF93DF93C091530216E012C0D0E06F
-:103DB0001C9FF0011D9FF00D1124ED5DFD4F408112
-:103DC000518162817381848195810E94C01E2196F8
-:103DD000C77080915402C813EACFDF91CF911F9131
-:103DE000089540911D0250911E0260911F02709132
-:103DF000200280912102909122020C94C01E0F9308
-:103E00001F93CF93DF938091220282958F7009F0E8
-:103E100069C080911F02882309F464C0A0915302F5
-:103E2000D0915402B0911D02C0911E0280912002D7
-:103E30009091210221E030E0BF3F11F020E030E01E
-:103E4000122FBC016095709506E04AC0009721F0E2
-:103E5000CF3F29F4212F05C021E030E002C020E04F
-:103E600030E020FD3BC04A2F50E0049FF001059F49
-:103E7000F00D1124ED5DFD4F2181C2132FC0208173
-:103E8000B2132CC02281211129C02381348128172B
-:103E9000390718F0281B390B02C0260F371F283CA2
-:103EA0003105E0F4809122028F70806180932202BC
-:103EB00086E0849FF001859FF00D1124E85DFD4FA1
-:103EC00080818F70806180838DE192E00E94C41AAE
-:103ED000DF91CF911F910F910C94D01EAF5FA7700F
-:103EE000AD13B4CFDF91CF911F910F910895EF9251
-:103EF000FF920F931F93CF93DF93CDB7DEB76297F7
-:103F00000FB6F894DEBF0FBECDBF8C0185E0F8017F
-:103F1000DE011D9601900D928A95E1F7D8014C9132
-:103F200011965C91119712966C9112971396ED90E1
-:103F3000FC90149770911D02E0911E028091200266
-:103F400090912102009739F0EF3F41F421E030E0F9
-:103F50007F3F31F003C021E030E002C020E030E0DC
-:103F600020FD5CC120911F02222309F4F1C0E81654
-:103F7000F90628F09701281B390BC90104C0809568
-:103F800090958E0D9F1D883C910508F098C08091FA
-:103F90002202982F907F09F064C0E51314C07413B7
-:103FA00012C0611110C08F708061809322020E9444
-:103FB000F11E8DE192E00E94C41A80912202D80184
-:103FC00015968C9343C1EF2839F05F3F41F481E0AF
-:103FD00090E04F3F31F003C081E090E002C080E00C
-:103FE00090E080FD03C081E0862702C080E090E081
-:103FF00080FF2EC0809153022091540236E013C0FE
-:1040000090E0389FF001399FF00D1124ED5DFD4FD8
-:104010007181571306C07081471303C07281671303
-:1040200017C0019687708213EBCF12C19F7059F0B1
-:10403000882309F40BC107C09F7029F0F80195810E
-:10404000907F09F403C1805E883008F4FFC0D2C0BD
-:10405000662309F4FBC080912202816080932202D2
-:10406000F5C0E51308C0741306C0611104C0D8017F
-:1040700015968C939DC04D875E878D859E856A8B36
-:104080000E94901E6A89882309F4B4C0662309F44B
-:10409000B1C020912202822F82958F7090E002970A
-:1040A0000CF4C6C080911D0290911E0298878F83E8
-:1040B0001986FB86EA862C87CE01079646C080913A
-:1040C0002202982F907F59F47E2DF98AE88A8989F7
-:1040D0000E94B11E8DE192E00E94C41A95C0E513C2
-:1040E00011C074130FC061110DC0F8018583C801A0
-:1040F0000E94C41AEDE1F2E086E0DF011D928A958C
-:10410000E9F7A2C04D875E878D859E856A8B0E94E8
-:10411000901E6A89882309F46DC0662309F46AC079
-:1041200020912202822F82958F7090E002970CF4EA
-:104130007FC080911D0290911E029A8389831B8209
-:10414000FD82EC822E83CE0101960E94C41A70C0BB
-:10415000E816F90628F09701281B390BC90104C09D
-:10416000809590958E0D9F1D883C910508F046C066
-:10417000662309F43FC0E51330C074132EC02091AC
-:10418000220220FD21C0322F32953F70832F90E014
-:104190000097D1F0D80115962C9315970F9741F001
-:1041A000832F8F5F8295807F2F70282B15962C93FD
-:1041B000C8010E94C41A86E0F801ADE1B2E00190A6
-:1041C0000D928A95E1F73EC086E0F801ADE1B2E0DC
-:1041D00001900D928A95E1F737C04D875E878D85F6
-:1041E0009E850E94901E811123C0809122028160D1
-:1041F00080932202C8010E94C41A26C07E2DF98A2B
-:10420000E88A89890E94B11EEDE1F2E086E0DF01D3
-:104210001D928A95E9F70E94F11E18C0662351F39A
-:104220004D875E878D859E850E94901E882311F3A1
-:1042300086E0F801ADE1B2E001900D928A95E1F7D8
-:104240000E94FF1E0E94F11E81E014C080E012C097
-:104250004D875E878D859E850E946923292F229533
-:104260002F7030E0223031050CF4E0CE24303105DF
-:104270000CF6E2CE62960FB6F894DEBF0FBECDBF4D
-:10428000DF91CF911F910F91FF90EF9008951F93B1
-:10429000CF93DF93CDB7DEB72C970FB6F894DEBF80
-:1042A0000FBECDBF4F83588769877A878B879C87DE
-:1042B000CE0107960E94771F8823D9F02F81388579
-:1042C0008A859B85892B39F03F3F19F080E090E08B
-:1042D00004C02F3FD9F781E090E0892B09F06DC031
-:1042E0004F81588569857A858B859C850E94C01E83
-:1042F00064C086E0FE013796DE01119601900D92B2
-:104300008A95E1F7FF81E8854A855B85411551056E
-:1043100039F0EF3F41F481E090E0FF3F31F003C01E
-:1043200081E090E002C080E090E080FD46C02091F6
-:10433000540230E0C90101968770992760915302B9
-:1043400070E08617970709F440C0F983EA835D831C
-:104350004C8396E0929FD001939FB00D1124AD5DE8
-:10436000BD4FFE01319601900D929A95E1F7809331
-:1043700054020E94D01E21C0189FC00111248D5DDF
-:104380009D4F0E94771F882371F1E09153021E9F79
-:10439000F0011124ED5DFD4F4081518162817381F7
-:1043A000848195810E94C01E8091530290E0019605
-:1043B000877099278093530201C016E080915302C1
-:1043C000909154028913D8CF0EC00E948C1E109277
-:1043D000540210925302EDE1F2E086E0DF011D92FB
-:1043E0008A95E9F7EACF2C960FB6F894DEBF0FBE98
-:1043F000CDBFDF91CF911F910895DF92EF92FF9291
-:104400000F931F93CF93DF93EC01009709F46CC0D7
-:10441000D12CEE24E394F12C8E010F5F1F4FFE018F
-:104420008491843748F4843008F04AC0813071F0B8
-:10443000823009F059C01EC0853709F43DC070F1C3
-:10444000982F9458903708F04FC03DC02296F8013D
-:104450008491982F905E983050F48770FE2D01C0A3
-:10446000FF0F8A95EAF78F2F0E94FF2330C00E942A
-:104470009D192DC02296F8018491982F905E983056
-:1044800050F48770FE2D01C0FF0F8A95EAF78F2F39
-:104490000E9405241CC00E94651A19C02296F801CA
-:1044A000049107C08FE99FE00197F1F700C0000079
-:1044B00001500111F7CF0BC02296F801D49007C02C
-:1044C0000E949D1903C08F770E94651AE8018D2D07
-:1044D00007C08150EFE9FFE03197F1F700C000001D
-:1044E000882309F499CFF5CFDF91CF911F910F91D8
-:1044F000FF90EF90DF9008956093590270935A02F5
-:1045000080935B0290935C020C947A1E6093550238
-:104510007093560280935702909358020C947A1E1F
-:1045200008950C947C220F931F93009159021091CF
-:104530005A0220915B0230915C02602B712B822B1E
-:10454000932B1F910F910C947C220F931F9300913A
-:10455000590210915A0220915B0230915C02602353
-:104560007123822393231F910F910C947C220F932C
-:104570001F930091590210915A0220915B023091D1
-:104580005C0260277127822793271F910F910C945B
-:104590007C2260E070E0CB010C94862241E050E088
-:1045A00060E070E004C0440F551F661F771F8A95B6
-:1045B000D2F7CB01BA010C94862241E050E060E0D2
-:1045C00070E004C0440F551F661F771F8A95D2F70D
-:1045D0008091550290915602A0915702B0915802D5
-:1045E000482B592B6A2B7B2BCB01BA010C948622CA
-:1045F00041E050E060E070E004C0440F551F661FCA
-:10460000771F8A95D2F74095509560957095809167
-:10461000550290915602A0915702B091580248233A
-:1046200059236A237B23CB01BA010C94862241E0F3
-:1046300050E060E070E004C0440F551F661F771F14
-:104640008A95D2F78091550290915602A091570217
-:10465000B0915802482759276A277B27CB01BA0116
-:104660000C9486220F931F930091550210915602CD
-:104670002091570230915802602B712B822B932B83
-:104680001F910F910C9486220F931F930091550256
-:1046900010915602209157023091580260237123E5
-:1046A000822393231F910F910C9486220F931F93C3
-:1046B00000915502109156022091570230915802F4
-:1046C00060277127822793271F910F910C948622D0
-:1046D0000895CF92DF92EF92FF920F931F93CF93A3
-:1046E000DF93EC01C0905902D0905A02E0905B0237
-:1046F000F0905C028091550290915602A091570271
-:10470000B0915802C82AD92AEA2AFB2A0FE110E000
-:10471000B701A601002E04C0769567955795479579
-:104720000A94D2F740FF08C0BE01802F0E94E00328
-:104730008130910509F007C00150110948F7BE0109
-:1047400080E00E94E003DF91CF911F910F91FF90D5
-:10475000EF90DF90CF90089540911B0150911C0184
-:1047600020E030E09FEFFA01E20FF31F628168174B
-:10477000A1F09F3F19F4611101C0922F2F5F3F4FAD
-:104780002630310581F707C0FA01E90FF11D97FDC9
-:10479000FA95828308959F3FB9F7089540911B01D0
-:1047A00050911C0120E030E0FA01E20FF31F9281EA
-:1047B000981301C012822F5F3F4F26303105A1F7B9
-:1047C000089581E090E0E0911B01F0911C01E80F59
-:1047D000F91F1082019688309105A9F708959091EC
-:1047E0005D02982B90935D020895809590915D02F3
-:1047F000982390935D02089510925D020895909120
-:104800005E02982B90935E020895809590915E02CF
-:10481000982390935E02089510925E02089580930B
-:104820005F02089510925F02089540911B0150911C
-:104830001C0120E030E080E0FA01E20FF31F9181DB
-:1048400091118F5F2F5F3F4F27303105A9F70895F2
-:10485000E0911B01F0911C0180915D028083E09149
-:104860001B01F0911C01808190915E02892B808355
-:1048700090915F02992361F0E0911B01F0911C017E
-:104880008081892B80830E94152481110E9412242B
-:1048900080911B0190911C010C946A1880916E0309
-:1048A000843009F11092690220E488E190E00FB6AB
-:1048B000F894A895809360000FBE2093600083B7A2
-:1048C000817F846083BF83B7816083BF789488953C
-:1048D00083B78E7F83BF88E10FB6F8948093600022
-:1048E000109260000FBE0895CF930E94E3020E94D1
-:1048F0007E060E94E402C0E08C2F0E94C407892B30
-:1049000029F4CF5FC430C1F780E001C081E0CF91CE
-:1049100008950E948C1E0C945F2B1F920F920FB66D
-:104920000F9211248F939F93AF93BF93809169024D
-:10493000811113C080916A0290916B02A0916C0268
-:10494000B0916D024196A11DB11D80936A029093B2
-:104950006B02A0936C02B0936D02BF91AF919F91D7
-:104960008F910F900FBE0F901F90189582E084BD1D
-:1049700093E095BD9AEF97BD80936E0008958FB731
-:10498000F89440916A0250916B0260916C027091B0
-:104990006D028FBFCA010895CF92DF92EF92FF920E
-:1049A0000F931F932FB7F89440916A0250916B02B6
-:1049B00060916C0270916D022FBF6A017B01EE2441
-:1049C000FF248C0120E030E0C016D106E206F30699
-:1049D00020F09A01281B390B05C09C0120953095C9
-:1049E000240F351FC9011F910F91FF90EF90DF90A9
-:1049F000CF9008951F920F920FB60F9211248F93AC
-:104A00009F93AF93BF9380916A0290916B02A091A4
-:104A10006C02B0916D020196A11DB11D80936A02D6
-:104A200090936B02A0936C02B0936D02BF91AF9113
-:104A30009F918F910F900FBE0F901F9018950E941D
-:104A4000A111F8942FEF87EA91E621508040904021
-:104A5000E1F700C0000087E090EBDC018093780371
-:104A600090937903A0937A03B0937B032CE088E1C1
-:104A700090E00FB6F894A895809360000FBE209345
-:104A80006000FFCFCF92DF92EF92FF920F931F93C0
-:104A9000CF93DF93C82ED12C01E010E08D2D0E9422
-:104AA000C4077C01C0E0D0E098010C2E02C0220FA8
-:104AB000331F0A94E2F72E213F21232B29F421965C
-:104AC000CC30D10589F708C06C2F7D2D80E00E9485
-:104AD000BB03C812F4CF06C0D39484E0D812DECF53
-:104AE00080E001C081E0DF91CF911F910F91FF9095
-:104AF000EF90DF90CF900895CF93C82F8CE20E9463
-:104B00004225882321F08C2FCF910C94422580E000
-:104B1000CF910895CF930E94CD26811102C00E94AB
-:104B2000AE26C5E608C00E947E068FE39CE9019789
-:104B3000F1F700C00000C150B1F789E20E947C2566
-:104B400081110AC18AE20E947C2581110E94AE2651
-:104B500085E00E947C2581110E941F250E94D82695
-:104B60008093680287E00E947C25882399F18BE17D
-:104B70000E947C25882351F09091680291FB882740
-:104B800080F921E0822780FB91F922C08EE00E940B
-:104B90007C25882351F09091680292FB882780F948
-:104BA00021E0822780FB92F913C080E10E947C25DE
-:104BB00090916802882341F093FB882780F921E0D7
-:104BC000822780FB93F904C0892F809580FB90F9A0
-:104BD00090936802809168020E94DC260E94EA2677
-:104BE00080937B0280EE0E947C25882341F0809197
-:104BF0007B02982F909590FB80F980937B0289E34C
-:104C00000E947C25882359F090917B0291FB882794
-:104C100080F921E0822780FB91F990937B0282EE5C
-:104C20000E947C25882359F090917B0292FB882773
-:104C300080F921E0822780FB92F990937B0286EE37
-:104C40000E947C25882359F090917B0293FB882752
-:104C500080F921E0822780FB93F990937B0283EE19
-:104C60000E947C25882359F090917B0294FB882731
-:104C700080F921E0822780FB94F990937B0285E301
-:104C80000E947C25882359F090917B0295FB882710
-:104C900080F921E0822780FB95F990937B0281E3E4
-:104CA0000E947C25882359F090917B0296FB8827EF
-:104CB00080F921E0822780FB96F990937B0281E1C5
-:104CC0000E947C25882359F090917B0297FB8827CE
-:104CD00080F921E0822780FB97F990937B028091F5
-:104CE0007B020E94EE2687E20E947C25C82F8EE17F
-:104CF0000E947C258111C2608FE10E947C25811178
-:104D0000C46080E20E947C258111C86081E20E941B
-:104D10007C258111C06182E20E947C258111C062E4
-:104D200083E20E947C258111C06484E20E947C257C
-:104D3000882311F0C06802C0CC2329F08C2F0E9478
-:104D4000E5266C2F03C00E94E126682F70E080E00A
-:104D500090E0CF910C949122CF9108956DEE7EEF6B
-:104D600080E090E00E94BA2F60E082E090E00E9434
-:104D7000AC2F60E083E090E00E94AC2F60E084E024
-:104D800090E00E94AC2F60E085E090E00E94AC2FA4
-:104D900060E086E090E00C94AC2F80E090E00E9410
-:104DA000A62F21E08D3E9E4F09F020E0822F08952E
-:104DB00082E090E00C949E2F682F82E090E00C94AB
-:104DC000AC2F83E090E00C949E2F682F83E090E05E
-:104DD0000C94AC2F84E090E00C949E2F682F84E01C
-:104DE00090E00C94AC2F86E090E00C949E2F682FFE
-:104DF00086E090E00C94AC2F8091760280FF0BC08F
-:104E00006091200185E0689FB00111247595679538
-:104E1000759567952AC081FF09C06091200185E0E2
-:104E2000689FB0011124759567951FC082FF07C068
-:104E30006091200185E0689FB001112416C0409167
-:104E400070024423C9F060911F01461788F7209132
-:104E5000200185E0289F90011124429FC001439FBB
-:104E6000900D112470E00E948A2F6038710540F483
-:104E70006115710539F002C065E070E0862F089574
-:104E80008FE7089581E008958091760280FF08C041
-:104E900060911E0170E0759567957595679521C0C5
-:104EA00081FF06C060911E0170E07595679519C07D
-:104EB00082FF04C060911E0170E010C080917002FA
-:104EC0008823C1F060911D018617A0F790911E0103
-:104ED000989FC001112470E00E948A2F60387105EC
-:104EE00028F46115710521F0862F08958FE7089544
-:104EF00081E0089561E070E0F4CF803F21F40E94EA
-:104F0000FC26819504C0813F29F40E94FC268093F1
-:104F100073020895823F21F40E94FC26819504C00B
-:104F2000833F29F40E94FC26809372020895893FF2
-:104F300019F40E94442705C08A3F31F40E94442797
-:104F400081958093740208958B3F21F40E94442739
-:104F5000819504C08C3F29F40E94442780937502F8
-:104F60000895843F21F480917102816017C0853FCC
-:104F700021F480917102826011C0863F21F48091FA
-:104F8000710284600BC0873F21F4809171028860B8
-:104F900005C0883F31F48091710280618093710275
-:104FA00008958D3F21F48091760281600BC08E3F81
-:104FB00021F480917602826005C08F3F29F48091B0
-:104FC00076028460809376020895803F29F4809170
-:104FD000730287FF6EC007C0813F41F48091730266
-:104FE00018160CF066C01092730263C090917202A2
-:104FF000823F19F497FF5DC005C0833F31F4191655
-:105000000CF057C01092720254C0893F31F4809165
-:10501000740218160CF04DC006C08A3F39F4809116
-:10502000740287FF46C01092740243C08B3F29F47C
-:105030008091750287FF3DC006C08C3F39F4809196
-:1050400075021816B4F51092750233C0843F21F42E
-:10505000809171028E7F05C0853F31F4809171028D
-:105060008D7F8093710225C0863F21F4809171026B
-:105070008B7FF7CF873F21F480917102877FF1CF3B
-:10508000883F21F4809171028F7EEBCF8D3F21F418
-:10509000809176028E7F0BC08E3F21F48091760244
-:1050A0008D7F05C08F3F29F4809176028B7F80939E
-:1050B00076028091720281110EC08091730281117B
-:1050C0000AC080917402811106C08091750281111D
-:1050D00002C010927002089581E792E00E94751854
-:1050E0000E94BF2490936F0280936E020895CF9325
-:1050F00080916E0290916F020E94CC2440917002C8
-:10510000442321F02091210130E006C020912201AA
-:105110005AE0259F900111248217930708F486C056
-:105120008091720281110DC090917302911109C09A
-:1051300090917402911105C090917502992309F420
-:1051400075C04F3F19F04F5F40937002181624F45A
-:105150000E94FC26809372028091720287FF05C034
-:105160000E94FC268195809372028091730218162A
-:1051700024F40E94FC26809373028091730287FFBF
-:1051800005C00E94FC268195809373026091720293
-:10519000662339F1C0917302CC2319F1772767FD9B
-:1051A0007095872F972F0E94FA2C23E333E343E374
-:1051B0005FE30E94AE2D0E94C72C609372026C2F99
-:1051C000772767FD7095872F972F0E94FA2C23E38E
-:1051D00033E343E35FE30E94AE2D0E94C72C60934C
-:1051E000730280917402181624F40E94442780935D
-:1051F00074028091740287FF05C00E944427819544
-:105200008093740280917502181624F40E9444273A
-:10521000809375028091750287FF05C00E94442724
-:10522000819580937502CF910C946C28CF9108954D
-:10523000E1E7F2E085E0DF011D928A95E9F710923F
-:105240007002109276020895833089F130F4813033
-:1052500061F0823009F06EC019C0853009F449C090
-:10526000B8F1863009F066C055C020912201862F22
-:1052700090E0820F911D8F3F910520F4620F6093A3
-:10528000220108958FEF809322010895209121013A
-:10529000862F90E0820F911D8F3F910520F4620FC1
-:1052A0006093210108958FEF80932101089520914B
-:1052B0002001862F90E0820F911D8F3F910520F4F1
-:1052C000620F6093200108958FEF8093200108956D
-:1052D00020911F01862F90E0820F911D8F3F910535
-:1052E00020F4620F60931F0108958FEF80931F01D8
-:1052F000089520911E01862F90E0820F911D8F3F0F
-:10530000910520F4620F60931E0108958FEF809342
-:105310001E01089520911D01862F90E0820F911D9E
-:105320008F3F910520F4620F60931D0108958FEF68
-:1053300080931D010895833021F130F4813059F0BC
-:10534000823009F049C012C0853089F128F18630D9
-:1053500009F042C037C080912201681720F4861BF3
-:1053600080932201089510922201089580912101D5
-:10537000681720F4861B8093210108951092210163
-:10538000089580912001681720F4861B80932001E6
-:10539000089510922001089580911F01681720F44C
-:1053A000861B80931F01089510921F01089580911C
-:1053B0001E01681720F4861B80931E010895109229
-:1053C0001E01089580911D01681720F4861B8093AB
-:1053D0001D01089510921D01089541E050E060E024
-:1053E00070E004C0440F551F661F771F8A95D2F7DF
-:1053F000CB01BA010E9491220C948C1E873208F5D1
-:105400008E3108F0B9C08E3009F47EC060F4873068
-:1054100009F465C018F4863059F549C0883051F157
-:105420008B3031F5AEC0883130F4863108F0A9C038
-:105430008031F1F473C0893109F4A3C08B31C1F418
-:1054400059C08933F1F068F4893209F493C018F433
-:10545000873271F48FC0853309F48CC0883341F4EE
-:1054600090C0863409F46BC008F488C0883449F1D0
-:1054700080E008950E94D8260E94EA260E94F32622
-:1054800080C00E945918892B59F00E945918909396
-:105490007902809378020E948C1E80E090E004C024
-:1054A00080917802909179020E9454186AC080918C
-:1054B0006802817F8E7F8093680281E0809377020B
-:1054C00008950E948C1E2FEF83ED90E321508040C1
-:1054D0009040E1F700C000000E941F2552C080915B
-:1054E000680280FF03C0817F8E7F01C0816080934E
-:1054F000680247C09091680291FB882780F921E0FB
-:10550000822780FB91F913C09091680292FB882753
-:1055100080F921E0822780FB92F909C0909168020E
-:1055200093FB882780F921E0822780FB93F99093F1
-:105530006802882331F191609093680222C081E86B
-:1055400090E00E9480182FEF81EE94E0215080407F
-:105550009040E1F700C0000080E090E00E948018D9
-:105560002FEF89E698E1215080409040E1F700C09C
-:10557000000007C080E003C08D5101C089530E9424
-:10558000ED2981E0089580E0089580E00895CF93AB
-:10559000C82F80917702813071F020F0823009F0BD
-:1055A00083C037C0A0911B01B0911C018C91823245
-:1055B00009F07CC007C0A0911B01B0911C018C9127
-:1055C000823249F48C2F0E94C32A81111EC08C2F75
-:1055D0000E94FE291CC08C2F0E94C52A811115C073
-:1055E000C43169F030F4CB3081F0C03109F062C0D1
-:1055F00009C0C93221F0C83309F05CC006C010925E
-:10560000770258C082E08093770281E090E0817059
-:1056100054C0C932C1F060F4C431A9F020F4C730DD
-:1056200009F046C02EC0CE51CA3008F041C011C0AA
-:10563000CE3409F118F4CB34D9F517C0C13599F03F
-:10564000C235B1F50EC010927A0281E080937702E4
-:1056500034C0EC2FF0E0E455FE4F808180937A0255
-:1056600027C061E003C061E007C06AE080917A0270
-:105670000E9424291DC06AE080917A020E949B2921
-:1056800017C08EE18093220182E3809321018AE09A
-:105690008093200184E180931F0188E080931E01A4
-:1056A00088E280931D0104C01092770280E005C05B
-:1056B00081E003C080E090E0AACFCF9108950E94DE
-:1056C000CD26811102C00E94AE260E94F32680934F
-:1056D000770380FF02C0869501C080E00C94DF074D
-:1056E00080917703982F9695292F30E0233031054C
-:1056F0004CF49F5F990F8170892B816080937703B1
-:105700000E94F7268091770386950C94DF0780919D
-:105710007703982F969591F09158990F8170892B66
-:10572000809377038E7F91E009F490E08091770376
-:1057300090FB80F9809377030E94F726809177038E
-:1057400086950C94DF0780917703982F909590FBB6
-:1057500080F9809377030E94F7268091770380FF7A
-:1057600002C0869501C080E00C94DF07309177037A
-:10577000232F26952F5F2F77822F90E0317004978B
-:105780002CF4220F232B2093770302C0309377034E
-:1057900080917703282F2E7F91E009F490E090FB11
-:1057A00080F9809377030E94F7268091770386958E
-:1057B0000C94DF0720917703922F96959827990FE5
-:1057C000822F8170892B809377038E7F91E009F47B
-:1057D00090E08091770390FB80F9809377030E949B
-:1057E000F7268091770386950C94DF075058BB27E6
-:1057F000AA270ED075C166D130F06BD120F031F4FC
-:105800009F3F11F41EF45BC10EF4E095E7FB51C11C
-:10581000E92F77D180F3BA176207730784079507DA
-:1058200018F071F49EF58FC10EF4E0950B2EBA2F8F
-:10583000A02D0B01B90190010C01CA01A001112496
-:10584000FF27591B99F0593F50F4503E68F11A1642
-:10585000F040A22F232F342F4427585FF3CF4695D3
-:1058600037952795A795F0405395C9F77EF41F16F5
-:10587000BA0B620B730B840BBAF09150A1F0FF0FBF
-:10588000BB1F661F771F881FC2F70EC0BA0F621FAB
-:10589000731F841F48F4879577956795B795F7959B
-:1058A0009E3F08F0B3CF9395880F08F09927EE0F2D
-:1058B000979587950895D9D008F481E008950CD084
-:1058C0000FC107D140F0FED030F021F45F3F19F056
-:1058D000F0C0511139C1F3C014D198F39923C9F321
-:1058E0005523B1F3951B550BBB27AA2762177307E6
-:1058F000840738F09F5F5F4F220F331F441FAA1F9A
-:10590000A9F333D00E2E3AF0E0E830D09150504059
-:10591000E695001CCAF729D0FE2F27D0660F771F07
-:10592000881FBB1F261737074807AB07B0E809F0E9
-:10593000BB0B802DBF01FF2793585F4F2AF09E3F7E
-:10594000510568F0B6C000C15F3FECF3983EDCF350
-:10595000869577956795B795F7959F5FC9F7880FF7
-:10596000911D9695879597F90895E1E0660F771F49
-:10597000881FBB1F621773078407BA0720F0621BDA
-:10598000730B840BBA0BEE1F88F7E095089504D0D3
-:105990006894B111D9C00895BCD088F09F5790F099
-:1059A000B92F9927B751A0F0D1F0660F771F881F44
-:1059B000991F1AF0BA95C9F712C0B13081F0C3D05F
-:1059C000B1E00895C0C0672F782F8827B85F39F0FD
-:1059D000B93FCCF3869577956795B395D9F73EF4A3
-:1059E00090958095709561957F4F8F4F9F4F08954B
-:1059F000E89409C097FB3EF4909580957095619569
-:105A00007F4F8F4F9F4F9923A9F0F92F96E9BB271E
-:105A10009395F695879577956795B795F111F8CF9A
-:105A2000FAF4BB0F11F460FF1BC06F5F7F4F8F4F05
-:105A30009F4F16C0882311F096E911C0772321F0FB
-:105A40009EE8872F762F05C0662371F096E8862F93
-:105A500070E060E02AF09A95660F771F881FDAF7EA
-:105A6000880F9695879597F90895990F0008550F17
-:105A7000AA0BE0E8FEEF16161706E807F907C0F0D4
-:105A800012161306E407F50798F0621B730B840BDC
-:105A9000950B39F40A2661F0232B242B252B21F4B6
-:105AA00008950A2609F4A140A6958FEF811D811D56
-:105AB000089597F99F6780E870E060E008959FEF90
-:105AC00080EC089500240A94161617061806090695
-:105AD000089500240A941216130614060506089564
-:105AE000092E0394000C11F4882352F0BB0F40F4EC
-:105AF000BF2B11F460FF04C06F5F7F4F8F4F9F4F2C
-:105B0000089557FD9058440F551F59F05F3F71F0AD
-:105B10004795880F97FB991F61F09F3F79F0879514
-:105B20000895121613061406551FF2CF4695F1DF9D
-:105B300008C0161617061806991FF1CF869571052D
-:105B4000610508940895E894BB2766277727CB0161
-:105B500097F908958ADF08F48FEF08950BD0C0CF2E
-:105B6000B1DF28F0B6DF18F0952309F0A2CFA7CF58
-:105B70001124EACFC6DFA0F3959FD1F3950F50E033
-:105B8000551F629FF001729FBB27F00DB11D639FEF
-:105B9000AA27F00DB11DAA1F649F6627B00DA11D95
-:105BA000661F829F2227B00DA11D621F739FB00D3B
-:105BB000A11D621F839FA00D611D221F749F3327AB
-:105BC000A00D611D231F849F600D211D822F762F44
-:105BD0006A2F11249F5750408AF0E1F088234AF041
-:105BE000EE0FFF1FBB1F661F771F881F915050408D
-:105BF000A9F79E3F510570F05CCFA6CF5F3FECF355
-:105C0000983EDCF3869577956795B795F795E79578
-:105C10009F5FC1F7FE2B880F911D9695879597F989
-:105C20000895FA01EE0FFF1F30962105310599F115
-:105C30006115710561F48038BFE39B0749F16894F1
-:105C40009038810561F08038BFEF9B0741F09923C0
-:105C500042F5FF3FE1053105210511F1E894089473
-:105C6000E795D901AA2329F4AB2FBE2FF85FD0F313
-:105C700010C0FF5F70F4A695E0F7F73950F019F007
-:105C8000FF3A38F49F779F930CD00F9007FC905801
-:105C900008953EF014CF60E070E080E89FE308953F
-:105CA0004FE79F775F934F933F932F939ED02F9112
-:105CB0003F914F915F9152DF05C019F40EF0F9CE7C
-:105CC00042CFFDCE26DFC8F39638C0F707F80F9213
-:105CD000E8942BE33AEA48EB5FE74EDF0F920F922E
-:105CE0000F924DB75EB70F92C0D0ECEAF0E016D03D
-:105CF0004F915F91EF91FF91E595EE1FFF1F49F0E6
-:105D0000FE57E0684427EE0F441FFA95E1F74195EE
-:105D1000550B32D00F9007FE26C00895DF93CF9326
-:105D20001F930F93FF92EF92DF927B018C01689497
-:105D300005C0DA2EEF011EDFFE01E894A591259142
-:105D4000359145915591AEF3EF0162DDFE0197016A
-:105D5000A801DA9479F7DF90EF90FF900F911F91EF
-:105D6000CF91DF9108959B01AC0160E070E080E885
-:105D70009FE3A5CD9ECEACC0CCDEE8F39923D9F34A
-:105D8000940F511DBBF39150504094F059F088236B
-:105D900032F0660F771F881F91505040C1F79E3F29
-:105DA000510544F7880F911D9695879597F90895A9
-:105DB0005F3FACF0983E9CF0BB2786957795679542
-:105DC000B79508F4B1609395C1F7BB0F58F711F47C
-:105DD00060FFE8CF6F5F7F4F8F4F9F4FE3CFB4CE11
-:105DE0000EF076C06CCE689464CE93DEC8F399232F
-:105DF000D1F3C6F3DF93CF931F930F93FF92C92F75
-:105E0000DD2788232AF02197660F771F881FDAF78E
-:105E100020E030E040E85FEB9FE3883920F0803EEF
-:105E200030F021968F77E3DCE4EDF0E003C0DFDCB7
-:105E3000E1E0F1E073DF8B01BE01EC01FB2E6F5757
-:105E400071097595771F880B990BD4DD28E132E72E
-:105E500041E35FE38FDEAF2D9801AE01FF900F911C
-:105E60001F91CF91DF91D4DC3BCEFA01DC01AA0F68
-:105E7000BB1F9B01AC01BF5728F4222733274427BF
-:105E800050781FC0B75188F4AB2F00244695379542
-:105E90002795011CA395D2F3002069F0220F331F30
-:105EA000441FB395DAF30DD0A1CC61307105A0E8A1
-:105EB0008A07B94630F49B01AC016627772788270B
-:105EC0009078309621F02083318342835383089564
-:105ED0009F3F31F0915020F4879577956795B7955E
-:105EE000880F911D9695879597F90895AA1BBB1B5E
-:105EF00051E107C0AA1FBB1FA617B70710F0A61BCA
-:105F0000B70B881F991F5A95A9F780959095BC01EA
-:105F1000CD01089597FB072E16F4009407D077FD66
-:105F200009D00E94762F07FC05D03EF4909581950C
-:105F30009F4F0895709561957F4F0895F999FECF11
-:105F400092BD81BDF89A992780B50895A8E1B0E087
-:105F500042E050E00C94C12F262FF999FECF1FBAD2
-:105F600092BD81BD20BD0FB6F894FA9AF99A0FBE82
-:105F7000019608950E94AC2F272F0C94AD2FDC01C1
-:105F8000CB01FC01F999FECF06C0F2BDE1BDF89A44
-:105F9000319600B40D9241505040B8F70895F894EE
-:025FA000FFCF31
-:105FA2000507000C058540000001064000000100C5
-:105FB200D80B680C440C0F0CDB0B01600228081490
-:105FC2000A321E40004500250026006100600020C4
-:105FD2000037006400650066006700440046002444
-:105FE2000047000000020004000500070009000B42
-:105FF200000C000E0010001100130015001700180D
-:10600200001A001C001D001F00210023002400268E
-:1060120000280029002B002D002F00300032003410
-:10602200003500370039003B008803A103BA03D3CF
-:1060320003FB04AE04780458043F4D3620020302E9
-:10604200000001000101010101000101010203043C
-:0660520005060708090025
-:00000001FF
diff --git a/keyboard/planck/planck_pcb_r3_w_bootloader.hex b/keyboard/planck/planck_pcb_r3_w_bootloader.hex deleted file mode 100755 index c61dfb743a..0000000000 --- a/keyboard/planck/planck_pcb_r3_w_bootloader.hex +++ /dev/null @@ -1,1796 +0,0 @@ -:020000020000FC
-:047000000C948D3E21
-:047028000C94B73DD0
-:10702F0012010002FF010020EB03F42F0000010208
-:10703F00030109021200010100803209040000005F
-:10704F00000000000C03410054004D0045004C00AF
-:10705F001603410054006D00330032005500340018
-:10706F004400460055000C0331002E0030002E0066
-:10707F0030000403090416010C0100000C0000018C
-:02708F006C7F14
-:1070920012BD01BDF89A00B5089501E00895F9996D
-:1070A200FECF12BD01BD20BDFA9AF99AF6CFF99929
-:1070B200FECF0C944938F80104910895F8013491F7
-:1070C20031962491890108950091610000930C0189
-:1070D20000E80093610001E00093610005BF02E057
-:1070E20005BF0C9486380091D70001600093D70049
-:1070F200A89507EF04BF0091600000610093600053
-:1071020000E00093600001E008950E94AA3D0E9401
-:10711200B53DFDCF0CD00F7708D0006806D00061D6
-:1071220004D0016028D0789408950093D80000918B
-:10713200D8000895FCDF00621ED04CD009B500FFD4
-:10714200FDCFF5DF0F7D17D00091E0000E7F009399
-:10715200E0000091E000077F0093E0000091E20070
-:1071620001600093E2000091E20008600093E200F7
-:1071720078940C94743B0093D800089500910D010B
-:10718200002359F40091D90000FF07C0D0DF006846
-:10719200F2DF01E000930D01CDDFE0E2F2E00081D9
-:1071A200018100FF0DC0008111811E7F11830083C8
-:1071B20001E00093EA0000E00093EA0000931E025F
-:1071C20000E00093E9000091E80003FF02C00E9482
-:1071D200F23B0895A89539D000E40093600000E0E6
-:1071E200009381000093800010E0009385000093DB
-:1071F200840001E006BB00918100036000938100DE
-:107202000091600007FFFCCF00E80093600010933C
-:107212008100A89507EF04BF18D010936000209159
-:1072220084003091850010938100109380001093A8
-:1072320085001093840001E006BB2D3D354010F01F
-:1072420002E101C002E009BD089500916000006101
-:107252000093600008950E94AD3E239741D100E063
-:1072620000930901B5D104811581012B51F437D165
-:1072720000910701002309F4B9C000E0009307015F
-:10728200B5C058D102FFFDCF37D1068335D1009367
-:107292000F0132D1009310012FD1009311012CD193
-:1072A2000093120129D10093130102852091130149
-:1072B20030911201409111015091100116811A95DD
-:1072C20041F01250A9F01A9599F11A9509F473C078
-:1072D2008BC010910F01113011F411E001C010E0C8
-:1072E200138799D00C3F11F414D17FC077D17DC0A0
-:1072F20092D010910F01112329F01A9549F01A9595
-:10730200A9F073C010E013870C3F09F06EC0ECCFF8
-:1073120056D103C04CD109F468C00D911C9144D1DF
-:107322000F3FC1F305E0009309015FC011E0EBCF0D
-:10733200D2D029F00250E1F10A9541F056C0FDD0B9
-:107342000E94A33F0FEF00930A014FC0552319F08B
-:107352005A9579F04AC04ED00DEF04BF74D0EAD0EE
-:1073620003FFFDCF67D051D04AD008E00093600000
-:10737200FFCF40D068D0DED003FFFDCF5BD03FD03F
-:1073820044D00FEF1FE004C009811A810150104060
-:1073920009831A8309811A81012BB1F700E800934E
-:1073A200610000910C01009361000C940000FFCF7A
-:1073B20001E003871AC08FD019F00A9539F015C081
-:1073C200535098F4BAD002E000870FC0505339F0FE
-:1073D2005A9541F05F52B1F35A95A1F306C002E00B
-:1073E2000883F0CF01E0FCCFA8D079D02396E4E067
-:1073F2000C94BA3E01E005BF00E005BF089500917C
-:10740200D8000F770093D800089509B50D7F09BD04
-:1074120000E009BD08955183408333832283109194
-:10742200E8001B7F1093E8001091E8001F7710938B
-:10743200E80008955DD053D0F8940091E000016017
-:107442000093E000089579D04AC0219749D0009175
-:107452000601035019F00250B9F00BC03CD021F0E4
-:107462000A9559F00A9529F400910A010C3F19F482
-:1074720050D02196089567D0FCCF0091010100936E
-:10748200F100009100010AC01091100124D019F0FE
-:107492000A9549F0EECF135018F400E00093F10082
-:1074A2001ED044D0E6CF105339F01A9539F01F524E
-:1074B20041F01A9541F0F4CF08E5F0CF00E006D094
-:1074C200EDCF02E0FCCF04E001D0E8CF10E020E0F5
-:1074D20030E00C94113F00910F010023089521C068
-:1074E2000BD008D007D00093040106D00093050109
-:1074F20021D00BC000D008830091F10008950091C3
-:10750200EB0000620093EB0015D0077F0093E800C8
-:107512000895F5DF02E00093080103E000930901FA
-:10752200089559D007D000FFFDCF089503D002FF80
-:10753200FDCF03C00091E8000895FCDF0B7FE6DF7A
-:10754200F9DF0F77E3CF0E94AC3E42D038D006C0BD
-:107552002BD00093F1002BD059F43DD0082F092BEA
-:10756200A9F0E8DF02FD12C0E5DF00FFFDCF4424F1
-:10757200042D4394003289F300910B0100230D91F5
-:107582001C9131F311970E945838E3CFD3DF00FFEB
-:10759200FDCF21D0CFDF00FFFDCFCCDF02FFFDCF3B
-:1075A200CCDFE5E00C94B93E11970C945C380D9158
-:1075B2001C910F5F1F4F1C930E93019708958281B8
-:1075C200938100811181801B910B0196DF01089547
-:1075D200E0E0F1E00895AEDF0E7F98CF0E94A93E71
-:1075E200F7DF80819181A081B181AF710481158122
-:1075F20000521040048315830AC000910B0100233E
-:1076020031F4A301920103E911E00E943B3F47D00C
-:10761200B8F1662477242C0111C06EDFF301ED5618
-:10762200FE4F008301E0600E00E0701E01960091A3
-:10763200F200002311F033D0B8F47FDF30D0E8F24B
-:10764200F301B096E238F040C0F674DF02FFFDCFDE
-:107652000091F200BDDF24813581201B304024835C
-:107662003583E5CF49DFAA95AA23E1F700910B0103
-:10767200013099F62091F1008C010E945038D6CF4A
-:1076820004811581012B21F055DF02FFFDCF55DF6B
-:10769200A2DF50DF00FFFDCFE8E00C94B63EE0E051
-:1076A200F1E0028113810817190708952091EB0078
-:1076B20021602093EB000093EC000091ED0002703A
-:1076C200012B0093ED000091ED0002600093ED00AC
-:1076D2001091EE00012F000F00E0001F0895412FCE
-:1076E2000093E900089500E009D000FD05C000E024
-:1076F200F7DF10E202E0DACF00E00895F1DF009157
-:10770200EB0008950F770132A9F5112369F11A955B
-:1077120059F01A9561F01A9569F01A95F9F01A95CF
-:10772200C1F01A95D9F024C00E942C3920C00E94C1
-:10773200263A1DC029D00091090123D001E01FD0B3
-:1077420020D0009108011BD00E94923A0E94973AE1
-:107752000EC01AD00091080114D007C002E00093B5
-:10776200080100E0009309010FD00E94923A03C081
-:107772000E94803A02C001E0089500E0089501D01D
-:1077820000E00093F10008950091E800077F009364
-:10779200E800089508950350F9F4112339F01A9579
-:1077A20051F01A9581F01A9599F016C004E016D09E
-:1077B20001E810E703C011D003E510E7E7E1F2E0CA
-:1077C20000831183D8CF06E109D00FE510E7F6CF89
-:1077D20004D005E710E7F2CFD0CF0CE000931A02F5
-:1077E200089527D120D100931D02E1D0212F11232A
-:1077F20029F12A95E9F02250F1F0225099F02A95C8
-:1078020049F0225061F02A9581F02A95E1F02A95FB
-:10781200E9F023C0003809F44FC00C94833B0038D0
-:10782200E1F7C8C00023C9F71EC00023B1F72DC07D
-:10783200033098F744C1033080F70BC1003868F376
-:10784200033858F7C9C0013841F77BC1013051F400
-:10785200FCD0BFD000FD06C0FCCF0E94833B0023BA
-:1078620009F41ED008951091E3001078DCD00F7750
-:10787200012B0093E300E9D0ACD000FFFDCF0091D3
-:10788200E30000680093E300089591D0123040F4C1
-:107892000FD010931E02DAD000911E020C94CB3B43
-:1078A2000091EB0001D004C000620093EB00089548
-:1078B2000091E800077FC0C0BA93AA93229700E024
-:1078C2000093190274D0AFD0202F2A9519F02A956F
-:1078D200E9F022C002E100931A020FE210E7E7E1A9
-:1078E200F2E0008311839DD008839DD00983E0DFFD
-:1078F20000911A0210E02881398102171307A8F4B7
-:107902000F7181F401E00093190211C002E10093AA
-:107912001A0201E410E7E3CF0E94CC3B002319F7DF
-:107922008ED040C01093190202C020931A027ED05A
-:10793200A7E1B2E001C08AD000911A02002309F146
-:1079420048D004FD1EC045D000FD03C042D004FF54
-:10795200FACF10E0012F1395003281F0ED91FC91E6
-:107962001197049133D02D913C912F5F3F4F3C935F
-:107972002E93FD0103810A95038361F72AD004FF48
-:10798200DACF00911902013039F423D004FD04C08A
-:1079920020D000FFFDCF5AD01CD004FFFDCF46D02F
-:1079A20018D00B7F49D02296A991B99108951091D0
-:1079B200F10008957DDF00911E0208D047D009D062
-:1079C2000F773AD006D002FFFDCFBFC00093F1007F
-:1079D20008950091E800089524D010911D021058D6
-:1079E20029F01A9589F01A9591F019C061DF00917A
-:1079F2001C02ECDF00E0EADF29D0EBDF02FFFDCF63
-:107A020018D0E7DF0F770CC053DF00E0F2CF51D080
-:107A12000F7710E0F801E55EFD4F0081EACF0FD04D
-:107A22000BC001D000D00091F1000895D2DF0F7E8B
-:107A320003C00091E8000B7F0093E80008950091D5
-:107A4200EB0032DFC6DF077F089532DFC2DF0E7F31
-:107A5200F3CF00911D02002329F00A9509F10A953E
-:107A620031F01EC0E0DF0A9561D0D9F41AC061D0AE
-:107A7200B9F4D9DF0F7711F416D01BD00093E900C7
-:107A82001091EB0010FF0BC00ED010E01093E90034
-:107A920021E0F801E55EFD4F20834FD003C042D0C4
-:107AA20045D0CFDFC9CF1091EB0010621093EB00ED
-:107AB20008951091E800177F1093E800089500914F
-:107AC2001D02002311F4AFDF02C0013011F4B7DF51
-:107AD200B3CF023031F52DD019F52091F1002F7777
-:107AE2002093E90023D000FF19C081F01FD000616C
-:107AF200DCDE01E010E0422F0E949F3E0093EA008C
-:107B020000E00093EA0012D00860CFDE0BD030E034
-:107B1200F901E55EFD4F008310D0DACF03D0D7CF55
-:107B2200BFDE089500E00093E90008950091EB00A4
-:107B3200089579DF3CDF00230895BADE4ADF0E7F25
-:107B4200089583DF46DF02FFFDCF73DF42DF0F7749
-:107B520073CF0091D70001600093D7000E948B3849
-:107B620000E000931F0208950C94BF388A93FA93A1
-:107B7200EA933A922A921A920A927A936A935A93BF
-:107B82004A933A932A931A930A938FB70091DA0091
-:107B920000FF24C00091D80000FF20C00EEF009328
-:107BA200DA000091D90000FF11C001E000930D013D
-:107BB200ABD0026096D09AD00860A2D00E949B38C7
-:107BC2000091E0000E7F0093E00008C000E0009307
-:107BD2000D0100931E0298D0046083D07FD002FF73
-:107BE20005C084D002FF02C00BEF75D077D000FF32
-:107BF2001BC07CD000FF18C001E000930E016AD0C8
-:107C020083D000626ED00EEF6FD0006179D06ED05B
-:107C12000F7D76D00091D80000620093D80009B59C
-:107C22000D7F09BD00E009BD59D004FF20C05ED020
-:107C320004FF1DC009B500FD05C00E94EB3809B55F
-:107C420000FFFDCF0091D8000F7D0093D80042D0F5
-:107C520000910E01002359F04CD00FEE45D00F7E5B
-:107C620052D000643ED042D001604AD042D036D0D9
-:107C720005FF0FC03BD005FF0CC000E000930E01D2
-:107C820035D00F7E3DD00FED2FD00F7D3CD0006858
-:107C920028D024D003FF0DC029D003FF0AC000E082
-:107CA20000931F0207EF17D00E94743B2DD0116082
-:107CB20018D08FBF09911991299139914991599100
-:107CC200699179910990199029903990E991F991E6
-:107CD200899118950FEE0093E10008950091E1005B
-:107CE20008951183008308950093E1000091E2005A
-:107CF20008950091E200006203D00091E200086062
-:107D02000093E2000895FCDFE0E2F2E000811181DD
-:107D1200089500008895FECF01E60DBF02E00EBF78
-:107D2200C2EED2E00E947438002311F00E94D33ECA
-:107D32000E9465380E948A3E0C948A3E4A951AF047
-:107D4200000F111FFBCF0895BA92AA929A928A92BB
-:107D52007A926A925A924A92BA93AA939A938A937D
-:107D62000895BB84AA84998488847F806E805D8014
-:107D72004C80BB81AA8199818881F0E00FB6F8948A
-:107D8200CE0FDF1F0FBE089520E006D0E9F7089559
-:107D9200259102D0E9F708952D9301501040202F2C
-:107DA200212B089585E890E7FC0105911491FC01CF
-:107DB2003296A591B491FC01349625913491422FCB
-:107DC200432B19F0F901E4DF01C0DEDF069610E76C
-:107DD2008139910748F308952F930CD02F9101D048
-:107DE20008953CD0F12FE02F45E047BFE89536D00B
-:107DF20012D0089533D0F12FE02F43E047BFE8952A
-:107E02002DD008952BD0F12FE02F43E047BFE89506
-:107E120025D001D0089522D041E147BFE8951EC088
-:107E22001DD0F12FE02F41E247BFC895002D16C0AB
-:107E320015D0F12FE02F49E047BFC895002D0EC0A5
-:107E4200F32FE22F012E102E41E047BFE89506C026
-:107E520005D0002E29E027BFE89500C0022E27B7E3
-:107E620020FDFCCF202D0895022E27B726FDFCCF42
-:107E7200202D08950E94A53E22974801C901DA01EA
-:107E820010C05BD001E0A00E00E0B01E00E4A0161E
-:107E920000E0B00608F440C0830120E030E00E9418
-:107EA200F23E0A2F0B2B09F440C0082F0F7710E087
-:107EB2002C01401A510A320100E4A02E03C00A2FFD
-:107EC2000B2BE1F04816590680F0F40101914F01A5
-:107ED2000983119729F001914F010883119711C06D
-:107EE200F2013196049108830CC0F20104910983D6
-:107EF2003196E817F907A1F7F401EDCF1BD00883FB
-:107F020019839201088119810E94213F16D0AA94F7
-:107F1200B1F62301AA24BB240DD0312F0F3F3F4FCE
-:107F220009F4AFCF83011DD0B7CF01E02296ECE078
-:107F32000C94B23E82010C945F3802E0400E00E0E5
-:107F4200501E08959A938A9380E090E08C0109D0A4
-:107F520080589F4F8F3F0FE69007C0F38991999108
-:107F6200089520E030E00C94FB3E00000000000089
-:067F720000000000FC000D
-:107FE4000C94ED3E0C94113F0C94193F0C94213FDA
-:0C7FF4000C94F23E0C94033F0C94293FC7
-:040000030000700089
-:100000000C949D020C94E1020C94E1020C94E10228
-:100010000C94E1020C94E1020C94E1020C94E102D4
-:100020000C94E1020C94E1020C941C120C94EE125C
-:100030000C948D240C94E1020C94E1020C94E102E6
-:100040000C94E1020C94E1020C94E1020C94E102A4
-:100050000C94E1020C94FA240C94E1020C94E10259
-:100060000C94E1020C94E1020C94E1020C94E10284
-:100070000C94E1020C94E1020C94E1020C94E10274
-:100080000C94860A0C94E1020C94E1020C94E102B7
-:100090000C94E1020C94E1020C94E1020C94E10254
-:1000A0000C94E1020C94E1020C94E10207634236E5
-:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9
-:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD
-:1000D0000000803F08000000BE922449123EABAAF7
-:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52
-:1000F000AA3E00000000BF000000803F000000009A
-:1001000000084178D3BB4387D1133D190E3CC3BDD2
-:100110004282AD2B3E68EC8276BED98FE1A93E4C7F
-:1001200080EFFFBE01C4FF7F3F0000000000000021
-:10013000F1A4F1A3018C028C048C2B0014001A0092
-:100140000800150017001C0018000C001200130016
-:100150002A00290004001600070009000A000B000D
-:100160000D000E000F0033003400E1001D001B00E5
-:100170000600190005001100100036003700380095
-:1001800028000030E000E200E30002202C002C00F8
-:1001900001205000510052004F002B0014001A00A3
-:1001A000090013000A000D000F0018001C003300A6
-:1001B0002A002900040015001600170007000B0094
-:1001C000110008000C0012003400E1001D001B00AB
-:1001D0000600190005000E00100036003700380038
-:1001E00028000030E000E200E30002202C002C0098
-:1001F00001205000510052004F002B003400360007
-:10020000370013001C0009000A00060015000F004B
-:100210002A00290004001200080018000C00070042
-:100220000B001700110016003800E1003300140025
-:100230000D000E001B00050010001A0019001D0023
-:1002400028000030E000E200E30002202C002C0037
-:1002500001205000510052004F0035021E021F02C3
-:100260002002210222022302240225022602270262
-:100270002A0001003A003B003C003D003E003F00E8
-:100280002D022E022F0230023102010040004100F7
-:100290004200430044004500032004200520005094
-:1002A0000100010001000100010002200100010025
-:1002B0000100AB00AA00A900AE0035001E001F001F
-:1002C0002000210022002300240025002600270012
-:1002D0002A0001003A003B003C003D003E003F0088
-:1002E0002D002E002F0030003100010040004100A1
-:1002F0004200430044004500032004200520005034
-:1003000001000100010001000100010001000100E5
-:100310000120AB00AA00A900AE0028035400680029
-:100320006500200050006C0061006E0063006B00EF
-:1003300020004B006500790062006F0061007200D0
-:10034000640000002C034F007200740068006F000E
-:100350006C0069006E0065006100720020004B00B7
-:100360006500790062006F00610072006400730034
-:100370000000040309040902D000060100A03209AC
-:100380000400000103010100092111010001223FC5
-:10039000000705810308000A0904010001030102A6
-:1003A00000092111010001224D0007058203080008
-:1003B0000A090402000103000000092111010001E3
-:1003C0002236000705830308000A0904030002031C
-:1003D000000000092111010001222000070584030B
-:1003E00020000107050403200001090404000001A6
-:1003F00001000009240100010900010509040500AC
-:10040000020103000007240100014100062402014B
-:100410000100062402020200092403010301020173
-:10042000000924030204010101000905060240003D
-:1004300005000005250101010905850240000500B0
-:100440000005250101031201100100000008EDFE66
-:1004500060600100010200010631FF0974A1010979
-:1004600075150025FF952075088102097615002570
-:10047000FF952075089102C005010980A101850240
-:1004800016010026B7001A01002AB7007510950161
-:100490008100C0050C0901A1018503160100269CFD
-:1004A000021A01002A9C02751095018100C0050105
-:1004B0000902A1010901A100050919012905150079
-:1004C00025019505750181029501750381010501DD
-:1004D000093009311581257F950275088106093893
-:1004E0001581257F950175088106050C0A380215CE
-:1004F00081257F950175088106C0C005010906A107
-:1005000001050719E029E715002501950875018106
-:1005100002950175088101050819012905950575E0
-:100520000191029501750391010507190029FF1535
-:100530000025FF950675088100C011241FBECFEF6E
-:10054000DAE0DEBFCDBF04B603FE24C0809178039D
-:1005500090917903A0917A03B0917B038730904BFF
-:10056000A740B04BB9F4109278031092790310921F
-:100570007A0310927B0314BE84B7877F84BF88E11F
-:100580000FB6F89480936000109260000FBEE0E018
-:10059000F8E3099511E0A0E0B1E0E2EAFFE502C06E
-:1005A00005900D92A63BB107D9F713E0A6EBB1E099
-:1005B00001C01D92A837B107E1F70E94F90E0C9413
-:1005C000CF2F0C9400000895089561110DC0FC0117
-:1005D0008281882331F085EE0E949D190E94B62BFE
-:1005E00003C085EE0E94651A80E090E008958B3B81
-:1005F000910568F4883A910530F5853A9105C0F483
-:100600008430910598F4019709F06FC071C0803E65
-:10061000910508F46AC0883E910540F09C01205F76
-:1006200031092031310508F060C05CC09C01A1C0D7
-:10063000853A910509F45FC0863A910509F45EC0D8
-:1006400023E830E496C0883A910509F45AC0893A03
-:10065000910509F459C08A3A910509F458C08B3ABA
-:10066000910509F457C08C3A910509F456C08D3AAA
-:10067000910509F455C0803B910509F454C08E3AA8
-:10068000910509F453C08F3A910509F452C0813B9A
-:10069000910509F451C0823B910509F450C0833B98
-:1006A000910509F44FC0843B910509F44EC0853B88
-:1006B000910509F44DC0863B910509F44CC0873B78
-:1006C000910509F44BC0883B910509F44AC0893B68
-:1006D000910509F449C08A3B910509F048C02AE216
-:1006E00036E447C09C01306544C020E030E041C0A2
-:1006F00021E030E03EC021E830E43BC022E830E4B5
-:1007000038C022EE34E435C029EE34E432C02AEE9B
-:1007100034E42FC025EB34E42CC026EB34E429C0AC
-:1007200027EB34E426C02CEC34E423C02DEC34E475
-:1007300020C023E835E41DC02AE835E41AC022E9C8
-:1007400035E417C024E935E414C021E236E411C0D1
-:1007500023E236E40EC024E236E40BC025E236E4A0
-:1007600008C026E236E405C027E236E402C020E0F5
-:1007700034E4C90108959CE0799FF001112490E3CD
-:10078000899FE00DF11D1124E60FF11DEE0FFF1FF3
-:10079000E65CFE4F25913491C9010895880F991F99
-:1007A00082559040FC0125913491C9010895880F2C
-:1007B000991F825D9E4FFC0125913491C9010895D6
-:1007C0000E94BB039C013A9521153F4108F4DFC00C
-:1007D0009C0130522115304120F49F700E94D703B4
-:1007E00008959C0130532115304118F49927906CDD
-:1007F00008959C0130542031310520F48F709927E1
-:10080000946D0895803120E4920719F480E091ED11
-:100810000895813140E4940719F480E090ED089543
-:10082000823120E4920719F480E092ED089583313B
-:1008300040E4940719F480E093ED0895811520E5D4
-:10084000920711F40C941F25813040E5940731F490
-:100850008091680281608093680208959C013056FF
-:100860002115304108F402C097FF02C0906F08952F
-:10087000803E9105E0F4803C910568F58133910557
-:1008800009F474C048F48932910509F46AC08A32C7
-:10089000910509F07AC074C089339105F9F0823866
-:1008A0009105E1F08533910509F06FC050C0833E9A
-:1008B0009105A9F140F4803E9105C9F0823E910571
-:1008C00009F063C01BC0863E910571F1873E91051A
-:1008D00009F05BC037C00E94CE03089520917B02CF
-:1008E00020FD02C021FF51C080EE90E04EC08091FB
-:1008F0007B0280FFF9CF89E390E047C080917B02C3
-:1009000082FF0AC080917B0284FF03C080E090E0F8
-:100910003CC083EE90E039C082EE90E036C080911A
-:100920007B0282FFEFCFF8CF80917B0283FF07C06D
-:1009300080917B0284FDEACF87EE90E026C086EEB0
-:1009400090E023C080917B0283FFF2CFF8CF8091AB
-:100950007B0285FF03C089E290E017C085E390E049
-:1009600014C080917B0285FDF9CFF5CF80917B0289
-:1009700086FF03C08AE290E008C081E390E005C0F2
-:1009800080917B0286FDF9CFF5CF0E94F702089592
-:100990005F926F927F928F929F92AF92BF92CF920F
-:1009A000DF92EF92FF920F931F93CF93DF93CDB718
-:1009B000DEB728970FB6F894DEBF0FBECDBF9E01FD
-:1009C0002F5F3F4F4E0189E0880E911C60E070E080
-:1009D00000E010E0E12CF12CC12CD12CA12CB12C89
-:1009E00088E0782E622E532E41E050E0E3E2F1E001
-:1009F000A62DB52D872D01900D928A95E1F7F9016D
-:100A0000819191919F01FC01E07FFF27E032F10588
-:100A100059F48F709927FA0102C0EE0FFF1F8A95D3
-:100A2000E2F7AE2ABF2A37C0E033F10559F48F70E0
-:100A30009927FA0102C0EE0FFF1F8A95E2F7CE2A2E
-:100A4000DF2A29C0E034F10559F48F709927FA01A3
-:100A500002C0EE0FFF1F8A95E2F7EE2AFF2A1BC0A5
-:100A6000E035F10559F48F709927FA0102C0EE0FB5
-:100A7000FF1F8A95E2F70E2B1F2B0DC0E036F10504
-:100A800051F48F709927FA0102C0EE0FFF1F8A956B
-:100A9000E2F76E2B7F2B2815390509F0A7CF94B10B
-:100AA0008A2D8095892384B985B18A2985B997B122
-:100AB0008C2D8095892387B988B18C2988B99AB102
-:100AC0008E2D809589238AB98BB18E298BB99DB1E2
-:100AD000802F809589238DB98EB1802B8EB990B3EC
-:100AE000862F8095892380BB81B3862B81BB289676
-:100AF0000FB6F894DEBF0FBECDBFDF91CF911F912F
-:100B00000F91FF90EF90DF90CF90BF90AF909F90AC
-:100B10008F907F906F905F9008955F926F927F9219
-:100B20008F929F92AF92BF92CF92DF92EF92FF92FD
-:100B30000F931F93CF93DF93CDB7DEB768970FB6B0
-:100B4000F894DEBF0FBECDBF85B7806885BF85B77F
-:100B5000806885BF0E94CF076E9A769A0E94C8046B
-:100B60009E012F5F3F4F4E0189E1880E911C60E08E
-:100B700070E000E010E0E12CF12CC12CD12CA12C74
-:100B8000B12C98E1792E622E532E41E050E0EBE239
-:100B9000F1E0A62DB52D872D01900D928A95E1F7F4
-:100BA000F901819191919F01FC01E07FFF27E032E3
-:100BB000F10559F48F709927FA0102C0EE0FFF1F5B
-:100BC0008A95E2F7AE2ABF2A37C0E033F10559F41F
-:100BD0008F709927FA0102C0EE0FFF1F8A95E2F786
-:100BE000CE2ADF2A29C0E034F10559F48F70992705
-:100BF000FA0102C0EE0FFF1F8A95E2F7EE2AFF2AE4
-:100C00001BC0E035F10559F48F709927FA0102C035
-:100C1000EE0FFF1F8A95E2F70E2B1F2B0DC0E0365B
-:100C2000F10551F48F709927FA0102C0EE0FFF1FF2
-:100C30008A95E2F76E2B7F2B2815390509F0A7CF8F
-:100C400094B18A2D8095892384B985B18A2985B983
-:100C500097B18C2D8095892387B988B18C2988B963
-:100C60009AB18E2D809589238AB98BB18E298BB943
-:100C70009DB1802F809589238DB98EB1802B8EB93F
-:100C800090B3862F8095892380BB81B3862B81BB4F
-:100C90001092B7011092B6011092BF011092BE01DE
-:100CA0001092B9011092B8011092C1011092C001C6
-:100CB0001092BB011092BA011092C3011092C201AE
-:100CC0001092BD011092BC011092C5011092C40196
-:100CD00068960FB6F894DEBF0FBECDBFDF91CF91FF
-:100CE0001F910F91FF90EF90DF90CF90BF90AF904A
-:100CF0009F908F907F906F905F9008955F926F921A
-:100D00007F928F929F92AF92BF92CF92DF92EF929B
-:100D1000FF920F931F93CF93DF93CDB7DEB7A097CA
-:100D20000FB6F894DEBF0FBECDBF7E0149E1E40EE1
-:100D3000F11C2EEBC22E21E0D22E5E0151E2A50E57
-:100D4000B11C38E0532E470101E010E048E1642E69
-:100D500055E0752EE3E2F1E0D401852D01900D926E
-:100D60008A95E1F7F701819191917F019C01207FA4
-:100D700033272032310589F424B18F709927A801D7
-:100D800002C0440F551F8A95E2F7CA01242B24B9EB
-:100D900095B18095892385B94FC02033310589F4F9
-:100DA00027B18F709927F80102C0EE0FFF1F8A95B7
-:100DB000E2F7CF012E2B27B998B18095892388B906
-:100DC0003BC02034310589F42AB18F709927A801DE
-:100DD00002C0440F551F8A95E2F7CA01242B2AB995
-:100DE0009BB1809589238BB927C02035310589F4C3
-:100DF0002DB18F709927F80102C0EE0FFF1F8A9561
-:100E0000E2F7CF012E2B2DB99EB1809589238EB9A3
-:100E100013C02036310581F420B38F709927A801C3
-:100E200002C0440F551F8A95E2F7CA01242B20BB4C
-:100E300091B38095892381BB50EA5A95F1F7BE01A1
-:100E40006F5F7F4F80E090E020E030E0EBE2F1E088
-:100E5000DE011196462D01900D924A95E1F7FB01B6
-:100E600041915191BF01FA01E07FFF27E032F10586
-:100E700011F4E3B113C0E033F10511F4E6B10EC093
-:100E8000E034F10511F4E9B109C0E035F10511F4E0
-:100E9000ECB104C0E036F105B9F4EFB1F0E04F7009
-:100EA000552702C0F595E7954A95E2F7E0FD08C0A1
-:100EB000A801022E02C0440F551F0A94E2F702C097
-:100EC00040E050E0842B952B2F5F3F4F2C303105B5
-:100ED00009F0BCCFF601208131812817390721F0B4
-:100EE00091838083709200010E94C804F2E0CF0ECB
-:100EF000D11CEA14FB0409F02DCF80910001882356
-:100F000061F1815080930001811121C08091BE0167
-:100F10009091BF019093B7018093B6018091C00179
-:100F20009091C1019093B9018093B8018091C20161
-:100F30009091C3019093BB018093BA018091C40149
-:100F40009091C5019093BD018093BC0106C08FE9CB
-:100F50009FE00197F1F700C0000081E0A0960FB676
-:100F6000F894DEBF0FBECDBFDF91CF911F910F91DF
-:100F7000FF90EF90DF90CF90BF90AF909F908F90B9
-:100F80007F906F905F900895E82FF0E0EE0FFF1FC5
-:100F9000EA54FE4F80819181089508950895279A1B
-:100FA0002F988FEF9FEF90938700809386008AE0C1
-:100FB0008093800089E1809381000C945F2B8111E4
-:100FC0000BC080918000877F8093800010928D00FD
-:100FD00010928C002F9808952F98833041F48091BF
-:100FE00080008860809380008FEF9FEF12C0909107
-:100FF000800098609093800023E030E0281B310946
-:10100000220F331F8FEF9FEF02C0969587952A9589
-:10101000E2F790938D0080938C0008950F931F93B7
-:10102000CF93DF93CDB7DEB7CC58D1090FB6F89484
-:10103000DEBF0FBECDBF8C01862F642F882379F0D1
-:10104000F80192812FE7482F992329F08DE792E04C
-:101050000E94F81404C08DE792E00E940815F80180
-:1010600080818B3061F49181933009F068C0828176
-:10107000882309F4CDC0809103018F5F0EC08A30B0
-:10108000E1F5F8019181933009F059C082818823FC
-:1010900009F4BEC08091030181508093030120E0D8
-:1010A0004BE760E08DE792E00E94E81420E04BE718
-:1010B00061E08DE792E00E94E81420E04BE762E0F7
-:1010C0008DE792E00E94E81420E04BE763E08DE7B3
-:1010D00092E00E94E81420E04BE764E08DE792E0A4
-:1010E000C457DF4F0FB6F894DEBF0FBECDBFDF9100
-:1010F000CF911F910F910C94E814893069F4F80195
-:1011000091819330E1F492819923C9F0809101019A
-:101110009091020101960EC0883089F4F801918106
-:10112000933069F49281992351F08091010190915B
-:10113000020101979093020180930101B0CFF80161
-:10114000928140910301992391F196E4E3E4F1E067
-:10115000DE01A95BBF4F01900D929A95E1F7405DCA
-:10116000F8019181FCE09F9F40191124E091010159
-:10117000F0910201E80FF11DEE0FFF1F87E490E0F0
-:101180008C0F9D1FE80FF91F8081480F2FE760E04B
-:101190008DE792E0C457DF4F0FB6F894DEBF0FBE65
-:1011A000CDBFDF91CF911F910F910C94F81496E46D
-:1011B000E3E4F1E0DE01119601900D929A95E1F7DA
-:1011C000405DF8019181FCE09F9F40191124E0915E
-:1011D0000101F0910201E80FF11DEE0FFF1F81E008
-:1011E00090E08C0F9D1FE80FF91F8081480F2FE7BB
-:1011F00060E08DE792E0C457DF4F0FB6F894DEBF92
-:101200000FBECDBFDF91CF911F910F910C940815A8
-:10121000C457DF4F0FB6F894DEBF0FBECDBFDF91CE
-:10122000CF911F910F910895CF93DF93EA019B0116
-:10123000AC0160E074E284E79BE40E945F2C0E94B2
-:10124000C72C709397006093960020E130E02C1B30
-:101250003D0B02C0759567952A95E2F7709399004A
-:1012600060939800DF91CF9108951092020210923E
-:10127000010210929000109291001092FD011092C4
-:10128000FE011092FF01109200021092FC011092D8
-:10129000FB01E9EDF1E0A9ECB1E01192119211929C
-:1012A00011921D921D9281E0E93FF807B1F7089570
-:1012B000AF92BF92CF92DF92EF92FF920F931F9364
-:1012C000CF93DF936B017C0109EF11E047EDA42E72
-:1012D00041E0B42EC7E0D0E0A7019601F801929159
-:1012E0008291729162918F010E945B2C882349F058
-:1012F0002197F2E0AF1AB108CF3F8FEFD80761F71F
-:1013000034C0F8011082118212821382F501118219
-:101310001082FE01EE0FFF1FEE0FFF1FE752FE4F80
-:10132000DE01AA0FBB1FA753BE4FCE011AC0019604
-:1013300044815581668177814083518362837383C1
-:10134000148215821682178212962D913C91139762
-:1013500011963C932E9313961C921E9212973496DC
-:1013600012968730910519F7C3CF809101029091B1
-:101370000202019797FD05C090930202809301023B
-:1013800004C01092020210920102E0910102F09159
-:101390000202309789F410929000109291001092FE
-:1013A000FD011092FE011092FF01109200021092B6
-:1013B000FC011092FB019EC03197DF01AA0FBB1FF9
-:1013C000AA0FBB1FA752BE4FCD90DD90ED90FC90B1
-:1013D000EE0FFF1FE753FE4FC081D181A090FD01AA
-:1013E000B090FE010091FF0110910002A70196014B
-:1013F0006A2D7B2D802F912F0E945B2C87FF2FC0A1
-:1014000081E08093C801AE016A2D7B2D802F912F42
-:101410000E9414092091FD013091FE014091FF01CD
-:1014200050910002C701B6010E94F62B20E030E087
-:101430004AEF53E40E945F2C9B01AC016A2D7B2D87
-:10144000802F912F0E94F72B5B018C01A701960141
-:101450007B2D912F0E945B2C1816ACF638C0A7018B
-:1014600096016A2D7B2D802F912F0E94AA2D181690
-:1014700084F581E08093C801AE016A2D7B2D802F19
-:10148000912F0E941409A70196016091FD017091AE
-:10149000FE018091FF01909100020E94F62B20E056
-:1014A00030E04AEF53E40E945F2C9B01AC016A2DAF
-:1014B0007B2D802F912F0E94F62B5B018C01A701C1
-:1014C00096017B2D912F0E94AA2D87FFD5CF1092D8
-:1014D000C801AE01C701B6010E941409C092FD0106
-:1014E000D092FE01E092FF01F0920002D093FC0145
-:1014F000C093FB01DF91CF911F910F91FF90EF906F
-:10150000DF90CF90BF90AF90089508951F920F92F3
-:101510000FB60F9211242F933F934F935F936F93C6
-:101520007F938F939F93AF93BF93EF93FF9380919C
-:10153000960090919700892B09F455C08091C801BD
-:10154000811151C08091F9019091FA01813091058A
-:1015500071F082309105C1F0892BC1F52091FD0118
-:101560003091FE014091FF01509100021DC0609139
-:10157000FD017091FE018091FF01909100029B019D
-:10158000AC010E94F72B0EC020E030E040E450E4B4
-:101590006091FD017091FE018091FF019091000228
-:1015A0000E94AE2D9B01AC0160E074E284E79BE4F5
-:1015B0000E945F2C0E94C72C709397006093960046
-:1015C0007595679570939900609398008091F901E3
-:1015D0009091FA01019663E070E00E948A2F909347
-:1015E000FA018093F901FF91EF91BF91AF919F9123
-:1015F0008F917F916F915F914F913F912F910F90BC
-:101600000FBE0F901F901895AF92BF92CF92DF92AE
-:10161000EF92FF920F931F93CF93DF936B017C01A7
-:10162000EA0120E030E0A9010E94AA2D18160CF072
-:10163000B4C03E9A82E8809390008AE18093910042
-:10164000A090FD01B090FE010091FF0110910002F9
-:1016500020E030E0A9016A2D7B2D802F912F0E9480
-:101660005B2C81112DC0AE01C701B6010E94140987
-:10167000C092FD01D092FE01E092FF01F0920002C3
-:10168000D093FC01C093FB01809101029091020272
-:10169000FC01EE0FFF1FEE0FFF1FE752FE4FC0824F
-:1016A000D182E282F382FC01EE0FFF1FE753FE4F6F
-:1016B000D183C083019690930202809301026DC092
-:1016C000A70196016A2D7B2D802F912F0E945B2C04
-:1016D00087FF2CC0AE016A2D7B2D802F912F0E9499
-:1016E00014092091FD013091FE014091FF015091BC
-:1016F0000002C701B6010E94F62B20E030E04AEF5D
-:1017000053E40E945F2C9B01AC016A2D7B2D802F3E
-:10171000912F0E94F72B5B018C01A70196017B2D75
-:10172000912F0E945B2C1816ACF69DCFA701960155
-:101730006A2D7B2D802F912F0E94AA2D18160CF058
-:1017400092CFAE016A2D7B2D802F912F0E9414091C
-:10175000A70196016091FD017091FE018091FF014A
-:10176000909100020E94F62B20E030E04AEF53E413
-:101770000E945F2C9B01AC016A2D7B2D802F912F45
-:101780000E94F62B5B018C01A70196017B2D912F06
-:101790000E94AA2D87FFD5CF66CFDF91CF911F91F1
-:1017A0000F91FF90EF90DF90CF90BF90AF90089592
-:1017B00080910C020895CF93DF9300D01F92CDB794
-:1017C000DEB720916E03243021F523E029839B832B
-:1017D0008A832093E9008FEF06C095ED9A95F1F783
-:1017E0000000882329F09091E800815095FFF5CF03
-:1017F0008091E80085FF0DC040E050E063E070E0BC
-:10180000CE0101960E94BA0F8091E8008E778093F6
-:10181000E8000F900F900F90DF91CF910895CF9334
-:10182000DF9300D01F92CDB7DEB720916E03243036
-:1018300029F522E029839B838A8383E08093E90052
-:101840008FEF06C095ED9A95F1F70000882329F0F7
-:101850009091E800815095FFF5CF8091E80085FFD9
-:101860000DC040E050E063E070E0CE0101960E94C0
-:10187000BA0F8091E8008E778093E8000F900F9068
-:101880000F90DF91CF91089520916E032430F9F4E9
-:1018900022E02093E9002FEF06C035ED3A95F1F7ED
-:1018A0000000222329F03091E800215035FFF5CFC8
-:1018B0002091E80025FF0BC040E050E065E070E0BB
-:1018C0000E94BA0F8091E8008E778093E800089517
-:1018D000CF93DF93EC0180916E03843041F581E07A
-:1018E0008093E9008FEF06C095ED9A95F1F700001F
-:1018F000882329F09091E800815095FFF5CF8091E1
-:10190000E80085FF14C040E050E068E070E0CE01E0
-:101910000E94BA0F8091E8008E778093E80088E0FB
-:10192000FE01A4E0B2E001900D928A95E1F7DF910B
-:10193000CF910895BF92CF92DF92EF92FF920F93D3
-:101940001F93CF93DF937C01B62EE90100E010E0F6
-:10195000C42ED12C0BC04991202F2B0D2F774F7700
-:101960006FE0C7010E94E8140F5F1F4F0C151D05A3
-:1019700094F3DF91CF911F910F91FF90EF90DF9043
-:10198000CF90BF90089570E06F5F7F4F6F707727A3
-:101990000C94E8140F931F93CF93C42F63307105F9
-:1019A00009F04AC0842F807F803849F1803909F0DE
-:1019B00043C0622F6F7770E080E090E00E94FA2CC5
-:1019C00020E030E040E451E40E945F2C9B01AC0138
-:1019D00060E070E080E090E40E94112E0F7710E04C
-:1019E00023E0159507952A95E1F72DEC3CEC42E0B4
-:1019F00053E40E94AE2DA8010E94040B1DC0622F6B
-:101A00006F7770E080E090E00E94FA2C20E030E0F8
-:101A100040E451E40E945F2C9B01AC0160E070E067
-:101A200080E090E40E94112E2DEC3CEC42E053E467
-:101A30000E94AE2D0E945809CC3F29F4CF911F91EE
-:101A40000F910C943509CF911F910F9108950F9329
-:101A50001F93CF93DF93CDB7DEB727970FB6F894D8
-:101A6000DEBF0FBECDBF8C0114C08A810E94C2149C
-:101A70009A819D839B819E839C819F8381111EC03F
-:101A800089818430B1F08730A1F08630A1F08530B3
-:101A9000A1F0BE016F5F7F4F84E091E00E942F189C
-:101AA0008111E3CF84E091E00E9420180E949B14F2
-:101AB0000DC083E003C082E001C081E0AE014B5F56
-:101AC0005F4F682FC8010E945515E3CF27960FB6C8
-:101AD000F894DEBF0FBECDBFDF91CF911F910F9164
-:101AE0000895EF92FF920F93CF93DF9300D000D031
-:101AF00000D0CDB7DEB77B014A832B830C83842FC4
-:101B00002E834D830E94C2142E814D8181111BC0F2
-:101B100082E0E816F10479F083E0E816F10421F0A0
-:101B2000EA94EF2821F50BC0073F11F487E001C0CC
-:101B300084E089830BC0273FD9F786E0FACF473F7F
-:101B4000B9F785E0F6CF42954F704983BE016F5FCC
-:101B50007F4F84E091E00E94E51784E091E00E94CD
-:101B6000031884E091E00E9420180E949B1426969E
-:101B70000FB6F894DEBF0FBECDBFDF91CF910F91AE
-:101B8000FF90EF90089580916D03811109C00E942C
-:101B9000A1110E94FE118091E20084608093E20016
-:101BA000089510926D03089508950C94E4020C9426
-:101BB000892480916E03843049F58091E9008F700B
-:101BC0009091EC0090FF02C090E801C090E0982B4B
-:101BD00084E08093E9008091EB0080FF14C0809145
-:101BE000EE0087FD03C00FC01092F1008091E80065
-:101BF00085FDFACF8091E80080FF05C08091E80064
-:101C00008E778093E8009F709093E900089542E0FA
-:101C100061EC81E00E94171142E061EC82E00E94D9
-:101C2000171142E061EC83E00E94171146E261EC7B
-:101C300084E00E94171142E361E885E00E941711D9
-:101C400042E360E886E00C941711809170038330C2
-:101C500009F454C030F4813071F0823009F0AAC028
-:101C600091C08A3009F47EC08B3009F45FC089309E
-:101C700009F0A0C020C080916F03813A09F09AC09A
-:101C80008091E800877F8093E800809173039091B2
-:101C90007403892B21F060E080E090E003C068E0ED
-:101CA00084E092E070E00E9458108091E8008B7709
-:101CB0008093E800089580916F03813209F07AC023
-:101CC0008091730390917403892B09F073C0809104
-:101CD000E800877F8093E80005C080916E03882329
-:101CE00009F468C08091E80082FFF7CF8091F1008D
-:101CF00080930C028091E8008B7758C080916F032D
-:101D0000813A09F057C08091730390917403892B35
-:101D100009F050C08091E800877F8093E8008091AF
-:101D2000E80080FFFCCF80911A013BC080916F03D7
-:101D3000813209F03FC08091730390917403892B25
-:101D4000C9F58091E800877F8093E8000E944E11DA
-:101D50009091710381E0911101C080E080931A019C
-:101D60000C948C1E80916F03813221F58091E800E4
-:101D7000877F8093E8000E944E11809172038093C8
-:101D80000302089580916F03813AA1F48091E800E5
-:101D9000877F8093E8008091E80080FFFCCF8091EE
-:101DA00003028093F1008091E8008E778093E80031
-:101DB0000C944E11089584B7877F84BF88E10FB6D5
-:101DC000F89480936000109260000FBE90E080E86D
-:101DD0000FB6F89480936100909361000FBE0E944B
-:101DE000A1110E94FE11E2EEF0E080818460808308
-:101DF00008958DE792E00E94241561E77DE08DE76C
-:101E000092E00E947A1567E27DE08DE792E00E9401
-:101E10007E150E94DB0E78946AEC7CE08DE792E000
-:101E20000E94201563EC7CE08DE792E00E9418157B
-:101E30006AE97CE08DE792E00E941C150E94850A09
-:101E40000E949B140E94AC1880E191E00E945418FB
-:101E50000BC00E944E2480916C03882329F00E94BD
-:101E6000742481110E94A40F80916E03853089F340
-:101E70008DE792E00E942D170E94B618F5CF292F0A
-:101E8000332723303105B1F04CF42130310509F40A
-:101E90004DC02230310509F04EC007C02132310556
-:101EA00041F12232310591F146C0E0EDF0E086E7E4
-:101EB00093E045C099278130910569F08230910502
-:101EC00089F0892B09F037C0E2E7F3E0E491F0E014
-:101ED00082E793E034C0E4E4F3E0E491F0E084E4EA
-:101EE00093E02DC0EAE1F3E0E491F0E08AE193E0D1
-:101EF00026C0643000F5E62FF0E0EE0FFF1FE75735
-:101F0000FE4F80819181E9E0F0E019C0643098F4DF
-:101F1000E62FF0E0DF01AA0FBB1FAF56BE4F8D9139
-:101F20009C91E756FE4FE081F0E009C0E2E1F0E06D
-:101F300086E494E004C0E0E0F0E080E090E0DA01C4
-:101F40008D939C93CF01089580E189BD82E189BD85
-:101F500009B400FEFDCF8091D8008F7D8093D8001A
-:101F60008091E00082608093E0008091E00081FD3C
-:101F7000FCCF0895BF92CF92DF92EF92FF920F9322
-:101F80001F93CF93DF937C018B01EA010E946F11B5
-:101F9000B82E811133C0209731F028813981021B7E
-:101FA000130BE20EF31EC12CD12C23C08091E8004C
-:101FB00085FD15C08091E8008E778093E80020971A
-:101FC00049F0888199818C0D9D1D9983888325E036
-:101FD000B22E14C00E946F11882359F00EC0F70171
-:101FE00081917F018093F10001501109FFEFCF1A19
-:101FF000DF0A01151105D1F601C0B82E8B2DDF9136
-:10200000CF911F910F91FF90EF90DF90CF90BF90F5
-:102010000895BF92CF92DF92EF92FF920F931F939A
-:10202000CF93DF937C018B01EA010E946F11B82EE0
-:10203000811133C0209731F028813981021B130BA5
-:10204000E20EF31EC12CD12C23C08091E80085FD47
-:1020500015C08091E8008B778093E800209749F0C5
-:10206000888199818C0D9D1D9983888345E0B42ECC
-:1020700014C00E946F11882359F00EC08091F100A6
-:10208000F70181937F0101501109FFEFCF1ADF0A99
-:1020900001151105D1F601C0B82E8B2DDF91CF911E
-:1020A0001F910F91FF90EF90DF90CF90BF90089518
-:1020B00040917503509176034617570748F0611514
-:1020C000710539F44091E8004E774093E80001C073
-:1020D000BA01FC0140E033C080916E03882309F40B
-:1020E00042C0853009F441C08091E80083FD39C0C9
-:1020F0008091E80082FD2FC08091E80080FF1FC022
-:102100009091F3008091F200392F20E0A901482B33
-:10211000CA0106C041914093F100615071090196D6
-:102120006115710519F088309105A0F341E0089719
-:1021300009F040E08091E8008E778093E800611517
-:10214000710551F64111C8CF06C080916E038823F6
-:1021500051F0853051F08091E80082FFF6CF80E0A9
-:10216000089581E0089582E0089583E00895409104
-:102170007503509176034617570748F061157105AE
-:1021800039F44091E8004E774093E80001C0BA016D
-:10219000FC0140E034C080916E03882309F443C001
-:1021A000853009F442C08091E80083FD3AC08091F7
-:1021B000E80082FD30C08091E80080FF20C090914F
-:1021C000F3008091F200392F20E0A901482BCA01C9
-:1021D00007C044914093F100319661507109019616
-:1021E0006115710519F08830910598F341E0089761
-:1021F00009F040E08091E8008E778093E800611557
-:10220000710549F64111C7CF06C080916E0388233E
-:1022100051F0853051F08091E80082FFF6CF80E0E8
-:10222000089581E0089582E0089583E00895982F4D
-:102230002CC09093E900981739F07091EC00209130
-:10224000ED005091F00003C0242F762F50E021FDC7
-:1022500002C09F5F1AC03091EB003E7F3093EB00CD
-:102260003091ED003D7F3093ED003091EB00316017
-:102270003093EB007093EC002093ED005093F0004E
-:102280002091EE0027FDE5CF07C0973090F28F70C8
-:102290008093E90081E0089580E0089580916F03C4
-:1022A00087FD05C08091E80080FF0EC012C08091BC
-:1022B000E80082FD05C080916E038111F8CF08957A
-:1022C0008091E8008B7708C080916E038111EACF7E
-:1022D00008958091E8008E778093E80008958091BA
-:1022E000E4009091E50045E62091EC0020FD1FC040
-:1022F00023C020916E03222391F0253091F020918C
-:10230000EB0025FD10C02091E4003091E500281776
-:10231000390751F34150C90139F784E0089582E04B
-:10232000089583E0089581E0089580E00895209164
-:10233000E80020FFDECFF9CF2091E80022FFD9CFBF
-:10234000F4CF0E940F120E941712E0EEF0E080819D
-:1023500081608083E8EDF0E080818F77808319BC15
-:10236000A7EDB0E08C918E7F8C9380818F7E8083EF
-:1023700010926D0308950F931F93CF93DF930E94E4
-:102380000F120E941712C8EDD0E088818F778883E2
-:1023900088818068888388818F7D888319BC1092AA
-:1023A0006E0310926A0310926C0310926B0300EE9E
-:1023B00010E0F80180818B7F808388818160888331
-:1023C00042E060E080E00E941711E1EEF0E08081E1
-:1023D0008E7F8083E2EEF0E0808181608083808167
-:1023E00088608083F80180818E7F8083888180610E
-:1023F0008883DF91CF911F910F910895E8EDF0E070
-:1024000080818F7E8083E7EDF0E080818160808332
-:1024100084E082BF81E080936D030C94BB11E8EDF2
-:10242000F0E080818E7F80831092E2000895109208
-:10243000DA001092E10008951F920F920FB60F92EA
-:1024400011242F933F934F935F936F937F938F93B9
-:102450009F93AF93BF93EF93FF938091E10082FF2F
-:102460000BC08091E20082FF07C08091E1008B7F6A
-:102470008093E1000E94D90D8091DA0080FF1FC097
-:102480008091D80080FF1BC08091DA008E7F8093FE
-:10249000DA008091D90080FF0DC080E189BD82E122
-:1024A00089BD09B400FEFDCF81E080936E030E94D8
-:1024B000C30D05C019BC10926E030E94D10D80910E
-:1024C000E10080FF19C08091E20080FF15C080917B
-:1024D000E2008E7F8093E2008091E2008061809331
-:1024E000E2008091D80080628093D80019BC85E01A
-:1024F00080936E030E94D50D8091E10084FF30C06F
-:102500008091E20084FF2CC080E189BD82E189BD19
-:1025100009B400FEFDCF8091D8008F7D8093D80054
-:102520008091E1008F7E8093E1008091E2008F7EB8
-:102530008093E2008091E20081608093E2008091CC
-:102540006A03882311F084E007C08091E30087FFCD
-:1025500002C083E001C081E080936E030E94D70D2A
-:102560008091E10083FF29C08091E20083FF25C0B4
-:102570008091E100877F8093E10082E080936E0389
-:1025800010926A038091E1008E7F8093E100809138
-:10259000E2008E7F8093E2008091E2008061809370
-:1025A000E20042E060E080E00E9417118091F000BC
-:1025B00088608093F0000E94D40DFF91EF91BF914D
-:1025C000AF919F918F917F916F915F914F913F91CB
-:1025D0002F910F900FBE0F901F9018951F920F9282
-:1025E0000FB60F9211242F933F934F935F936F93E6
-:1025F0007F938F939F93AF93BF93CF93EF93FF936B
-:102600008091E9008F709091EC0090FF02C090E8FB
-:1026100001C090E0C92FC82B1092E9008091F00012
-:10262000877F8093F00078940E9432131092E90023
-:102630008091F00088608093F000CF70C093E90033
-:10264000FF91EF91CF91BF91AF919F918F917F912A
-:102650006F915F914F913F912F910F900FBE0F900F
-:102660001F9018951F93CF93DF93CDB7DEB7AC972C
-:102670000FB6F894DEBF0FBECDBFEFE6F3E080915A
-:10268000F100819323E0E737F207C9F70E94250E96
-:102690008091E80083FF37C180916F0390917003B0
-:1026A000953009F488C038F49130B1F170F093306E
-:1026B00009F029C131C0983009F4F8C0993009F403
-:1026C00004C1963009F01FC19DC0803821F08238C6
-:1026D00009F019C108C080916B0390916C03992394
-:1026E00089F082600FC080917303909174038F70A2
-:1026F00099278093E9008091EB0085FB882780F97A
-:102700001092E9009091E800977F9093E800809301
-:10271000F1001092F100D5C0882319F0823009F041
-:10272000F2C08F7121F0823009F0EDC00BC08091B2
-:102730007103813009F0E7C0933009F080E08093A5
-:102740006C032FC08091710381112BC080917303A2
-:10275000909174038F709927009709F4D4C08093E7
-:10276000E9002091EB0020FF1CC020917003233072
-:1027700021F48091EB00806212C09091EB00906197
-:102780009093EB0021E030E001C0220F8A95EAF738
-:102790002093EA001092EA008091EB008860809319
-:1027A000EB001092E9008091E800877F8093E800B9
-:1027B0000E944E11A8C08111A6C080917103909112
-:1027C00072038F779927182F9091E3009078982BB8
-:1027D0009093E3008091E800877F8093E8000E9457
-:1027E0004E118091E80080FFFCCF8091E30080686B
-:1027F0008093E300112311F083E001C082E0809315
-:102800006E0381C08058823008F07DC080917103D2
-:10281000909172038C3D23E0920779F583E08A83DF
-:102820008AE289834FB7F894DE01139620E03EE0F8
-:1028300051E2E32FF0E050935700E49120FF03C0F2
-:10284000E295EF703F5FEF708E2F90E0EA3010F06E
-:10285000C79601C0C0968D939D932F5F243149F791
-:102860004FBF8091E800877F8093E8006AE270E0C4
-:10287000CE0101960E94581013C0AE01455D5F4F16
-:10288000609173030E943F0F0097E9F12091E800E7
-:10289000277F2093E800BC018BA59CA50E94B71060
-:1028A0008091E8008B778093E8002DC0803859F53F
-:1028B0008091E800877F8093E80080916A0380938D
-:1028C000F1008091E8008E7771CF81111CC090914A
-:1028D00071039230C0F48091E800877F8093E80014
-:1028E00090936A030E944E1180916A03811104C083
-:1028F0008091E30087FF02C084E001C081E0809303
-:102900006E030E94070E8091E80083FF0AC0809149
-:10291000E800877F8093E8008091EB0080628093DD
-:10292000EB00AC960FB6F894DEBF0FBECDBFDF91C3
-:10293000CF911F910895CF9380916E038823B1F0BA
-:102940008091E9008F709091EC0090FF02C090E8B8
-:1029500001C090E0C92FC82B1092E9008091E800D7
-:1029600083FD0E943213CF70C093E900CF91089588
-:10297000881F8827881F089591E0883F08F490E019
-:10298000892F0895982F907F903B99F038F49039D3
-:1029900081F0903A71F09038C9F40BC0903DA1F0ED
-:1029A00018F4903C99F410C0903E19F0903F71F4E7
-:1029B00002C083E00895E82FE15FEF3038F4F0E0E3
-:1029C000E356FE4F8081089582E0089580E00895E7
-:1029D0000F932F774F776F70606BDC01ED91FC9157
-:1029E000022F242F462F63E070E009950F91089580
-:1029F0000F932F774F776F706069DC01ED91FC9139
-:102A0000022F242F462F63E070E009950F9108955F
-:102A10000F932F774F776F706068DC01ED91FC9119
-:102A2000022F242F462F63E070E009950F9108953F
-:102A3000FC01738362830895FC01738F628F089594
-:102A4000FC01758F648F0895CF93DF93EC011DA275
-:102A50001FA21EA2BC01685D7F4F40EC88519F4FB2
-:102A60000E9461171B821A821D821C821F821E8295
-:102A7000198618861B861A861D861C861F861E864A
-:102A8000198A188A1B8A1A8A1D8A1C8A1F8A1E8A1A
-:102A9000198E188E1B8E1A8E1D8E1C8E1F8E1E8EEA
-:102AA00019A218A2DF91CF910895CF92DF92FF92E1
-:102AB0000F931F93CF93DF931F92CDB7DEB7F62E00
-:102AC0006A018C0108511F4F08C0F60161916F0126
-:102AD000C80149830E94681749818C2D841B8F157A
-:102AE000A0F30F90DF91CF911F910F91FF90DF9096
-:102AF000CF900895FC01718360830895FC0171A358
-:102B000060A30895AF92BF92CF92DF92EF92FF92AF
-:102B10000F931F93CF93DF9300D01F92CDB7DEB7F3
-:102B20007C016B01142FB22EA02EDC0195968C91A6
-:102B300095978430F1F45A96ED91FC915B9730971C
-:102B400009F4D8C0CB01019763E070E00E94762FB2
-:102B5000DB01AA0FBB1FA60FB71F49832A830B8374
-:102B60004C2D4A1B9E012F5F3F4FBD01C7010995A8
-:102B7000B1C06230710509F453C06330710529F0AA
-:102B80006130710509F09CC083C0842F807F803A3A
-:102B900001F130F48038B9F0803909F0ABC00DC0D4
-:102BA000803EE9F0803F09F1803B09F0A3C0D701E6
-:102BB0001296ED91FC91139723C0D7011496ED91D5
-:102BC000FC9115971DC0D7011696ED91FC911797B2
-:102BD00017C0D7011896ED91FC91199711C0D70134
-:102BE0001A96ED91FC911B970BC0423F09F082C0F1
-:102BF000D7011C96ED91FC911D97309731F47AC066
-:102C0000309709F477C0123F21F42A2D4B2D62EF43
-:102C100004C0612F6F702A2D4B2DC70109955AC032
-:102C2000842F807F803D59F0803F79F0803C09F00F
-:102C300061C0D7011E96ED91FC911F9719C0D70175
-:102C40005096ED91FC91519713C0433F31F4D70159
-:102C50005296ED91FC91539708C0413F09F04AC04C
-:102C6000D7015496ED91FC915597309741F442C0AD
-:102C7000309709F43FC0133F11F0113F19F44B2D69
-:102C8000612F03C0612F6F704B2DC701099522C0C2
-:102C9000842F0E94BC14882331F0D7015696ED9101
-:102CA000FC91579707C0163F29F5D7015896ED912B
-:102CB000FC9159973097F1F0612FC70109950AC02F
-:102CC00064307105A8F416C00A2D2B2D412FB601D2
-:102CD000C7010995D7015E96ED91FC915F973097FA
-:102CE00089F00A2D2B2D412FB601C70109950AC085
-:102CF000C12CD12CD7015C96ED91FC915D9730975A
-:102D000019F7E8CF0F900F900F90DF91CF911F919F
-:102D10000F91FF90EF90DF90CF90BF90AF9008950C
-:102D2000EF92FF920F931F93CF93DF93EC01162F37
-:102D3000862F0E94BC14882369F0FDA081E08DA33A
-:102D400000E020E0412F61E070E0CE010E9482159A
-:102D5000FDA27CC0812F0E94B8144DA1882309F4E4
-:102D600040C0443029F01AA321E030E03FA32EA355
-:102D7000812F0E94C214813031F070F0823051F006
-:102D8000833059F507C08DA300E020E0412F61E0BA
-:102D900070E01EC08DA35AC0103F19F0173FE9F430
-:102DA00004C084E08DA31AA33FC02EA13FA1C90196
-:102DB00063E070E00E94762F8C0F9D1FFC0112A330
-:102DC000B9016F5F7F4F7FA36EA30CA12BA14AA116
-:102DD000CE010E9482151DA239C01DA21FA21EA2F3
-:102DE00035C0442399F12EA13FA1C90163E070E0F1
-:102DF0000E94762F7C01FE01E80FF91F12A3B90192
-:102E00006F5F7F4F7FA36EA38130910591F082E0C9
-:102E1000E816F104D9F40CA12BA14AA1CE010E941D
-:102E200082158DA1843091F081E090E09FA38EA364
-:102E30000DC0423059F400E02BA14AA1CE010E94FE
-:102E400082158DA1843011F0FFA2EEA2DF91CF9107
-:102E50001F910F91FF90EF900895CF92DF92EF9224
-:102E6000FF920F931F93CF93DF93EC01E8A1F9A199
-:102E7000309709F009958E0108511F4FC8010E9433
-:102E80009A17E12CF12CC82ED12C0FC060E0C8019C
-:102E90000E94AE17682FCE010E94901661E0C80113
-:102EA0000E94BF178FEFE81AF80AEC14FD0470F3C4
-:102EB000DF91CF911F910F91FF90EF90DF90CF9016
-:102EC0000895FC0142837483638311821082089504
-:102ED0000F931F93CF93DF93EC01062F0E94E0170F
-:102EE000182F298130E0C90101966A8170E00E94A3
-:102EF0008A2F488150E08417950729F4812F0E947A
-:102F0000E31780E012C0EB81FC81E20FF31F008326
-:102F10002981822F90E001966A8170E00E948A2FB9
-:102F20008983812F0E94E31781E0DF91CF911F9168
-:102F30000F910895CF93DF93EC010E94E017298150
-:102F40009881291710F0C22F02C0CA81C20FC91B75
-:102F50000E94E3178C2FDF91CF910895FC0120810F
-:102F6000862F90E0820F911D628170E00E948A2F6F
-:102F70000380F481E02DE80FF91F808108950F93FD
-:102F80001F93CF93DF931F92CDB7DEB78C01698378
-:102F90000E94E017482FF80180816981262F30E0D8
-:102FA000280F311D6281C90170E00E948A2F808341
-:102FB000842F0F90DF91CF911F910F910C94E31705
-:102FC0008FB7F89408958FBF0895FC01CB0120912D
-:102FD0006E032430B1F421812F702093E90040E08A
-:102FE00050E064E070E00E94BA0F81110BC0909134
-:102FF000E80095FD07C09091E8009E779093E80067
-:10300000089582E0089520916E032430A9F4FC0114
-:1030100081818F708093E9003091F3002091F2005C
-:10302000932F80E0822B892B49F08091E8008E77E6
-:103030008093E8000C946F1182E0089580E0089579
-:1030400020916E03243051F4FC0121812F702093D4
-:10305000E9002091E80020FD0C9403180895FC017C
-:10306000CB0120916E03243011F080E00895268179
-:103070002F702093E9002091E80022FFF6CF2091E5
-:10308000E80025FFF2CF40E050E064E070E00E94ED
-:1030900009108091E80085FD05C08091E8008B77DC
-:1030A0008093E80081E0089590930F0280930E02D0
-:1030B000089580910E0290910F020895E0910E0202
-:1030C000F0910F02309721F00190F081E02D0994EA
-:1030D00080E00895E0910E02F0910F02309721F008
-:1030E0000280F381E02D09940895E0910E02F091A1
-:1030F0000F02309721F00480F581E02D09940895A6
-:1031000020911002309111028217930771F0909371
-:10311000110280931002E0910E02F0910F0230979D
-:1031200021F00680F781E02D099408952091120284
-:10313000309113028217930771F0909313028093DA
-:103140001202E0910E02F0910F02309721F00084FC
-:10315000F185E02D099408950E94B6240E948D0502
-:103160000E948A250C945F2B0C94CE075F926F927D
-:103170007F928F929F92AF92BF92CF92DF92EF9207
-:10318000FF920F931F93CF93DF93CDB7DEB72A97AC
-:103190000FB6F894DEBF0FBECDBF0E947E0694E14D
-:1031A000C92E92E0D92E00E010E0AA24A394B12CFD
-:1031B000502E802F0E94C4073C01F601E190F1904F
-:1031C0006F01E826F926E114F10431F40F5F1F4F77
-:1031D0000430110569F73AC08091680281FD0E94B0
-:1031E000CD0720E030E04501022E02C0880C991C7A
-:1031F0000A94E2F7C4018E219F21892B09F12E83C5
-:103200005F826820792081E0672809F480E0888760
-:103210000E94BF248160782F9A8789874E815F81C1
-:1032200068858A850E946F19F801EE0FFF1FEC5E1A
-:10323000FD4F80819181882599259183808316C0D7
-:103240002F5F3F4F2C30310571F6C0CF8FEF898350
-:103250008A831B820E94BF248160782F9D838C8388
-:1032600049815A816B818D810E946F190E94772854
-:1032700010911C020E945E181817D9F00E945E1867
-:1032800080931C022A960FB6F894DEBF0FBECDBF06
-:10329000DF91CF911F910F91FF90EF90DF90CF9032
-:1032A000BF90AF909F908F907F906F905F900C94A5
-:1032B000B4182A960FB6F894DEBF0FBECDBFDF91CB
-:1032C000CF911F910F91FF90EF90DF90CF90BF9023
-:1032D000AF909F908F907F906F905F900895CF9365
-:1032E000DF93CDB7DEB72B970FB6F894DEBF0FBED6
-:1032F000CDBF4F83588769877A878B87DE01119608
-:1033000086E0FD0111928A95E9F785E0FE01379686
-:1033100001900D928A95E1F749815A816B817C81F8
-:103320008D819E810E9447212B960FB6F894DEBFB7
-:103330000FBECDBFDF91CF910895CF93C82F8823C3
-:1033400009F4C1C0823859F40E945E1881FDBBC0E7
-:1033500089E30E94AC230E94282489E30CC08338AF
-:1033600079F40E945E1880FDAEC083E50E94AC2314
-:103370000E94282483E50E94CE23CF910C94282418
-:10338000843859F40E945E1882FD9DC087E40E9433
-:10339000AC230E94282487E4EECF8450813A48F47D
-:1033A0008C2F0E94C72A81118EC08C2F0E94AC23C3
-:1033B000E4CF8C2F805E883050F4C77081E090E0BD
-:1033C00001C0880FCA95EAF70E94EF23D6CF8C2F51
-:1033D000855A833078F4C53A29F0C63A31F482E848
-:1033E00090E005C081E890E002C083E890E0CF91D2
-:1033F0000C9480188C2F885A833108F064C0C83A26
-:1034000039F1C93A41F1CA3A49F1CB3A51F1CC3AD2
-:1034100059F1CD3A61F1C03B69F1CE3A71F1CF3A41
-:1034200079F1C13B81F1C23B89F1C33B91F1C43BCE
-:1034300099F1C53BA1F1C63BA9F1C73BB1F1C83B2E
-:10344000B9F1C93BC1F1CA3BC9F58AE292E038C083
-:1034500082EE90E035C089EE90E032C08AEE90E0D6
-:103460002FC085EB90E02CC086EB90E029C087EB65
-:1034700090E026C08CEC90E023C08DEC90E020C062
-:1034800083E891E01DC08AE891E01AC082E991E0EA
-:1034900017C084E991E014C081E292E011C083E298
-:1034A00092E00EC084E292E00BC085E292E008C098
-:1034B00086E292E005C087E292E002C080E090E000
-:1034C000CF910C949618CF910895882309F44DC09C
-:1034D000823859F40E945E1881FF47C089E30E9438
-:1034E000AC230E94282489E30CC0833871F40E9425
-:1034F0005E1880FF3AC083E50E94AC230E94282416
-:1035000083E50E94CE230C942824843859F40E9429
-:103510005E1882FF2AC087E40E94AC230E94282400
-:1035200087E4EFCF982F9450913A08F4EACF982F80
-:10353000905E983058F4282F277081E090E001C009
-:10354000880F2A95EAF70E94F523DDCF982F955A28
-:10355000933020F480E090E00C948018885A8331F6
-:1035600020F480E090E00C9496180895882321F0D0
-:103570000E94EF230C9428240895882321F00E94B0
-:10358000F5230C9428240895BF92CF92DF92EF92F6
-:10359000FF920F931F93CF93DF93CDB7DEB727979B
-:1035A0000FB6F894DEBF0FBECDBF8C0185E0F801E9
-:1035B000DE01119601900D928A95E1F7F8013081B4
-:1035C0002181F280558152955F7083819481892B8E
-:1035D00039F02F3F41F481E090E03F3F31F003C0EC
-:1035E00081E090E002C080E090E080FD73C3398309
-:1035F0002A8389819A815E830E946923B92E8F83F1
-:103600000E9468230E9490222B2D22952F7030E07B
-:103610005E816F812530310509F4E6C06CF42430F9
-:1036200031050CF0A2C04B2D407F8B2D8F702230C6
-:1036300031050CF045C017C02C3031054CF42A3050
-:1036400031050CF0E7C12830310509F043C3E5C06E
-:103650002D30310509F4BAC20CF4A2C22F30310565
-:1036600009F038C323C3182F411101C002C01295BD
-:10367000107FFF2059F0112309F46BC2812F6F8353
-:103680000E94FF230E9428246F8163C2862F0E941C
-:10369000651A112309F41EC3812F0E940524279661
-:1036A0000FB6F894DEBF0FBECDBFDF91CF911F9153
-:1036B0000F91FF90EF90DF90CF90BF900C94282453
-:1036C000403211F08295807F662319F0613071F5E8
-:1036D00023C0FF20B1F0511101C032C0513081F53B
-:1036E00027960FB6F894DEBF0FBECDBFDF91CF9106
-:1036F0001F910F91FF90EF90DF90CF90BF900C94AF
-:103700000F24511101C003C0513009F4E3C28E836C
-:103710000E9412248E819AC1FF2021F0563008F0B9
-:10372000D9C20EC0553008F0D5C290C1FF20C9F0F3
-:10373000552331F0F801958190FF0BC29F7095835E
-:1037400027960FB6F894DEBF0FBECDBFDF91CF91A5
-:103750001F910F91FF90EF90DF90CF90BF900C944E
-:10376000B61A552309F472C109C22B2D2695269548
-:10377000237030E02115310529F02130310509F0A1
-:10378000A9C219C0FF2021F0862F9B2D937002C083
-:1037900080E090E027960FB6F894DEBF0FBECDBF55
-:1037A000DF91CF911F910F91FF90EF90DF90CF901D
-:1037B000BF900C948018FF2021F0862F9B2D9370D2
-:1037C00002C080E090E027960FB6F894DEBF0FBEEF
-:1037D000CDBFDF91CF911F910F91FF90EF90DF90C0
-:1037E000CF90BF900C949618862FFF2019F00E945E
-:1037F0007D2702C00E94E52727960FB6F894DEBF0A
-:103800000FBECDBFDF91CF911F910F91FF90EF9031
-:10381000DF90CF90BF900C946C288B2D837009F0B3
-:1038200079C0F11057C2262F229526952770220FB6
-:10383000220F862F8F70C82ED12CE12CF12C022E56
-:1038400004C0CC0CDD1CEE1CFF1C0A94D2F764FFF4
-:1038500010C06FE070E080E090E004C0660F771F5A
-:10386000881F991F2A95D2F760957095809590953D
-:1038700003C060E070E0CB012B2D269526952370C8
-:10388000422F50E042305105D9F04330510569F1E3
-:103890006C297D298E299F294130510551F12796A8
-:1038A0000FB6F894DEBF0FBECDBFDF91CF911F9151
-:1038B0000F91FF90EF90DF90CF90BF900C94A522D6
-:1038C0006C297D298E299F2927960FB6F894DEBF93
-:1038D0000FBECDBFDF91CF911F910F91FF90EF9061
-:1038E000DF90CF90BF900C94B7220E94A522C70111
-:1038F000B60127960FB6F894DEBF0FBECDBFDF919D
-:10390000CF911F910F91FF90EF90DF90CF90BF90DC
-:103910000C949322FF2019F08B2D817001C08695A5
-:10392000882309F4D7C1262F229526952770220FC8
-:10393000220F862F8F70C82ED12CE12CF12C022E55
-:1039400004C0CC0CDD1CEE1CFF1C0A94D2F764FFF3
-:1039500010C06FE070E080E090E004C0660F771F59
-:10396000881F991F2A95D2F760957095809590953C
-:1039700003C060E070E0CB012B2D269526952370C7
-:10398000422F50E042305105D9F04330510569F1E2
-:103990006C297D298E299F294130510551F12796A7
-:1039A0000FB6F894DEBF0FBECDBFDF91CF911F9150
-:1039B0000F91FF90EF90DF90CF90BF900C94442335
-:1039C0006C297D298E299F2927960FB6F894DEBF92
-:1039D0000FBECDBFDF91CF911F910F91FF90EF9060
-:1039E000DF90CF90BF900C9456230E944423C701D0
-:1039F000B60127960FB6F894DEBF0FBECDBFDF919C
-:103A0000CF911F910F91FF90EF90DF90CF90BF90DB
-:103A10000C943223603F59F120F4603E08F494C0C6
-:103A200008C0623F09F467C0F0F1633F09F08CC041
-:103A300065C0162F1F708B2D8F71FF2021F00E9403
-:103A4000DD22812F7DCE0E94F822812F27960FB68E
-:103A5000F894DEBF0FBECDBFDF91CF911F910F91C4
-:103A6000FF90EF90DF90CF90BF900C94BD1AFF2095
-:103A7000B1F0553008F02EC18B2D8F7127960FB6FF
-:103A8000F894DEBF0FBECDBFDF91CF911F910F9194
-:103A9000FF90EF90DF90CF90BF900C94172356309B
-:103AA00008F018C1E9CFFF2099F08B2D8F71279670
-:103AB0000FB6F894DEBF0FBECDBFDF91CF911F913F
-:103AC0000F91FF90EF90DF90CF90BF900C94DD228C
-:103AD0008B2D8F7127960FB6F894DEBF0FBECDBF2A
-:103AE000DF91CF911F910F91FF90EF90DF90CF90DA
-:103AF000BF900C94F822F110EBCFD7CFFF2099F0B4
-:103B00008B2D8F7127960FB6F894DEBF0FBECDBFF9
-:103B1000DF91CF911F910F91FF90EF90DF90CF90A9
-:103B2000BF900C94CE2227960FB6F894DEBF0FBE3E
-:103B3000CDBFDF91CF911F910F91FF90EF90DF905C
-:103B4000CF90BF900C94C922FF20A9F0552309F40F
-:103B5000ACCF862F27960FB6F894DEBF0FBECDBF31
-:103B6000DF91CF911F910F91FF90EF90DF90CF9059
-:103B7000BF900C949D19552309F4AACF862F279640
-:103B80000FB6F894DEBF0FBECDBFDF91CF911F916E
-:103B90000F91FF90EF90DF90CF90BF900C94651A3B
-:103BA0004B2D4F70C8010E94E50227960FB6F8947E
-:103BB000DEBF0FBECDBFDF91CF911F910F91FF9060
-:103BC000EF90DF90CF90BF900C94FD21F11082C058
-:103BD0009B2D9F70492F50E04230510599F144F4DC
-:103BE0004115510569F04130510509F073C019C004
-:103BF00043305105C1F14430510509F06BC044C058
-:103C000027960FB6F894DEBF0FBECDBFDF91CF91E0
-:103C10001F910F91FF90EF90DF90CF90BF900C9489
-:103C2000702B27960FB6F894DEBF0FBECDBFDF9185
-:103C3000CF911F910F91FF90EF90DF90CF90BF90A9
-:103C40000C94872B27960FB6F894DEBF0FBECDBF1E
-:103C5000DF91CF911F910F91FF90EF90DF90CF9068
-:103C6000BF900C94A32B27960FB6F894DEBF0FBE1F
-:103C7000CDBFDF91CF911F910F91FF90EF90DF901B
-:103C8000CF90BF900C94B62B862F27960FB6F89442
-:103C9000DEBF0FBECDBFDF91CF911F910F91FF907F
-:103CA000EF90DF90CF90BF900C94DA2B4B2D4F709C
-:103CB000C80127960FB6F894DEBF0FBECDBFDF91C7
-:103CC000CF911F910F91FF90EF90DF90CF90BF9019
-:103CD0000C940E0827960FB6F894DEBF0FBECDBF2A
-:103CE000DF91CF911F910F91FF90EF90DF90CF90D8
-:103CF000BF9008950E940C240E94E1230E94282472
-:103D00000E9418290E946C2880E090E00E94801890
-:103D100080E090E00C9496180E94FC230C947A1E8C
-:103D20000E946923292F22952F7030E02C30310515
-:103D30004CF42A3031056CF422503109223031051F
-:103D400070F407C02C30310531F02F30310539F4D3
-:103D500002C081E0089593FB882780F9089580E0F0
-:103D60000895CF93DF9300D000D01F92CDB7DEB778
-:103D70000F900F900F900F900F90DF91CF910895BB
-:103D8000CF93DF9300D000D000D0CDB7DEB726961A
-:103D90000FB6F894DEBF0FBECDBFDF91CF9108956F
-:103DA0001F93CF93DF93C091530216E012C0D0E06F
-:103DB0001C9FF0011D9FF00D1124ED5DFD4F408112
-:103DC000518162817381848195810E94C01E2196F8
-:103DD000C77080915402C813EACFDF91CF911F9131
-:103DE000089540911D0250911E0260911F02709132
-:103DF000200280912102909122020C94C01E0F9308
-:103E00001F93CF93DF938091220282958F7009F0E8
-:103E100069C080911F02882309F464C0A0915302F5
-:103E2000D0915402B0911D02C0911E0280912002D7
-:103E30009091210221E030E0BF3F11F020E030E01E
-:103E4000122FBC016095709506E04AC0009721F0E2
-:103E5000CF3F29F4212F05C021E030E002C020E04F
-:103E600030E020FD3BC04A2F50E0049FF001059F49
-:103E7000F00D1124ED5DFD4F2181C2132FC0208173
-:103E8000B2132CC02281211129C02381348128172B
-:103E9000390718F0281B390B02C0260F371F283CA2
-:103EA0003105E0F4809122028F70806180932202BC
-:103EB00086E0849FF001859FF00D1124E85DFD4FA1
-:103EC00080818F70806180838DE192E00E94C41AAE
-:103ED000DF91CF911F910F910C94D01EAF5FA7700F
-:103EE000AD13B4CFDF91CF911F910F910895EF9251
-:103EF000FF920F931F93CF93DF93CDB7DEB76297F7
-:103F00000FB6F894DEBF0FBECDBF8C0185E0F8017F
-:103F1000DE011D9601900D928A95E1F7D8014C9132
-:103F200011965C91119712966C9112971396ED90E1
-:103F3000FC90149770911D02E0911E028091200266
-:103F400090912102009739F0EF3F41F421E030E0F9
-:103F50007F3F31F003C021E030E002C020E030E0DC
-:103F600020FD5CC120911F02222309F4F1C0E81654
-:103F7000F90628F09701281B390BC90104C0809568
-:103F800090958E0D9F1D883C910508F098C08091FA
-:103F90002202982F907F09F064C0E51314C07413B7
-:103FA00012C0611110C08F708061809322020E9444
-:103FB000F11E8DE192E00E94C41A80912202D80184
-:103FC00015968C9343C1EF2839F05F3F41F481E0AF
-:103FD00090E04F3F31F003C081E090E002C080E00C
-:103FE00090E080FD03C081E0862702C080E090E081
-:103FF00080FF2EC0809153022091540236E013C0FE
-:1040000090E0389FF001399FF00D1124ED5DFD4FD8
-:104010007181571306C07081471303C07281671303
-:1040200017C0019687708213EBCF12C19F7059F0B1
-:10403000882309F40BC107C09F7029F0F80195810E
-:10404000907F09F403C1805E883008F4FFC0D2C0BD
-:10405000662309F4FBC080912202816080932202D2
-:10406000F5C0E51308C0741306C0611104C0D8017F
-:1040700015968C939DC04D875E878D859E856A8B36
-:104080000E94901E6A89882309F4B4C0662309F44B
-:10409000B1C020912202822F82958F7090E002970A
-:1040A0000CF4C6C080911D0290911E0298878F83E8
-:1040B0001986FB86EA862C87CE01079646C080913A
-:1040C0002202982F907F59F47E2DF98AE88A8989F7
-:1040D0000E94B11E8DE192E00E94C41A95C0E513C2
-:1040E00011C074130FC061110DC0F8018583C801A0
-:1040F0000E94C41AEDE1F2E086E0DF011D928A958C
-:10410000E9F7A2C04D875E878D859E856A8B0E94E8
-:10411000901E6A89882309F46DC0662309F46AC079
-:1041200020912202822F82958F7090E002970CF4EA
-:104130007FC080911D0290911E029A8389831B8209
-:10414000FD82EC822E83CE0101960E94C41A70C0BB
-:10415000E816F90628F09701281B390BC90104C09D
-:10416000809590958E0D9F1D883C910508F046C066
-:10417000662309F43FC0E51330C074132EC02091AC
-:10418000220220FD21C0322F32953F70832F90E014
-:104190000097D1F0D80115962C9315970F9741F001
-:1041A000832F8F5F8295807F2F70282B15962C93FD
-:1041B000C8010E94C41A86E0F801ADE1B2E00190A6
-:1041C0000D928A95E1F73EC086E0F801ADE1B2E0DC
-:1041D00001900D928A95E1F737C04D875E878D85F6
-:1041E0009E850E94901E811123C0809122028160D1
-:1041F00080932202C8010E94C41A26C07E2DF98A2B
-:10420000E88A89890E94B11EEDE1F2E086E0DF01D3
-:104210001D928A95E9F70E94F11E18C0662351F39A
-:104220004D875E878D859E850E94901E882311F3A1
-:1042300086E0F801ADE1B2E001900D928A95E1F7D8
-:104240000E94FF1E0E94F11E81E014C080E012C097
-:104250004D875E878D859E850E946923292F229533
-:104260002F7030E0223031050CF4E0CE24303105DF
-:104270000CF6E2CE62960FB6F894DEBF0FBECDBF4D
-:10428000DF91CF911F910F91FF90EF9008951F93B1
-:10429000CF93DF93CDB7DEB72C970FB6F894DEBF80
-:1042A0000FBECDBF4F83588769877A878B879C87DE
-:1042B000CE0107960E94771F8823D9F02F81388579
-:1042C0008A859B85892B39F03F3F19F080E090E08B
-:1042D00004C02F3FD9F781E090E0892B09F06DC031
-:1042E0004F81588569857A858B859C850E94C01E83
-:1042F00064C086E0FE013796DE01119601900D92B2
-:104300008A95E1F7FF81E8854A855B85411551056E
-:1043100039F0EF3F41F481E090E0FF3F31F003C01E
-:1043200081E090E002C080E090E080FD46C02091F6
-:10433000540230E0C90101968770992760915302B9
-:1043400070E08617970709F440C0F983EA835D831C
-:104350004C8396E0929FD001939FB00D1124AD5DE8
-:10436000BD4FFE01319601900D929A95E1F7809331
-:1043700054020E94D01E21C0189FC00111248D5DDF
-:104380009D4F0E94771F882371F1E09153021E9F79
-:10439000F0011124ED5DFD4F4081518162817381F7
-:1043A000848195810E94C01E8091530290E0019605
-:1043B000877099278093530201C016E080915302C1
-:1043C000909154028913D8CF0EC00E948C1E109277
-:1043D000540210925302EDE1F2E086E0DF011D92FB
-:1043E0008A95E9F7EACF2C960FB6F894DEBF0FBE98
-:1043F000CDBFDF91CF911F910895DF92EF92FF9291
-:104400000F931F93CF93DF93EC01009709F46CC0D7
-:10441000D12CEE24E394F12C8E010F5F1F4FFE018F
-:104420008491843748F4843008F04AC0813071F0B8
-:10443000823009F059C01EC0853709F43DC070F1C3
-:10444000982F9458903708F04FC03DC02296F8013D
-:104450008491982F905E983050F48770FE2D01C0A3
-:10446000FF0F8A95EAF78F2F0E94FF2330C00E942A
-:104470009D192DC02296F8018491982F905E983056
-:1044800050F48770FE2D01C0FF0F8A95EAF78F2F39
-:104490000E9405241CC00E94651A19C02296F801CA
-:1044A000049107C08FE99FE00197F1F700C0000079
-:1044B00001500111F7CF0BC02296F801D49007C02C
-:1044C0000E949D1903C08F770E94651AE8018D2D07
-:1044D00007C08150EFE9FFE03197F1F700C000001D
-:1044E000882309F499CFF5CFDF91CF911F910F91D8
-:1044F000FF90EF90DF9008956093590270935A02F5
-:1045000080935B0290935C020C947A1E6093550238
-:104510007093560280935702909358020C947A1E1F
-:1045200008950C947C220F931F93009159021091CF
-:104530005A0220915B0230915C02602B712B822B1E
-:10454000932B1F910F910C947C220F931F9300913A
-:10455000590210915A0220915B0230915C02602353
-:104560007123822393231F910F910C947C220F932C
-:104570001F930091590210915A0220915B023091D1
-:104580005C0260277127822793271F910F910C945B
-:104590007C2260E070E0CB010C94862241E050E088
-:1045A00060E070E004C0440F551F661F771F8A95B6
-:1045B000D2F7CB01BA010C94862241E050E060E0D2
-:1045C00070E004C0440F551F661F771F8A95D2F70D
-:1045D0008091550290915602A0915702B0915802D5
-:1045E000482B592B6A2B7B2BCB01BA010C948622CA
-:1045F00041E050E060E070E004C0440F551F661FCA
-:10460000771F8A95D2F74095509560957095809167
-:10461000550290915602A0915702B091580248233A
-:1046200059236A237B23CB01BA010C94862241E0F3
-:1046300050E060E070E004C0440F551F661F771F14
-:104640008A95D2F78091550290915602A091570217
-:10465000B0915802482759276A277B27CB01BA0116
-:104660000C9486220F931F930091550210915602CD
-:104670002091570230915802602B712B822B932B83
-:104680001F910F910C9486220F931F930091550256
-:1046900010915602209157023091580260237123E5
-:1046A000822393231F910F910C9486220F931F93C3
-:1046B00000915502109156022091570230915802F4
-:1046C00060277127822793271F910F910C948622D0
-:1046D0000895CF92DF92EF92FF920F931F93CF93A3
-:1046E000DF93EC01C0905902D0905A02E0905B0237
-:1046F000F0905C028091550290915602A091570271
-:10470000B0915802C82AD92AEA2AFB2A0FE110E000
-:10471000B701A601002E04C0769567955795479579
-:104720000A94D2F740FF08C0BE01802F0E94E00328
-:104730008130910509F007C00150110948F7BE0109
-:1047400080E00E94E003DF91CF911F910F91FF90D5
-:10475000EF90DF90CF90089540911B0150911C0184
-:1047600020E030E09FEFFA01E20FF31F628168174B
-:10477000A1F09F3F19F4611101C0922F2F5F3F4FAD
-:104780002630310581F707C0FA01E90FF11D97FDC9
-:10479000FA95828308959F3FB9F7089540911B01D0
-:1047A00050911C0120E030E0FA01E20FF31F9281EA
-:1047B000981301C012822F5F3F4F26303105A1F7B9
-:1047C000089581E090E0E0911B01F0911C01E80F59
-:1047D000F91F1082019688309105A9F708959091EC
-:1047E0005D02982B90935D020895809590915D02F3
-:1047F000982390935D02089510925D020895909120
-:104800005E02982B90935E020895809590915E02CF
-:10481000982390935E02089510925E02089580930B
-:104820005F02089510925F02089540911B0150911C
-:104830001C0120E030E080E0FA01E20FF31F9181DB
-:1048400091118F5F2F5F3F4F27303105A9F70895F2
-:10485000E0911B01F0911C0180915D028083E09149
-:104860001B01F0911C01808190915E02892B808355
-:1048700090915F02992361F0E0911B01F0911C017E
-:104880008081892B80830E94152481110E9412242B
-:1048900080911B0190911C010C946A1880916E0309
-:1048A000843009F11092690220E488E190E00FB6AB
-:1048B000F894A895809360000FBE2093600083B7A2
-:1048C000817F846083BF83B7816083BF789488953C
-:1048D00083B78E7F83BF88E10FB6F8948093600022
-:1048E000109260000FBE0895CF930E94E3020E94D1
-:1048F0007E060E94E402C0E08C2F0E94C407892B30
-:1049000029F4CF5FC430C1F780E001C081E0CF91CE
-:1049100008950E948C1E0C945F2B1F920F920FB66D
-:104920000F9211248F939F93AF93BF93809169024D
-:10493000811113C080916A0290916B02A0916C0268
-:10494000B0916D024196A11DB11D80936A029093B2
-:104950006B02A0936C02B0936D02BF91AF919F91D7
-:104960008F910F900FBE0F901F90189582E084BD1D
-:1049700093E095BD9AEF97BD80936E0008958FB731
-:10498000F89440916A0250916B0260916C027091B0
-:104990006D028FBFCA010895CF92DF92EF92FF920E
-:1049A0000F931F932FB7F89440916A0250916B02B6
-:1049B00060916C0270916D022FBF6A017B01EE2441
-:1049C000FF248C0120E030E0C016D106E206F30699
-:1049D00020F09A01281B390B05C09C0120953095C9
-:1049E000240F351FC9011F910F91FF90EF90DF90A9
-:1049F000CF9008951F920F920FB60F9211248F93AC
-:104A00009F93AF93BF9380916A0290916B02A091A4
-:104A10006C02B0916D020196A11DB11D80936A02D6
-:104A200090936B02A0936C02B0936D02BF91AF9113
-:104A30009F918F910F900FBE0F901F9018950E941D
-:104A4000A111F8942FEF87EA91E621508040904021
-:104A5000E1F700C0000087E090EBDC018093780371
-:104A600090937903A0937A03B0937B032CE088E1C1
-:104A700090E00FB6F894A895809360000FBE209345
-:104A80006000FFCFCF92DF92EF92FF920F931F93C0
-:104A9000CF93DF93C82ED12C01E010E08D2D0E9422
-:104AA000C4077C01C0E0D0E098010C2E02C0220FA8
-:104AB000331F0A94E2F72E213F21232B29F421965C
-:104AC000CC30D10589F708C06C2F7D2D80E00E9485
-:104AD000BB03C812F4CF06C0D39484E0D812DECF53
-:104AE00080E001C081E0DF91CF911F910F91FF9095
-:104AF000EF90DF90CF900895CF93C82F8CE20E9463
-:104B00004225882321F08C2FCF910C94422580E000
-:104B1000CF910895CF930E94CD26811102C00E94AB
-:104B2000AE26C5E608C00E947E068FE39CE9019789
-:104B3000F1F700C00000C150B1F789E20E947C2566
-:104B400081110AC18AE20E947C2581110E94AE2651
-:104B500085E00E947C2581110E941F250E94D82695
-:104B60008093680287E00E947C25882399F18BE17D
-:104B70000E947C25882351F09091680291FB882740
-:104B800080F921E0822780FB91F922C08EE00E940B
-:104B90007C25882351F09091680292FB882780F948
-:104BA00021E0822780FB92F913C080E10E947C25DE
-:104BB00090916802882341F093FB882780F921E0D7
-:104BC000822780FB93F904C0892F809580FB90F9A0
-:104BD00090936802809168020E94DC260E94EA2677
-:104BE00080937B0280EE0E947C25882341F0809197
-:104BF0007B02982F909590FB80F980937B0289E34C
-:104C00000E947C25882359F090917B0291FB882794
-:104C100080F921E0822780FB91F990937B0282EE5C
-:104C20000E947C25882359F090917B0292FB882773
-:104C300080F921E0822780FB92F990937B0286EE37
-:104C40000E947C25882359F090917B0293FB882752
-:104C500080F921E0822780FB93F990937B0283EE19
-:104C60000E947C25882359F090917B0294FB882731
-:104C700080F921E0822780FB94F990937B0285E301
-:104C80000E947C25882359F090917B0295FB882710
-:104C900080F921E0822780FB95F990937B0281E3E4
-:104CA0000E947C25882359F090917B0296FB8827EF
-:104CB00080F921E0822780FB96F990937B0281E1C5
-:104CC0000E947C25882359F090917B0297FB8827CE
-:104CD00080F921E0822780FB97F990937B028091F5
-:104CE0007B020E94EE2687E20E947C25C82F8EE17F
-:104CF0000E947C258111C2608FE10E947C25811178
-:104D0000C46080E20E947C258111C86081E20E941B
-:104D10007C258111C06182E20E947C258111C062E4
-:104D200083E20E947C258111C06484E20E947C257C
-:104D3000882311F0C06802C0CC2329F08C2F0E9478
-:104D4000E5266C2F03C00E94E126682F70E080E00A
-:104D500090E0CF910C949122CF9108956DEE7EEF6B
-:104D600080E090E00E94BA2F60E082E090E00E9434
-:104D7000AC2F60E083E090E00E94AC2F60E084E024
-:104D800090E00E94AC2F60E085E090E00E94AC2FA4
-:104D900060E086E090E00C94AC2F80E090E00E9410
-:104DA000A62F21E08D3E9E4F09F020E0822F08952E
-:104DB00082E090E00C949E2F682F82E090E00C94AB
-:104DC000AC2F83E090E00C949E2F682F83E090E05E
-:104DD0000C94AC2F84E090E00C949E2F682F84E01C
-:104DE00090E00C94AC2F86E090E00C949E2F682FFE
-:104DF00086E090E00C94AC2F8091760280FF0BC08F
-:104E00006091200185E0689FB00111247595679538
-:104E1000759567952AC081FF09C06091200185E0E2
-:104E2000689FB0011124759567951FC082FF07C068
-:104E30006091200185E0689FB001112416C0409167
-:104E400070024423C9F060911F01461788F7209132
-:104E5000200185E0289F90011124429FC001439FBB
-:104E6000900D112470E00E948A2F6038710540F483
-:104E70006115710539F002C065E070E0862F089574
-:104E80008FE7089581E008958091760280FF08C041
-:104E900060911E0170E0759567957595679521C0C5
-:104EA00081FF06C060911E0170E07595679519C07D
-:104EB00082FF04C060911E0170E010C080917002FA
-:104EC0008823C1F060911D018617A0F790911E0103
-:104ED000989FC001112470E00E948A2F60387105EC
-:104EE00028F46115710521F0862F08958FE7089544
-:104EF00081E0089561E070E0F4CF803F21F40E94EA
-:104F0000FC26819504C0813F29F40E94FC268093F1
-:104F100073020895823F21F40E94FC26819504C00B
-:104F2000833F29F40E94FC26809372020895893FF2
-:104F300019F40E94442705C08A3F31F40E94442797
-:104F400081958093740208958B3F21F40E94442739
-:104F5000819504C08C3F29F40E94442780937502F8
-:104F60000895843F21F480917102816017C0853FCC
-:104F700021F480917102826011C0863F21F48091FA
-:104F8000710284600BC0873F21F4809171028860B8
-:104F900005C0883F31F48091710280618093710275
-:104FA00008958D3F21F48091760281600BC08E3F81
-:104FB00021F480917602826005C08F3F29F48091B0
-:104FC00076028460809376020895803F29F4809170
-:104FD000730287FF6EC007C0813F41F48091730266
-:104FE00018160CF066C01092730263C090917202A2
-:104FF000823F19F497FF5DC005C0833F31F4191655
-:105000000CF057C01092720254C0893F31F4809165
-:10501000740218160CF04DC006C08A3F39F4809116
-:10502000740287FF46C01092740243C08B3F29F47C
-:105030008091750287FF3DC006C08C3F39F4809196
-:1050400075021816B4F51092750233C0843F21F42E
-:10505000809171028E7F05C0853F31F4809171028D
-:105060008D7F8093710225C0863F21F4809171026B
-:105070008B7FF7CF873F21F480917102877FF1CF3B
-:10508000883F21F4809171028F7EEBCF8D3F21F418
-:10509000809176028E7F0BC08E3F21F48091760244
-:1050A0008D7F05C08F3F29F4809176028B7F80939E
-:1050B00076028091720281110EC08091730281117B
-:1050C0000AC080917402811106C08091750281111D
-:1050D00002C010927002089581E792E00E94751854
-:1050E0000E94BF2490936F0280936E020895CF9325
-:1050F00080916E0290916F020E94CC2440917002C8
-:10510000442321F02091210130E006C020912201AA
-:105110005AE0259F900111248217930708F486C056
-:105120008091720281110DC090917302911109C09A
-:1051300090917402911105C090917502992309F420
-:1051400075C04F3F19F04F5F40937002181624F45A
-:105150000E94FC26809372028091720287FF05C034
-:105160000E94FC268195809372028091730218162A
-:1051700024F40E94FC26809373028091730287FFBF
-:1051800005C00E94FC268195809373026091720293
-:10519000662339F1C0917302CC2319F1772767FD9B
-:1051A0007095872F972F0E94FA2C23E333E343E374
-:1051B0005FE30E94AE2D0E94C72C609372026C2F99
-:1051C000772767FD7095872F972F0E94FA2C23E38E
-:1051D00033E343E35FE30E94AE2D0E94C72C60934C
-:1051E000730280917402181624F40E94442780935D
-:1051F00074028091740287FF05C00E944427819544
-:105200008093740280917502181624F40E9444273A
-:10521000809375028091750287FF05C00E94442724
-:10522000819580937502CF910C946C28CF9108954D
-:10523000E1E7F2E085E0DF011D928A95E9F710923F
-:105240007002109276020895833089F130F4813033
-:1052500061F0823009F06EC019C0853009F449C090
-:10526000B8F1863009F066C055C020912201862F22
-:1052700090E0820F911D8F3F910520F4620F6093A3
-:10528000220108958FEF809322010895209121013A
-:10529000862F90E0820F911D8F3F910520F4620FC1
-:1052A0006093210108958FEF80932101089520914B
-:1052B0002001862F90E0820F911D8F3F910520F4F1
-:1052C000620F6093200108958FEF8093200108956D
-:1052D00020911F01862F90E0820F911D8F3F910535
-:1052E00020F4620F60931F0108958FEF80931F01D8
-:1052F000089520911E01862F90E0820F911D8F3F0F
-:10530000910520F4620F60931E0108958FEF809342
-:105310001E01089520911D01862F90E0820F911D9E
-:105320008F3F910520F4620F60931D0108958FEF68
-:1053300080931D010895833021F130F4813059F0BC
-:10534000823009F049C012C0853089F128F18630D9
-:1053500009F042C037C080912201681720F4861BF3
-:1053600080932201089510922201089580912101D5
-:10537000681720F4861B8093210108951092210163
-:10538000089580912001681720F4861B80932001E6
-:10539000089510922001089580911F01681720F44C
-:1053A000861B80931F01089510921F01089580911C
-:1053B0001E01681720F4861B80931E010895109229
-:1053C0001E01089580911D01681720F4861B8093AB
-:1053D0001D01089510921D01089541E050E060E024
-:1053E00070E004C0440F551F661F771F8A95D2F7DF
-:1053F000CB01BA010E9491220C948C1E873208F5D1
-:105400008E3108F0B9C08E3009F47EC060F4873068
-:1054100009F465C018F4863059F549C0883051F157
-:105420008B3031F5AEC0883130F4863108F0A9C038
-:105430008031F1F473C0893109F4A3C08B31C1F418
-:1054400059C08933F1F068F4893209F493C018F433
-:10545000873271F48FC0853309F48CC0883341F4EE
-:1054600090C0863409F46BC008F488C0883449F1D0
-:1054700080E008950E94D8260E94EA260E94F32622
-:1054800080C00E945918892B59F00E945918909396
-:105490007902809378020E948C1E80E090E004C024
-:1054A00080917802909179020E9454186AC080918C
-:1054B0006802817F8E7F8093680281E0809377020B
-:1054C00008950E948C1E2FEF83ED90E321508040C1
-:1054D0009040E1F700C000000E941F2552C080915B
-:1054E000680280FF03C0817F8E7F01C0816080934E
-:1054F000680247C09091680291FB882780F921E0FB
-:10550000822780FB91F913C09091680292FB882753
-:1055100080F921E0822780FB92F909C0909168020E
-:1055200093FB882780F921E0822780FB93F99093F1
-:105530006802882331F191609093680222C081E86B
-:1055400090E00E9480182FEF81EE94E0215080407F
-:105550009040E1F700C0000080E090E00E948018D9
-:105560002FEF89E698E1215080409040E1F700C09C
-:10557000000007C080E003C08D5101C089530E9424
-:10558000ED2981E0089580E0089580E00895CF93AB
-:10559000C82F80917702813071F020F0823009F0BD
-:1055A00083C037C0A0911B01B0911C018C91823245
-:1055B00009F07CC007C0A0911B01B0911C018C9127
-:1055C000823249F48C2F0E94C32A81111EC08C2F75
-:1055D0000E94FE291CC08C2F0E94C52A811115C073
-:1055E000C43169F030F4CB3081F0C03109F062C0D1
-:1055F00009C0C93221F0C83309F05CC006C010925E
-:10560000770258C082E08093770281E090E0817059
-:1056100054C0C932C1F060F4C431A9F020F4C730DD
-:1056200009F046C02EC0CE51CA3008F041C011C0AA
-:10563000CE3409F118F4CB34D9F517C0C13599F03F
-:10564000C235B1F50EC010927A0281E080937702E4
-:1056500034C0EC2FF0E0E455FE4F808180937A0255
-:1056600027C061E003C061E007C06AE080917A0270
-:105670000E9424291DC06AE080917A020E949B2921
-:1056800017C08EE18093220182E3809321018AE09A
-:105690008093200184E180931F0188E080931E01A4
-:1056A00088E280931D0104C01092770280E005C05B
-:1056B00081E003C080E090E0AACFCF9108950E94DE
-:1056C000CD26811102C00E94AE260E94F32680934F
-:1056D000770380FF02C0869501C080E00C94DF074D
-:1056E00080917703982F9695292F30E0233031054C
-:1056F0004CF49F5F990F8170892B816080937703B1
-:105700000E94F7268091770386950C94DF0780919D
-:105710007703982F969591F09158990F8170892B66
-:10572000809377038E7F91E009F490E08091770376
-:1057300090FB80F9809377030E94F726809177038E
-:1057400086950C94DF0780917703982F909590FBB6
-:1057500080F9809377030E94F7268091770380FF7A
-:1057600002C0869501C080E00C94DF07309177037A
-:10577000232F26952F5F2F77822F90E0317004978B
-:105780002CF4220F232B2093770302C0309377034E
-:1057900080917703282F2E7F91E009F490E090FB11
-:1057A00080F9809377030E94F7268091770386958E
-:1057B0000C94DF0720917703922F96959827990FE5
-:1057C000822F8170892B809377038E7F91E009F47B
-:1057D00090E08091770390FB80F9809377030E949B
-:1057E000F7268091770386950C94DF075058BB27E6
-:1057F000AA270ED075C166D130F06BD120F031F4FC
-:105800009F3F11F41EF45BC10EF4E095E7FB51C11C
-:10581000E92F77D180F3BA176207730784079507DA
-:1058200018F071F49EF58FC10EF4E0950B2EBA2F8F
-:10583000A02D0B01B90190010C01CA01A001112496
-:10584000FF27591B99F0593F50F4503E68F11A1642
-:10585000F040A22F232F342F4427585FF3CF4695D3
-:1058600037952795A795F0405395C9F77EF41F16F5
-:10587000BA0B620B730B840BBAF09150A1F0FF0FBF
-:10588000BB1F661F771F881FC2F70EC0BA0F621FAB
-:10589000731F841F48F4879577956795B795F7959B
-:1058A0009E3F08F0B3CF9395880F08F09927EE0F2D
-:1058B000979587950895D9D008F481E008950CD084
-:1058C0000FC107D140F0FED030F021F45F3F19F056
-:1058D000F0C0511139C1F3C014D198F39923C9F321
-:1058E0005523B1F3951B550BBB27AA2762177307E6
-:1058F000840738F09F5F5F4F220F331F441FAA1F9A
-:10590000A9F333D00E2E3AF0E0E830D09150504059
-:10591000E695001CCAF729D0FE2F27D0660F771F07
-:10592000881FBB1F261737074807AB07B0E809F0E9
-:10593000BB0B802DBF01FF2793585F4F2AF09E3F7E
-:10594000510568F0B6C000C15F3FECF3983EDCF350
-:10595000869577956795B795F7959F5FC9F7880FF7
-:10596000911D9695879597F90895E1E0660F771F49
-:10597000881FBB1F621773078407BA0720F0621BDA
-:10598000730B840BBA0BEE1F88F7E095089504D0D3
-:105990006894B111D9C00895BCD088F09F5790F099
-:1059A000B92F9927B751A0F0D1F0660F771F881F44
-:1059B000991F1AF0BA95C9F712C0B13081F0C3D05F
-:1059C000B1E00895C0C0672F782F8827B85F39F0FD
-:1059D000B93FCCF3869577956795B395D9F73EF4A3
-:1059E00090958095709561957F4F8F4F9F4F08954B
-:1059F000E89409C097FB3EF4909580957095619569
-:105A00007F4F8F4F9F4F9923A9F0F92F96E9BB271E
-:105A10009395F695879577956795B795F111F8CF9A
-:105A2000FAF4BB0F11F460FF1BC06F5F7F4F8F4F05
-:105A30009F4F16C0882311F096E911C0772321F0FB
-:105A40009EE8872F762F05C0662371F096E8862F93
-:105A500070E060E02AF09A95660F771F881FDAF7EA
-:105A6000880F9695879597F90895990F0008550F17
-:105A7000AA0BE0E8FEEF16161706E807F907C0F0D4
-:105A800012161306E407F50798F0621B730B840BDC
-:105A9000950B39F40A2661F0232B242B252B21F4B6
-:105AA00008950A2609F4A140A6958FEF811D811D56
-:105AB000089597F99F6780E870E060E008959FEF90
-:105AC00080EC089500240A94161617061806090695
-:105AD000089500240A941216130614060506089564
-:105AE000092E0394000C11F4882352F0BB0F40F4EC
-:105AF000BF2B11F460FF04C06F5F7F4F8F4F9F4F2C
-:105B0000089557FD9058440F551F59F05F3F71F0AD
-:105B10004795880F97FB991F61F09F3F79F0879514
-:105B20000895121613061406551FF2CF4695F1DF9D
-:105B300008C0161617061806991FF1CF869571052D
-:105B4000610508940895E894BB2766277727CB0161
-:105B500097F908958ADF08F48FEF08950BD0C0CF2E
-:105B6000B1DF28F0B6DF18F0952309F0A2CFA7CF58
-:105B70001124EACFC6DFA0F3959FD1F3950F50E033
-:105B8000551F629FF001729FBB27F00DB11D639FEF
-:105B9000AA27F00DB11DAA1F649F6627B00DA11D95
-:105BA000661F829F2227B00DA11D621F739FB00D3B
-:105BB000A11D621F839FA00D611D221F749F3327AB
-:105BC000A00D611D231F849F600D211D822F762F44
-:105BD0006A2F11249F5750408AF0E1F088234AF041
-:105BE000EE0FFF1FBB1F661F771F881F915050408D
-:105BF000A9F79E3F510570F05CCFA6CF5F3FECF355
-:105C0000983EDCF3869577956795B795F795E79578
-:105C10009F5FC1F7FE2B880F911D9695879597F989
-:105C20000895FA01EE0FFF1F30962105310599F115
-:105C30006115710561F48038BFE39B0749F16894F1
-:105C40009038810561F08038BFEF9B0741F09923C0
-:105C500042F5FF3FE1053105210511F1E894089473
-:105C6000E795D901AA2329F4AB2FBE2FF85FD0F313
-:105C700010C0FF5F70F4A695E0F7F73950F019F007
-:105C8000FF3A38F49F779F930CD00F9007FC905801
-:105C900008953EF014CF60E070E080E89FE308953F
-:105CA0004FE79F775F934F933F932F939ED02F9112
-:105CB0003F914F915F9152DF05C019F40EF0F9CE7C
-:105CC00042CFFDCE26DFC8F39638C0F707F80F9213
-:105CD000E8942BE33AEA48EB5FE74EDF0F920F922E
-:105CE0000F924DB75EB70F92C0D0ECEAF0E016D03D
-:105CF0004F915F91EF91FF91E595EE1FFF1F49F0E6
-:105D0000FE57E0684427EE0F441FFA95E1F74195EE
-:105D1000550B32D00F9007FE26C00895DF93CF9326
-:105D20001F930F93FF92EF92DF927B018C01689497
-:105D300005C0DA2EEF011EDFFE01E894A591259142
-:105D4000359145915591AEF3EF0162DDFE0197016A
-:105D5000A801DA9479F7DF90EF90FF900F911F91EF
-:105D6000CF91DF9108959B01AC0160E070E080E885
-:105D70009FE3A5CD9ECEACC0CCDEE8F39923D9F34A
-:105D8000940F511DBBF39150504094F059F088236B
-:105D900032F0660F771F881F91505040C1F79E3F29
-:105DA000510544F7880F911D9695879597F90895A9
-:105DB0005F3FACF0983E9CF0BB2786957795679542
-:105DC000B79508F4B1609395C1F7BB0F58F711F47C
-:105DD00060FFE8CF6F5F7F4F8F4F9F4FE3CFB4CE11
-:105DE0000EF076C06CCE689464CE93DEC8F399232F
-:105DF000D1F3C6F3DF93CF931F930F93FF92C92F75
-:105E0000DD2788232AF02197660F771F881FDAF78E
-:105E100020E030E040E85FEB9FE3883920F0803EEF
-:105E200030F021968F77E3DCE4EDF0E003C0DFDCB7
-:105E3000E1E0F1E073DF8B01BE01EC01FB2E6F5757
-:105E400071097595771F880B990BD4DD28E132E72E
-:105E500041E35FE38FDEAF2D9801AE01FF900F911C
-:105E60001F91CF91DF91D4DC3BCEFA01DC01AA0F68
-:105E7000BB1F9B01AC01BF5728F4222733274427BF
-:105E800050781FC0B75188F4AB2F00244695379542
-:105E90002795011CA395D2F3002069F0220F331F30
-:105EA000441FB395DAF30DD0A1CC61307105A0E8A1
-:105EB0008A07B94630F49B01AC016627772788270B
-:105EC0009078309621F02083318342835383089564
-:105ED0009F3F31F0915020F4879577956795B7955E
-:105EE000880F911D9695879597F90895AA1BBB1B5E
-:105EF00051E107C0AA1FBB1FA617B70710F0A61BCA
-:105F0000B70B881F991F5A95A9F780959095BC01EA
-:105F1000CD01089597FB072E16F4009407D077FD66
-:105F200009D00E94762F07FC05D03EF4909581950C
-:105F30009F4F0895709561957F4F0895F999FECF11
-:105F400092BD81BDF89A992780B50895A8E1B0E087
-:105F500042E050E00C94C12F262FF999FECF1FBAD2
-:105F600092BD81BD20BD0FB6F894FA9AF99A0FBE82
-:105F7000019608950E94AC2F272F0C94AD2FDC01C1
-:105F8000CB01FC01F999FECF06C0F2BDE1BDF89A44
-:105F9000319600B40D9241505040B8F70895F894EE
-:025FA000FFCF31
-:105FA2000507000C058540000001064000000100C5
-:105FB200D80B680C440C0F0CDB0B01600228081490
-:105FC2000A321E40004500250026006100600020C4
-:105FD2000037006400650066006700440046002444
-:105FE2000047000000020004000500070009000B42
-:105FF200000C000E0010001100130015001700180D
-:10600200001A001C001D001F00210023002400268E
-:1060120000280029002B002D002F00300032003410
-:10602200003500370039003B008803A103BA03D3CF
-:1060320003FB04AE04780458043F4D3620020302E9
-:10604200000001000101010101000101010203043C
-:0660520005060708090025
-:00000001FF
diff --git a/keyboard/planck/planck_pcb_r4.hex b/keyboard/planck/planck_pcb_r4.hex deleted file mode 100644 index bd68d9e904..0000000000 --- a/keyboard/planck/planck_pcb_r4.hex +++ /dev/null @@ -1,1645 +0,0 @@ -:100000000C94DA040C941E050C941E050C941E0529
-:100010000C941E050C941E050C941E050C941E05D4
-:100020000C941E050C941E050C94B7180C94891999
-:100030000C94EC270C941E050C941E050C941E05C4
-:100040000C941E050C941E050C941E050C941E05A4
-:100050000C941E050C9454280C941E050C941E053B
-:100060000C941E050C941E050C941E050C941E0584
-:100070000C941E050C941E050C941E050C941E0574
-:100080000C94AD0E0C941E050C941E050C941E05CC
-:100090000C941E050C941E050C941E050C941E0554
-:1000A0000C941E050C941E050C941E0579058905FB
-:1000B0009B05AB05B105C005CC05D205E005E905FA
-:1000C000FA050A0610064006F619181A061B181A31
-:1000D000061B5D1A801A061BD51AE81AEB1DEB1DCC
-:1000E000281E281E821EC01E38213821D91E382104
-:1000F000DA1FDA1F9D20B4203821232107634236FE
-:10010000B79BD8A71A39685618AEBAAB558C1D3CA8
-:10011000B7CC5763BD6DEDFD753EF6177231BF006C
-:100120000000803F08000000BE922449123EABAAA6
-:10013000AA2ABECDCCCC4C3E00000080BEABAAAA01
-:10014000AA3E00000000BF000000803F0000000049
-:1001500000084178D3BB4387D1133D190E3CC3BD82
-:100160004282AD2B3E68EC8276BED98FE1A93E4C2F
-:1001700080EFFFBE01C4FF7F3F00000000002B00A6
-:1001800014001A000800150017001C0018000C00CD
-:10019000120013002A0029000400160007000900BD
-:1001A0000A000B000D000E000F0033003400E100C8
-:1001B0001D001B000600190005001100100036008C
-:1001C0003700380028000530E000E200E30003308B
-:1001D0002C002C0004305000510052004F002B0026
-:1001E00014001A00090013000A000D000F00180087
-:1001F0001C0033002A002900040015001600170017
-:1002000007000B00110008000C0012003400E10090
-:100210001D001B000600190005000E00100036002E
-:100220003700380028000530E000E200E30003302A
-:100230002C002C0004305000510052004F002B00C5
-:1002400034003600370013001C0009000A000600C5
-:1002500015000F002A0029000400120008001800F1
-:100260000C0007000B001700110016003800E10019
-:10027000330014000D000E001B00050010001A00D2
-:1002800019001D0028000530E000E200E300033003
-:100290002C002C0004305000510052004F00350259
-:1002A0001E021F0220022102220223022402250232
-:1002B000260227022A004C003A003B003C003D0089
-:1002C0003E003F002D022E022F02300231020100BB
-:1002D000400041004200430044004500010001008D
-:1002E0000100010001000100010001000100010006
-:1002F000010001000100AB00AA00A900AE0035001A
-:100300001E001F00200021002200230024002500E1
-:10031000260027002A004C003A003B003C003D002C
-:100320003E003F002D002E002F0030003100010064
-:10033000400041004200430044004500010001002C
-:1003400001000100010001000100010001000100A5
-:10035000010001000100AB00AA00A900AE000000EE
-:10036000000000000000000000000000000000008D
-:10037000000000000000000000000000000000007D
-:10038000000000000000000000000000000000006D
-:10039000000000000000000000000000000000005D
-:1003A000000000000000000000000000000003301A
-:1003B00000000000043000000000000000001E00EB
-:1003C0001E001E001E001E001E001E001E001E003D
-:1003D0001E001E001E00000014001A000800150078
-:1003E00017001C0018000C00120013002F00000062
-:1003F00004001600070009000A000B000D000E00A3
-:100400000F00330034000D3000000000060019001A
-:1004100000000000110010000000000000000000BB
-:1004200000000000000000000000000000000000CC
-:1004300000000000000000000000000000000000BC
-:1004400000000000000000000000000000000000AC
-:10045000000000000000000000000000000000009C
-:10046000000000000000000000000000000000008C
-:10047000000000000000000000000000000000007C
-:10048000000000000000000000000000000000006C
-:10049000000000000000000000000000000000005C
-:1004A000000000000000000000000000000000004C
-:1004B000000000000000000000000000000000003C
-:1004C000000000000000000000000000000000002C
-:1004D000000000000000000000000000000000001C
-:1004E000000000000000000000000000000000000C
-:1004F00000000000000000000000000000000000FC
-:1005000000000000000000000000000000000000EB
-:1005100000000000000000000000000000000000DB
-:1005200000000000000000000000000000000000CB
-:1005300000000000000000000000000000000000BB
-:1005400000000000000000000000000000000000AB
-:10055000000000000000000000000000000000009B
-:10056000000000000000000000000000000000008B
-:10057000000000000000000000000000000000007B
-:10058000000000000000000000000000000000006B
-:10059000000000000000000000000000000000005B
-:1005A000000000000000000000000000000000004B
-:1005B000000000000000000000000000000000003B
-:1005C000000000000000000000000000000000002B
-:1005D000000000000000000000000000000000001B
-:1005E000000000000000000000000000000000000B
-:1005F00000000000000000000000000000000000FB
-:1006000000000000000000000000000000000000EA
-:1006100000000000000000000000000000000000DA
-:1006200000000000000000000000000000000000CA
-:1006300000000000000000000000000000000000BA
-:1006400000000000000000000000000000000000AA
-:10065000000000000000000000000000000000009A
-:10066000000000000000000000000000000000008A
-:10067000000000000000000000000000000000007A
-:10068000000000000000000000000000000000006A
-:10069000000000000000000000000000000000005A
-:1006A000000000000000000000000000000000004A
-:1006B000000000000000000000000000000000003A
-:1006C000000000000000000000000000000000002A
-:1006D000000000000000000000000000000000001A
-:1006E000000000000000000000000000000000000A
-:1006F00000000000000000000000000000000000FA
-:1007000000000000000000000000000000000000E9
-:1007100000000000000000000000000000000000D9
-:1007200000000000000000000000000000000000C9
-:1007300000000000000000000000000000000000B9
-:1007400000000000000000000000000000000000A9
-:100750000000000000000000000000000000000099
-:100760000000000000000000000000000000000089
-:100770000000000000000000000000000000010078
-:100780000050010001000100010001000100010012
-:10079000010001004C00010001000100073006309B
-:1007A000135012500030013002300C3001000100B3
-:1007B0000B300A300930083001000100010001004F
-:1007C0000100010001000100010001000100010021
-:1007D00001000100010001000100010001002803E7
-:1007E000540068006500200050006C0061006E003D
-:1007F00063006B0020004B006500790062006F0011
-:1008000061007200640000002C034F00720074004D
-:1008100068006F006C0069006E0065006100720086
-:1008200020004B006500790062006F0061007200DB
-:100830006400730000000403090409026D00040150
-:1008400000A0FA09040000010301010009211101BF
-:100850000001223F000705810308000A0904010086
-:100860000103010200092111010001224D000705C9
-:10087000820308000A0904020001030000000921A4
-:10088000110100012236000705830308000A09044C
-:1008900003000103000000092111010001223900B9
-:1008A000070584031000011201100100000008ED8B
-:1008B000FE606001000102000105010906A10105B9
-:1008C0000719E029E7150025019508750181020542
-:1008D0000819012905950575019102950175039186
-:1008E0000105071900297715002501957875018103
-:1008F00002C005010980A101850216010026B7008A
-:100900001A01002AB700751095018100C0050C0975
-:1009100001A1018503160100269C021A01002A9CF0
-:1009200002751095018100C005010902A1010901AC
-:10093000A100050919012905150025019505750175
-:100940008102950175038101050109300931158185
-:10095000257F95027508810609381581257F950147
-:1009600075088106050C0A38021581257F950175E9
-:10097000088106C0C005010906A101050719E02983
-:10098000E71500250195087501810295017508811B
-:100990000105081901290595057501910295017553
-:1009A0000391010507190029FF150025FF9506751C
-:1009B000088100C011241FBECFEFDAE0DEBFCDBF3B
-:1009C00004B603FE24C08091690490916A04A0914A
-:1009D0006B04B0916C048730904BA740B04BB9F4D6
-:1009E0001092690410926A0410926B0410926C04C5
-:1009F00014BE84B7877F84BF88E10FB6F8948093D4
-:100A00006000109260000FBEE0E0F8E3099513E08B
-:100A1000A0E0B1E0E2E4F4E602C005900D92A23657
-:100A2000B107D9F714E0A2E6B3E001C01D92A936E0
-:100A3000B107E1F70E94FD150C941F320C940000E1
-:100A4000279A2F988FEF9FEF9093870080938600CF
-:100A50008AE08093800089E1809381000C94562D78
-:100A6000282F81110BC080918000877F80938000A8
-:100A700010928D0010928C002F9808952F988091DD
-:100A80008000886080938000233019F48FEF9FEFFF
-:100A90000FC083E090E0821B9109880F991F2FEF10
-:100AA0003FEFA90102C0569547958A95E2F7CA0122
-:100AB00090938D0080938C000895CF93DF93EC0189
-:100AC0000E94ED28BE0180E090E0DF91CF910C9470
-:100AD00018250F931F93462F50E04E30510508F014
-:100AE000DEC0DC01FA01EA5AFF4F12968C910C9499
-:100AF000E331882309F4D3C000E010E0980140E01E
-:100B000064E070E089E292E00E942B1281E090E0C4
-:100B10000FC0882309F4C3C000E010E0980140E052
-:100B200066E070E089EB91E00E942B1282E090E099
-:100B30000E945D05B4C0882309F4B1C000E010E054
-:100B4000980140E068E070E089EE91E00E942B128D
-:100B500084E090E0EDCF882311F083E005C083E0CE
-:100B60000CC0882349F084E00E94952540E164E0B0
-:100B700083E00E946D0A93C084E00E94B625F6CF00
-:100B8000882331F085EE0E947F1C0E94AD2D87C026
-:100B900085EE0E94471D83C0882309F480C00E940F
-:100BA000BF0D7DC0882309F47AC00E94B80D00E013
-:100BB00010E0980140E065E070E089E492E027C031
-:100BC000882309F46CC085E00E94B6250E94E00DE0
-:100BD00066C0882309F463C000E010E0980140E09B
-:100BE00068E070E089E191E00E942B1285E00E94AC
-:100BF000952555C0882309F452C00E94BE1200E01A
-:100C000010E0980140E068E070E089E191E00E9426
-:100C10002B1245C0882309F442C00E94C912EFCFAD
-:100C20008823E9F100E010E0980140E066E070E020
-:100C300089E891E00E942B1284E00E94B62583E0AF
-:100C40000E94B62580E10E94B62585E00E94B62567
-:100C50000E94E00D86E00E9495250E94DA2881110D
-:100C600002C00E94B6280E94F22890E09093680487
-:100C7000809367048068809367040E94F6280FC001
-:100C8000882369F000E010E0980140E066E070E041
-:100C900089E591E00E942B1286E00E94B62580E053
-:100CA00090E01F910F9108950F931F932FEF89EFFD
-:100CB00090E0215080409040E1F700C0000000E04B
-:100CC00010E0980140E065E070E089E492E00E9465
-:100CD0002B121F910F9108950F931F9300E010E0C6
-:100CE000980140E063E070E081E091E00E942B1207
-:100CF0002FEF82E597E0215080409040E1F700C05F
-:100D000000001F910F910895CF92DF92EF92FF9212
-:100D10000F931F93CF93DF93CDB7DEB7CC58D10994
-:100D20000FB6F894DEBF0FBECDBF2091210425FF82
-:100D3000C5C08C01FC01928180910001992309F4C6
-:100D400060C096E4EEE8F2E0DE01A95BBF4F0190DF
-:100D50000D929A95E1F7F8019081E0916203F0918C
-:100D60006303E90FF11DEE0FFF1F27E430E02C0FA6
-:100D70003D1FE20FF31F60817181680F711D88278D
-:100D800077FD8095982F0E94F12E20E030E040E41E
-:100D900051E40E94562E6B017C01F801218184E010
-:100DA00090E0821B9109BC01882777FD8095982FE0
-:100DB0000E94F12E9B01AC01C701B6010E94EE2DED
-:100DC0009B01AC0160E070E080E090E40E94643040
-:100DD00020E030E04CE551E40E9401304FE050E06B
-:100DE000C457DF4F0FB6F894DEBF0FBECDBFDF9103
-:100DF000CF911F910F91FF90EF90DF90CF900C94C7
-:100E0000CB1196E4EEE8F2E0DE01119601900D922E
-:100E10009A95E1F7F8019081E0916203F091630304
-:100E2000E90FF11DEE0FFF1F21E030E02C0F3D1FF9
-:100E3000E20FF31F60817181680F711D882777FDB4
-:100E40008095982F0E94F12E20E030E040E451E49C
-:100E50000E94562E6B017C01F801218184E090E014
-:100E6000821B9109BC01882777FD8095982F0E94ED
-:100E7000F12E9B01AC01C701B6010E94EE2D9B0132
-:100E8000AC0160E070E080E090E40E94643020E01B
-:100E900030E04CE551E40E940130C457DF4F0FB6FB
-:100EA000F894DEBF0FBECDBFDF91CF911F910F91A0
-:100EB000FF90EF90DF90CF900C94130EC457DF4F4C
-:100EC0000FB6F894DEBF0FBECDBFDF91CF911F915B
-:100ED0000F91FF90EF90DF90CF90089508950E94BA
-:100EE00020056E9A769A0C9454060C946E070C9416
-:100EF00084060895880F991FFC01E250F040859107
-:100F000094910895880F991FFC01E258FE4F859136
-:100F1000949108950F931F93CF93DF93EC01811564
-:100F200020E49207A0F5C11580E3D80708F0E1C0DE
-:100F3000C83ED105D8F4C03ED10508F0EEC1C83A8C
-:100F4000D10578F4C53AD10508F074C0C130D10597
-:100F500009F46DC008F4DEC1C430D10508F0DDC16C
-:100F6000D9C1CB3BD10508F470C0D4C1C11590E202
-:100F7000D90708F0B9C0C11521E0D20708F0CDC1EA
-:100F8000C03FD10508F4C6C18E01106506C2C1304C
-:100F900080E5D80709F4BDC068F5C13120E4D20767
-:100FA00009F4AEC050F4C03190E4D90708F0A5C0F0
-:100FB000CF70DD278E01146DF0C1C33120E4D2075C
-:100FC00009F4A4C008F49FC0C115D04509F0A2C11E
-:100FD0000E945C210E94E00D0E946C069FEF24E3BA
-:100FE0008CE0915020408040E1F700C000000E945A
-:100FF0007928D3C1C11520E6D20730F4C11581E5A7
-:10100000D80708F48CC02DC1C11590E7D90708F4A2
-:1010100081C1C11520E8D20708F478C1C11580E963
-:10102000D80708F077C1DF708E01106AB6C101E001
-:1010300010E0B3C1C53AD10509F471C1C63AD10572
-:1010400009F070C102E810E4A8C1C83AD10509F45A
-:101050006CC1C93AD10509F46BC1CA3AD10509F48A
-:101060006AC1CB3AD10509F469C1CC3AD10509F47A
-:1010700068C1CD3AD10509F467C1C03BD10509F477
-:1010800066C1CE3AD10509F465C1CF3AD10509F45C
-:1010900064C1C13BD10509F463C1C23BD10509F468
-:1010A00062C1C33BD10509F461C1C43BD10509F458
-:1010B00060C1C53BD10509F45FC1C63BD10509F448
-:1010C0005EC1C73BD10509F45DC1C83BD10509F438
-:1010D0005CC1C93BD10509F45BC1CA3BD10509F428
-:1010E0005AC100E014E459C1CE019F700E948207EA
-:1010F00055C1DD278E01106C50C100E011ED4DC1CE
-:1011000000E010ED4AC100E012ED47C100E013ED30
-:1011100044C180913D04816080933D043EC10E94A2
-:10112000DA28811102C00E94B6280E94F22890E0BD
-:101130009093680480936704C23090E5D90721F446
-:1011400080916704816086C0C43020E5D20721F415
-:101150008091670482607EC0C63080E5D80721F4A4
-:1011600080916704846076C0C83090E5D90719F48F
-:101170008091670427C0CA3020E5D20721F480910E
-:101180006704806167C0CC3080E5D80721F4809186
-:10119000670480625FC0CE3090E5D90721F480916A
-:1011A0006704806457C0C03120E5D20721F48091E4
-:1011B000670480684FC0C23180E5D80729F4809168
-:1011C00067048460886046C0C33090E5D90721F485
-:1011D000809167048E7F3EC0C53020E5D20721F4A0
-:1011E000809167048D7F36C0C73080E5D80721F431
-:1011F000809167048B7F2EC0C93090E5D90719F420
-:101200008091670426C0CB3020E5D20721F480917D
-:1012100067048F7E1FC0CD3080E5D80721F4809110
-:1012200067048F7D17C0CF3090E5D90721F48091F6
-:1012300067048F7B0FC0C13120E5D20721F4809174
-:1012400067048F7707C0C331D04531F480916704BC
-:101250008B7F877F80936704809167040E94F628C4
-:101260009CC08D2F99278F70992781309105D9F4D3
-:101270009E012370332702C0880F991F2A95E2F739
-:101280009C688E0144E0000F111F4A95E1F700278A
-:101290001370802B912B53E0CC0FDD1F5A95E1F793
-:1012A000C076DD272FC08230910531F4DC2FCC27AA
-:1012B0008E01016F106A71C08330910569F4CE010F
-:1012C0008370992701E010E002C0000F111F8A957A
-:1012D000E2F7C8019C680FC0049709F05EC0CE0118
-:1012E0008370992701E010E002C0000F111F8A955A
-:1012F000E2F7C8019A6823E0CC0FDD1F2A95E1F7D9
-:10130000C07ED7708C010C2B1D2B47C0DF708E0167
-:10131000106243C000E010E040C08E013EC001E812
-:1013200010E43BC003E810E438C002EE14E435C01A
-:1013300009EE14E432C00AEE14E42FC005EB14E405
-:101340002CC006EB14E429C007EB14E426C00CEC17
-:1013500014E423C00DEC14E420C003E815E41DC020
-:101360000AE815E41AC002E915E417C004E915E417
-:1013700014C001E216E411C003E216E40EC004E258
-:1013800016E40BC005E216E408C006E216E405C048
-:1013900007E216E402C00AE216E4C801DF91CF9129
-:1013A0001F910F9108959CE0799FF001112490E323
-:1013B000899FE00DF11D1124E60FF11DEE0FFF1FB7
-:1013C000E258FE4F85919491803E9105E0F4803C77
-:1013D000910558F58133910509F46FC048F48932BD
-:1013E000910509F463C08A32910509F46DC072C099
-:1013F00089339105E9F082389105D1F08533910563
-:1014000009F44DC067C0833E910581F138F4803EF8
-:101410009105B9F0823E9105D9F05CC0863E9105F8
-:1014200061F1873E9105A1F155C00E947A070895A8
-:101430002091670420FD02C021FF4CC080EE90E0A7
-:1014400049C08091670480FFF9CF89E390E042C0F2
-:101450008091670482FF0EC08091670484FF03C0FF
-:1014600080E090E037C083EE90E034C08091670464
-:1014700082FFF2CF82EE90E02DC08091670483FF5F
-:101480000BC08091670484FDEBCF87EE90E022C013
-:101490008091670483FFF5CF86EE90E01BC08091BA
-:1014A000670485FF07C089E290E014C0809167045B
-:1014B00085FFF9CF85E390E00DC08091670486FF3A
-:1014C00007C08AE290E006C08091670486FFF9CFEA
-:1014D00081E390E00E948A070895CF92DF92EF9215
-:1014E000FF920F931F9301E010E020E030E06801CD
-:1014F000790104C0CC0CDD1CEE1CFF1C8A95D2F7D0
-:1015000004C0000F111F221F331F6A95D2F70C2948
-:101510001D292E293F29C0902104D0902204E0905B
-:101520002304F0902404C022D122E222F322842F4B
-:10153000C016D106E206F30641F41F910F91FF9009
-:10154000EF90DF90CF900C9495251F910F91FF9015
-:10155000EF90DF90CF900C94B62508950C94AD0ACF
-:101560005F926F927F928F929F92AF92BF92CF9233
-:10157000DF92EF92FF920F931F93CF93DF93CDB73C
-:10158000DEB728970FB6F894DEBF0FBECDBFCE01F1
-:1015900001966C014E0199E0890E911C20E030E02B
-:1015A00040E050E060E070E000E010E0E12CF12C61
-:1015B0006C2C5D2C88E0782EAA24A394B12CE4ED49
-:1015C000F2E0A62DB52D872D01900D928A95E1F7B9
-:1015D000F601819191916F01FC01E07FFF27E032DC
-:1015E000F10559F48F709927F50102C0EE0FFF1F26
-:1015F0008A95E2F7EE2AFF2A37C0E033F10559F465
-:101600008F709927F50102C0EE0FFF1F8A95E2F750
-:101610000E2B1F2B29C0E034F10559F48F70992748
-:10162000F50102C0EE0FFF1F8A95E2F76E2B7F2BAC
-:101630001BC0E035F10559F48F709927F50102C000
-:10164000EE0FFF1F8A95E2F74E2B5F2B0DC0E036A1
-:10165000F10551F48F709927F50102C0EE0FFF1FBD
-:101660008A95E2F72E2B3F2BC814D90409F0A7CF97
-:1016700084B19E2D9095892384B985B1E82AE5B877
-:1016800087B1902F9095892387B988B1082B08B925
-:101690008AB1962F909589238AB98BB1682B6BB943
-:1016A0008DB1942F909589238DB98EB1482B4EB969
-:1016B00080B3922F9095892380BB81B3282B21BBC7
-:1016C00028960FB6F894DEBF0FBECDBFDF91CF9145
-:1016D0001F910F91FF90EF90DF90CF90BF90AF9050
-:1016E0009F908F907F906F905F9008955F926F9220
-:1016F0007F928F929F92AF92BF92CF92DF92EF92A2
-:10170000FF920F931F93CF93DF93CDB7DEB7689708
-:101710000FB6F894DEBF0FBECDBF85B7806885BF1A
-:1017200085B7806885BF0E94B00ACE0101966C0122
-:101730004E0199E1890E911C20E030E040E050E03C
-:1017400060E070E000E010E0E12CF12C6C2C5D2CEE
-:1017500088E1782EAA24A394B12CECEDF2E0A62D1A
-:10176000B52D872D01900D928A95E1F7F6018191B3
-:1017700091916F01FC01E07FFF27E032F10559F400
-:101780008F709927F50102C0EE0FFF1F8A95E2F7CF
-:10179000EE2AFF2A37C0E033F10559F48F709927FC
-:1017A000F50102C0EE0FFF1F8A95E2F70E2B1F2BEB
-:1017B00029C0E034F10559F48F709927F50102C072
-:1017C000EE0FFF1F8A95E2F76E2B7F2B1BC0E035D3
-:1017D000F10559F48F709927F50102C0EE0FFF1F34
-:1017E0008A95E2F74E2B5F2B0DC0E036F10551F4E0
-:1017F0008F709927F50102C0EE0FFF1F8A95E2F75F
-:101800002E2B3F2BC814D90409F0A7CF84B19E2DED
-:101810009095892384B985B1E82AE5B887B1902FDE
-:101820009095892387B988B1082B08B98AB1962F7A
-:10183000909589238AB98BB1682B6BB98DB1942FA0
-:10184000909589238DB98EB1482B4EB980B3922FD4
-:101850009095892380BB81B3282B21BB10926D0307
-:1018600010926C03109265031092640310926F0340
-:1018700010926E0310926703109266031092710328
-:101880001092700310926903109268031092730310
-:101890001092720310926B0310926A0368960FB64F
-:1018A000F894DEBF0FBECDBFDF91CF911F910F9196
-:1018B000FF90EF90DF90CF90BF90AF909F908F9070
-:1018C0007F906F905F900C946F077F928F929F92A2
-:1018D000AF92BF92CF92DF92EF92FF920F931F933E
-:1018E000CF93DF93CDB7DEB7A0970FB6F894DEBFE6
-:1018F0000FBECDBF6E0149E1C40ED11C84E6E82EB7
-:1019000083E0F82E98E0792EBC2CAD2C01E010E09D
-:1019100028E1822E35E0932EE4EDF2E0AB2DBA2DD6
-:10192000872D01900D928A95E1F7F60181919191B1
-:101930006F019C01207F33272032310591F424B1BF
-:101940008F709927A80102C0440F551F8A95E2F7AE
-:10195000CA01922F982B94B995B18095892385B9A6
-:1019600053C02033310591F427B18F709927F801C6
-:1019700002C0EE0FFF1F8A95E2F7CF01922F982B3E
-:1019800097B998B18095892388B93EC02034310534
-:1019900091F42AB18F709927A80102C0440F551FF6
-:1019A0008A95E2F7CA01922F982B9AB99BB180953C
-:1019B00089238BB929C02035310591F42DB18F7061
-:1019C0009927F80102C0EE0FFF1F8A95E2F7CF01B9
-:1019D000922F982B9DB99EB1809589238EB914C002
-:1019E0002036310589F420B38F709927A80102C0F1
-:1019F000440F551F8A95E2F7CA01922F982B90BB8E
-:101A000091B38095892381BB50EA5A95F1F7BE01C5
-:101A10006F5F7F4F20E030E040E050E0ECEDF2E01F
-:101A2000DE011196882D01900D928A95E1F7FB0158
-:101A300081919191BF01FC01E07FFF27E032F10528
-:101A400011F4E3B113C0E033F10511F4E6B10EC0B7
-:101A5000E034F10511F4E9B109C0E035F10511F404
-:101A6000ECB104C0E036F105B9F4EFB1F0E08F70ED
-:101A7000992702C0F595E7958A95E2F7E0FD08C041
-:101A8000C801042E02C0880F991F0A94E2F702C011
-:101A900080E090E0282B392B4F5F5F4F4C30510591
-:101AA00009F0BCCFF701808191818217930721F063
-:101AB00031832083909271020E94B00AF2E0EF0E0F
-:101AC000F11C4CE6E41643E0F40609F025CF8091C2
-:101AD0007102882361F1815080937102882339F06B
-:101AE0008FE99FE00197F1F700C0000020C08091CE
-:101AF00064039091650390936D0380936C038091D0
-:101B000066039091670390936F0380936E038091B7
-:101B1000680390916903909371038093700380919F
-:101B20006A0390916B0390937303809372030E94F6
-:101B3000750781E0A0960FB6F894DEBF0FBECDBF4B
-:101B4000DF91CF911F910F91FF90EF90DF90CF9099
-:101B5000BF90AF909F908F907F900895E82FF0E016
-:101B6000EE0FFF1FE459FC4F808191810895089585
-:101B7000809152048160809352040C9408298091D2
-:101B800052048E7F809352040C9408290E94DA2814
-:101B9000811102C00E94B6280E9404298093520439
-:101BA0003E9A809171008D7F8093710082E08093D6
-:101BB00090008AE18093910081E0809376030895FC
-:101BC00080917603811102C00E94C60D1092C60357
-:101BD0001092C503809171008D7F80937100809178
-:101BE00090008F7780939000109288031092870363
-:101BF0001092BF031092C0031092C1031092C2034F
-:101C00001092BE031092BD03EDE9F3E0ADE8B3E03E
-:101C100011921192119211921D921D9283E0ED3B4F
-:101C2000F807B1F70895CF92DF92EF92FF920F93EA
-:101C30001F93CF93DF9320918703222309F484C05D
-:101C40006B017C0180917603811102C00E94C60D58
-:101C50000DEB13E0C7E0D0E0A7019601F8019291E7
-:101C60008291729162918F010E94522E811131C036
-:101C7000FE01EE0FFF1FEE0FFF1FE356FC4F108219
-:101C8000118212821382DE01AA0FBB1FA357BC4F21
-:101C900011961C921E92C730D105E9F0219644811D
-:101CA0005581668177814083518362837383148277
-:101CB00015821682178212968D919C911397119618
-:101CC0009C938E9313961C921E92129734961296A2
-:101CD000E2CF219708F68091C5039091C603019742
-:101CE00097FD05C09093C6038093C50304C010926E
-:101CF000C6031092C5038091C5039091C60320913D
-:101D0000C3033091C4032817390724F01092C40389
-:101D10001092C303892BC1F4809171008D7F809351
-:101D20007100809190008F77809390001092BF0394
-:101D30001092C0031092C1031092C2031092BE030E
-:101D40001092BD0310928703DF91CF911F910F91E5
-:101D5000FF90EF90DF90CF9008951F920F920FB6F3
-:101D60000F9211244F925F926F927F928F929F9267
-:101D7000AF92BF92CF92DF92EF92FF922F933F9359
-:101D80004F935F936F937F938F939F93AF93BF9383
-:101D9000CF93DF93EF93FF9380918703882309F418
-:101DA0009BC1C091C503D091C6031C161D060CF043
-:101DB00093C14090770350907803609079037090BE
-:101DC0007A0320E030E0A901C301B2010E94FD2F97
-:101DD00018160CF065C0C130D10509F452C08091CD
-:101DE000C3039091C403BE010E94CF317C01909344
-:101DF000C4038093C3038090890390908A03A090CA
-:101E00008B03B0908C0320E030E040E85FE3C50135
-:101E1000B4010E94EE2D6093890370938A0380932E
-:101E20008B0390938C03F701EE0FFF1FEE0FFF1F44
-:101E3000E356FC4FA30192016081718182819381FD
-:101E40000E94562E20E030E040E05EE30E94013028
-:101E50009B01AC01C501B4010E94FD2F18168CF442
-:101E6000C7010196BE010E94CF319093C4038093B5
-:101E7000C3031092890310928A0310928B0310926D
-:101E80008C03E091C303F091C403EE0FFF1FEE0F2C
-:101E9000FF1FE356FC4F6081718182819381D0C026
-:101EA000C090BF03D090C003E090C103F090C20384
-:101EB00020E030E0A901C701B6010E94522E21970F
-:101EC000882309F4A2C0FE01EE0FFF1FEE0FFF1FD3
-:101ED000E356FC4F80809180A280B380A5019401DD
-:101EE000C701B6010E94522E87FF31C0A50194019F
-:101EF00060E070E08CED93EC0E94562E20E030E024
-:101F000040E451E40E94562E20E030E040E05FE3E0
-:101F10000E9401309B01AC0160E070E080E090E441
-:101F20000E9464309B01AC01C501B4010E940130E4
-:101F30009B01AC01C701B6010E94522E87FF07C06A
-:101F4000A701960160E070E08CED93E439C0A50133
-:101F50009401C701B6010E94FD2F18160CF055C060
-:101F6000A501940160E070E08CED93E40E94562E90
-:101F700020E030E040E451E40E94562E20E030E0C2
-:101F800040E05FE30E9401309B01AC0160E070E043
-:101F900080E090E40E9464309B01AC01C501B40173
-:101FA0000E9401309B01AC01C701B6010E94FD2FC8
-:101FB00018165CF5A701960160E070E08CED93ECDB
-:101FC0000E94562E20E030E040E451E40E94562E5C
-:101FD00020E030E040E05FE30E9401309B01AC0173
-:101FE00060E070E080E090E40E9464309B01AC010E
-:101FF000C701B6010E9401306093BF037093C00314
-:102000008093C1039093C20313C0FE01EE0FFF1F24
-:10201000EE0FFF1FE356FC4F80819181A281B381B7
-:102020008093BF039093C003A093C103B093C203F6
-:102030006091BF037091C0038091C1039091C2036E
-:1020400020917403309175032F3F4FEF340731F027
-:102050002F5F3F4F30937503209374030E94D41277
-:102060006B017C0120E034E244EF51E40E94522EE7
-:1020700087FF08C086EFC82E88E2D82E84EFE82EAE
-:1020800081E4F82E20E030E040E051E4C701B601E1
-:102090000E9401309B01AC0160E074E284E79BE4A4
-:1020A0000E94562E6B017C010E94BE2E70939700F9
-:1020B00060939600209172023091730240917402F5
-:1020C00050917502C701B6010E9401300E94BE2ED8
-:1020D000709399006093980080918803882309F495
-:1020E00033C1C0908303D0908403E0908503F090C7
-:1020F000860320E030E0A901C701B6010E94FD2F50
-:102100001816D4F580917403909175038F3F2FEFCB
-:10211000920729F001969093750380937403C70189
-:10212000B6010E94D41220E030E040E051E40E9469
-:1021300001309B01AC0160E074E284E79BE40E9403
-:10214000562E6B017C010E94BE2E70939700609307
-:102150009600209172023091730240917402509166
-:102160007502C701B6010E9401300E94BE2E709315
-:1021700099006093980008C0109297001092960002
-:10218000109299001092980060917D0370917E03E7
-:102190006F5F7F4F70937E0360937D032091960065
-:1021A0003091970080E090E0232BF1F0C0919600F1
-:1021B000D09197000E94EF2E6B017C01BE0180E060
-:1021C00090E00E94EF2E9B01AC0160917F03709123
-:1021D000800380918103909182030E94562E20E01B
-:1021E0003FEF4FE757E410C00E94EF2E6B017C01D8
-:1021F00020E030EE4FEF54E460917F037091800354
-:1022000080918103909182030E9401309B01AC0177
-:10221000C701B6010E94FD2F87FD96C080917B0308
-:102220008F5F80937B0390E020914E0430914F04A8
-:1022300082179307A0F080915904882319F0109217
-:102240007B030DC0809171008D7F80937100809120
-:1022500090008F7780939000109288037DC08091CA
-:102260007C03C0917B03811128C0C0905304D0909F
-:102270005404E0905504F090560420E030E0A901A9
-:10228000C701B6010E94FD2F1816BCF481E08093AF
-:102290007C031092830310928403109285031092A2
-:1022A0008603C0927F03D0928003E0928103F09274
-:1022B0008203C150C0937B0343C010927C031092F1
-:1022C000750310927403E0915004F091510448E0BA
-:1022D000C49FE00DF11D112480819181A281B38101
-:1022E0008093830390938403A0938503B093860324
-:1022F00020E030E040E85EE364817581868197816B
-:102300000E9401306B017C0120E030E048EC52E497
-:1023100060917602709177028091780290917902B3
-:102320000E94562E9B01AC01C701B6010E940130EC
-:1023300060937F0370938003809381039093820363
-:1023400010927E0310927D038091520480FD04C0A0
-:102350001092880310928703FF91EF91DF91CF9144
-:10236000BF91AF919F918F917F916F915F914F91AD
-:102370003F912F91FF90EF90DF90CF90BF90AF9063
-:102380009F908F907F906F905F904F900F900FBEB7
-:102390000F901F901895CF92DF92EF92FF92CF93FC
-:1023A000DF936B017C01EA0180917603811102C009
-:1023B0000E94C60D8091520480FF46C08091C503E3
-:1023C0009091C60308970CF03FC0809171008D7FFB
-:1023D000809371008091880381110E94E00D81E05B
-:1023E00080938703109275031092740320E030E00D
-:1023F000A901C701B6010E94FD2F1816DCF48091D7
-:10240000C5039091C603FC01EE0FFF1FEE0FFF1FE7
-:10241000E356FC4FC082D182E282F382FC01EE0FD0
-:10242000FF1FE357FC4FD183C08301969093C603EF
-:102430008093C503809171008260809371008091C8
-:102440009000806880939000DF91CF91FF90EF9093
-:10245000DF90CF9008958F929F92AF92BF92CF92CC
-:10246000DF92EF92FF920F931F93CF93DF93EC01D4
-:102470007B01D42E4801590180917603811102C05D
-:102480000E94C60D8091520480FF6BC08091710044
-:102490008D7F809371008091870381110E94E00DF0
-:1024A00081E080938803D0935104C0935004F0924C
-:1024B0004F04E0924E04D0925904809253049092BB
-:1024C0005404A0925504B0925604109289031092BD
-:1024D0008A0310928B0310928C0310927B038881E5
-:1024E0009981AA81BB818093830390938403A093F5
-:1024F0008503B093860320E030E040E85EE36C8122
-:102500007D818E819F810E9401306B017C0120E0E2
-:1025100030E048EC52E4609176027091770280914D
-:102520007802909179020E94562E9B01AC01C7015E
-:10253000B6010E94013060937F0370938003809303
-:1025400081039093820310927E0310927D03809109
-:102550007100826080937100809190008068809308
-:102560009000DF91CF911F910F91FF90EF90DF903E
-:10257000CF90BF90AF909F908F9008958091C703A8
-:1025800090E0019666E070E00E94CF318093C7032F
-:1025900008958091C70390E0019766E070E00E9483
-:1025A000CF318093C70308958F929F92AF92BF92CD
-:1025B000CF92DF92EF92FF920F931F93CF93DF930F
-:1025C0006B017C01C0917403D0917503BE0180E062
-:1025D00090E00E94EF2E4B015C01A701960160E0A4
-:1025E00070E08CE594E40E94562E9B01AC01C5017D
-:1025F000B4010E9401300E94C32E2091C7032330F2
-:1026000009F473C028F4222351F02130E9F02CC1E1
-:10261000243009F4A0C0253009F4E0C025C180E0D1
-:1026200090E0A0E0BFE38093720290937302A093C6
-:102630007402B0937502109277031092780310928F
-:10264000790310927A0310C11092770310927803E5
-:102650001092790310927A036431710540F46A3064
-:10266000710560F520E030E040E85EE32BC0693C96
-:10267000710508F0AAC080E090E00E94EF2E20E0F3
-:1026800030E040EA51E40E94ED2D20E030E044E3E8
-:1026900053E40E94562E9B01AC010E94013020E0C1
-:1026A00030E040E05EE30E9401309B01AC0160E05D
-:1026B00070E080E09EE30E94ED2D44C020E030E019
-:1026C00040E05FE3C701B6010E9401306B017C016D
-:1026D00080E090E0A0E0BEE38093720290937302EA
-:1026E000A0937402B0937502BFC01092770310924A
-:1026F00078031092790310927A034AE0469F900182
-:10270000479F300D1124C90168EB7BE00E94BB316B
-:10271000BC016C5D754077FF03C0719561957109CF
-:10272000882777FD8095982F0E94F12E2EE333ECB9
-:102730004EE259E30E94013020E030E040EC5EE3DD
-:102740000E94EE2D60937202709373028093740264
-:102750009093750289C010927703109278031092BB
-:10276000790310927A03CE0183709927892BE1F0C7
-:10277000BE016170772780E090E00E94EF2E20E09C
-:1027800030E040E05EE30E94013020E030E040E4D1
-:102790005FE30E94EE2D6093720270937302809348
-:1027A0007402909375020CC080E090E0A0E0BFE35B
-:1027B0008093720290937302A0937402B093750297
-:1027C000C770DD27CD2B09F04FC010927202109216
-:1027D0007302109274021092750246C01092770331
-:1027E000109278031092790310927A0300E010E0BF
-:1027F00020E03FE30093720210937302209374026F
-:10280000309375026739710578F180E090E00E949D
-:10281000EF2E20E030E047E153E40E94ED2D20E070
-:1028200030E04AE754E40E94562E20E030E048E4CD
-:1028300052E40E94013020E030E040EA51E40E947E
-:10284000332F0E94BE2E660F771F660F771FFB0186
-:10285000EC50FD4F2081318142815381C701B60187
-:102860000E9401306B017C01C701B601DF91CF915D
-:102870001F910F91FF90EF90DF90CF90BF90AF909E
-:102880009F908F9008958091D8030895CF93DF9300
-:1028900000D01F92CDB7DEB79C0180915E048430DA
-:1028A00019F593E099833B832A839093E9008FEF96
-:1028B0009091E800815095FD06C095ED9A95F1F74D
-:1028C00000008111F5CF8091E80085FF0DC040E048
-:1028D00050E063E070E0CE0101960E94A71680915F
-:1028E000E8008E778093E8000F900F900F90DF91B3
-:1028F000CF910895CF93DF9300D01F92CDB7DEB76D
-:1029000020915E04243021F522E029839B838A8371
-:1029100083E08093E9008FEF9091E800815095FD6E
-:1029200006C095ED9A95F1F700008111F5CF8091E1
-:10293000E80085FF0DC040E050E063E070E0CE01AC
-:1029400001960E94A7168091E8008E778093E80098
-:102950000F900F900F90DF91CF91089520915E041A
-:102960002430F1F422E02093E9002FEF3091E800C9
-:10297000215035FD06C035ED3A95F1F700002111E3
-:10298000F5CF2091E80025FF0BC040E050E065E066
-:1029900070E00E94A7168091E8008E778093E8008F
-:1029A0000895CF93DF93EC0190915E04943009F089
-:1029B00046C0809184028823D9F0809185028823C3
-:1029C000B9F09093E9008FEF9091E800815095FD68
-:1029D00006C095E19A95F1F700008111F5CF80913D
-:1029E000E80085FF2CC040E050E060E170E017C0D7
-:1029F00081E08093E9008FEF9091E800815095FD90
-:102A000006C095ED9A95F1F700008111F5CF809100
-:102A1000E80085FF14C040E050E068E070E0CE01BF
-:102A20000E94A7168091E8008E778093E80080E1ED
-:102A3000FE01A8ECB3E001900D928A95E1F7DF91D9
-:102A4000CF91089580915D04811109C00E943C18C6
-:102A50000E9499188091E20084608093E2000895BA
-:102A600010925D040895089508950C94E12742E0C2
-:102A700061EC81E00E94B61742E061EC82E00E94C6
-:102A8000B61742E061EC83E00E94B61742E161ECC8
-:102A900084E00C94B61780916004833009F455C02B
-:102AA00030F4813071F0823009F48EC008958A309C
-:102AB00009F47AC08B3009F460C0893009F09CC0F9
-:102AC00020C080915F04813A09F096C08091E800AF
-:102AD000877F8093E8008091630490916404892B40
-:102AE00021F460E188EC93E003C060E080E090E0D6
-:102AF00070E00E94F2168091E8008B778093E800E6
-:102B0000089580915F04813209F076C0809163045A
-:102B100090916404009719F0039709F06DC08091BB
-:102B2000E800877F8093E8008091E80082FD05C07F
-:102B300080915E048111F8CF5FC08091F100809395
-:102B4000D8038091E8008B7753C080915F04813A6D
-:102B500009F052C08091630490916404892B09F0BC
-:102B60004BC08091E800877F8093E8008091E80067
-:102B700080FFFCCF8091840236C080915F04813257
-:102B8000D9F58091630490916404892BA9F5809113
-:102B9000E800877F8093E8000E94EB178091610432
-:102BA000809384020C945C2180915F04813221F532
-:102BB0008091E800877F8093E8000E94EB17809166
-:102BC00062048093D903089580915F04813AA1F44F
-:102BD0008091E800877F8093E8008091E80080FF83
-:102BE000FCCF8091D9038093F1008091E8008E772B
-:102BF0008093E8000C94EB17089584B7877F84BF17
-:102C000088E10FB6F89480936000109260000FBEC8
-:102C100090E080E80FB6F894809361009093610093
-:102C20000FBE0E948E1B0E943C180E949918809132
-:102C3000E20084608093E20078940E941F1B0E944F
-:102C4000901B8AE792E00E943A1B80915E048530D7
-:102C500069F40E949B2780915C048823B1F30E9451
-:102C6000C927882391F30E949116EFCF0E94981BE9
-:102C7000ECCF292F332723303105C9F064F42130FC
-:102C8000310581F02230310509F043C08DE690E036
-:102C90002AE338E042C021323105F1F02232310519
-:102CA00041F137C082E190E027EA38E036C0992749
-:102CB0008130910541F08230910541F0892B49F531
-:102CC000E6E3F8E005C0E8E0F8E002C0EEEDF7E08A
-:102CD000849190E09F0121C06430D8F4E62FF0E0A9
-:102CE000EE0FFF1FE05BFC4F2081318189E090E017
-:102CF00014C0643070F470E0FB01EE0FFF1FE85B5E
-:102D0000FC4F20813181FB01EC5BFC4F808190E026
-:102D100004C080E090E020E030E0FA0131832083BD
-:102D2000089580E189BD82E189BD09B400FEFDCF2F
-:102D30008091D8008F7D8093D8008091E0008260E0
-:102D40008093E0008091E00081FDFCCF0895CF9258
-:102D5000DF92EF92FF920F931F93CF93DF93EC01DB
-:102D60008B016A010E940A18811133C0C114D10479
-:102D700039F0F60180819181081B190BC80FD91F0A
-:102D8000E12CF12C0115110519F18091E80085FD68
-:102D900016C08091E8008E778093E800C114D104BA
-:102DA00049F0F60180819181E80EF91EF182E082FE
-:102DB00085E00FC00E940A18882321F30AC0899178
-:102DC0008093F10001501109FFEFEF1AFF0ADACFEB
-:102DD00080E0DF91CF911F910F91FF90EF90DF90F6
-:102DE000CF90089520916504309166042617370727
-:102DF00048F06115710539F42091E8002E77209391
-:102E0000E80001C0B90140E061157105A9F1209108
-:102E10005E04222309F443C0253009F442C0209106
-:102E2000E80023FD40C02091E80022FD32C020913F
-:102E3000E80020FFE9CF4091F3002091F20030E05C
-:102E4000342BFC01CF016115710559F02830310593
-:102E500040F481918093F100615071092F5F3F4FE1
-:102E6000F1CF41E02830310509F040E02091E80041
-:102E70002E772093E800C8CF4111C9CF0AC08091B6
-:102E80005E04882361F0853061F08091E80083FD65
-:102E90000AC08091E80082FFF2CF80E0089582E0CE
-:102EA000089583E0089581E00895209165043091AC
-:102EB00066042617370748F06115710539F420912B
-:102EC000E8002E772093E80001C0B901FC0120E062
-:102ED0006115710591F180915E04882309F440C069
-:102EE000853009F43FC08091E80083FD3DC08091AA
-:102EF000E80082FD2FC08091E80080FFE9CF20919B
-:102F0000F3008091F20090E0922B6115710559F069
-:102F10008830910540F424912093F100319661505E
-:102F200071090196F2CF21E0089709F020E0809125
-:102F3000E8008E778093E800CBCF2111CCCF0AC078
-:102F400080915E04882361F0853061F08091E80013
-:102F500083FD0AC08091E80082FFF2CF80E00895EF
-:102F600082E0089583E0089581E00895982F9730D6
-:102F700058F59093E900981739F07091EC00209182
-:102F8000ED005091F00003C0242F762F50E021FF78
-:102F900019C03091EB003E7F3093EB003091ED0093
-:102FA0003D7F3093ED003091EB0031603093EB00CA
-:102FB0007093EC002093ED005093F0002091EE0010
-:102FC00027FF07C09F5FD3CF8F708093E90081E018
-:102FD000089580E0089580915F0487FF11C080917B
-:102FE000E80082FD05C080915E048111F8CF11C018
-:102FF0008091E8008B770BC080915E04882349F0B4
-:103000008091E80080FFF8CF8091E8008E77809370
-:10301000E80008952091E4003091E50095E64091A4
-:10302000EC00842F817040FF22C08091E80080FD79
-:103030001CC080915E04882391F0853091F08091CE
-:10304000EB0085FD10C04091E4005091E50042176F
-:10305000530729F39A01915011F784E0089582E013
-:10306000089583E0089581E0089580E008954091F7
-:10307000E80042FFDECF08950E94AA180E94B2180D
-:10308000E0EEF0E0808181608083E8EDF0E0808117
-:103090008F77808319BCA7EDB0E08C918E7F8C93E5
-:1030A00080818F7E808310925D0408950F931F931B
-:1030B000CF93DF930E94AA180E94B218C8EDD0E007
-:1030C00088818F77888388818068888388818F7DD5
-:1030D000888319BC10925E0410925A0410925C040A
-:1030E00010925B0400EE10E0F80180818B7F8083FA
-:1030F00088818160888342E060E080E00E94B617AA
-:10310000E1EEF0E080818E7F8083E2EEF0E080816E
-:1031100081608083808188608083F80180818E7FD8
-:103120008083888180618883DF91CF911F910F9187
-:103130000895E8EDF0E080818F7E8083E7EDF0E098
-:1031400080818160808384E082BF81E080935D0420
-:103150000C945618E8EDF0E080818E7F8083109209
-:10316000E20008951092DA001092E10008951F9293
-:103170000F920FB60F9211242F933F934F935F93AB
-:103180006F937F938F939F93AF93BF93EF93FF932F
-:103190008091E10082FF0BC08091E20082FF07C0B6
-:1031A0008091E1008B7F8093E1000E941E1B809143
-:1031B000DA0080FF1FC08091D80080FF1BC0809183
-:1031C000DA008E7F8093DA008091D90080FF0DC0F5
-:1031D00080E189BD82E189BD09B400FEFDCF81E0B7
-:1031E00080935E040E94221505C019BC10925E04F3
-:1031F0000E9430158091E10080FF19C08091E200AB
-:1032000080FF15C08091E2008E7F8093E200809164
-:10321000E20080618093E2008091D8008062809318
-:10322000D80019BC85E080935E040E94341580911B
-:10323000E10084FF30C08091E20084FF2CC080E177
-:1032400089BD82E189BD09B400FEFDCF8091D8001F
-:103250008F7D8093D8008091E1008F7E8093E10084
-:103260008091E2008F7E8093E2008091E200816095
-:103270008093E20080915A04882311F084E007C013
-:103280008091E30087FD02C081E001C083E080936C
-:103290005E040E9435158091E10083FF29C0809172
-:1032A000E20083FF25C08091E100877F8093E100E9
-:1032B00082E080935E0410925A048091E1008E7F38
-:1032C0008093E1008091E2008E7F8093E200809104
-:1032D000E20080618093E20042E060E080E00E94D2
-:1032E000B6178091F00088608093F0000E9433153B
-:1032F000FF91EF91BF91AF919F918F917F916F91CE
-:103300005F914F913F912F910F900FBE0F901F90A3
-:1033100018951F920F920FB60F9211242F933F937F
-:103320004F935F936F937F938F939F93AF93BF93CD
-:10333000CF93DF93EF93FF93C091E900CF7080911B
-:10334000EC00D82FD17080FDD0E81092E900809178
-:10335000F000877F8093F00078940E94CD1910923E
-:10336000E9008091F00088608093F000CD2BCF7051
-:10337000C093E900FF91EF91DF91CF91BF91AF91A1
-:103380009F918F917F916F915F914F913F912F917D
-:103390000F900FBE0F901F9018951F93CF93DF9340
-:1033A000CDB7DEB7AA970FB6F894DEBF0FBECDBF7C
-:1033B000EFE5F4E088E08E0F9091F10091938E1389
-:1033C000FBCF0E944B158091E80083FF1FC18091C5
-:1033D0005F0490916004492F50E04A30510508F095
-:1033E00015C1FA01EC59FF4F0C94E331803881F09C
-:1033F000823809F00BC1809163048F708093E900DB
-:103400008091EB0085FB882780F91092E90006C0C7
-:1034100080915B0490915C04911182609091E8002E
-:10342000977F9093E8008093F1001092F100C8C05C
-:10343000282F2D7F09F0EAC0882319F0823061F02F
-:10344000E5C080916104813009F0E0C0933009F05B
-:1034500080E080935C042BC080916104811127C0BF
-:10346000809163048F7009F4D1C08093E9002091AA
-:10347000EB0020FF1CC0933021F48091EB008062B0
-:1034800014C09091EB0090619093EB0021E030E04C
-:10349000A90102C0440F551F8A95E2F74093EA0044
-:1034A0001092EA008091EB0088608093EB0010920C
-:1034B000E9008091E800877F86C08111A7C0109144
-:1034C00061041F778091E3008078812B8093E30073
-:1034D0008091E800877F8093E8000E94EB1780913D
-:1034E000E80080FFFCCF8091E30080688093E300D8
-:1034F000111102C082E001C083E080935E0486C0A7
-:103500008058823008F082C08091610490916204FA
-:103510008C3D53E0950779F583E08A838AE28983BD
-:103520004FB7F894DE01139620E03EE051E2E32F1E
-:10353000F0E050935700E49120FF03C0E295EF7054
-:103540003F5FEF708E2F90E0EA3010F0C79601C019
-:10355000C0968D939D932F5F243149F74FBF809183
-:10356000E800877F8093E8006AE270E0CE01019670
-:103570000E94F21614C0AE014F5F5F4F609163046A
-:103580000E943916BC01009709F440C09091E800F0
-:10359000977F9093E80089819A810E9455178091C6
-:1035A000E8008B778093E80031C0803879F580910E
-:1035B000E800877F8093E80080915A048093F100AF
-:1035C0008091E8008E778093E8000E94EB171EC080
-:1035D00081111CC0909161049230C0F48091E80088
-:1035E000877F8093E80090935A040E94EB178091A4
-:1035F0005A04811106C08091E30087FD02C081E07A
-:1036000001C084E080935E040E9437158091E80039
-:1036100083FF0AC08091E800877F8093E800809153
-:10362000EB0080628093EB00AA960FB6F894DEBFA1
-:103630000FBECDBFDF91CF911F9108950895CF9315
-:1036400080915E048823A1F0C091E900CF70909131
-:10365000EC00892F817090FD80E8C82B1092E90062
-:103660008091E80083FD0E94CD19CF70C093E900DE
-:10367000CF9108959093DF038093DE030895E09146
-:10368000DE03F091DF03309721F00190F081E02D0F
-:10369000099480E00895E091DE03F091DF03309714
-:1036A00021F00280F381E02D09940895E091DE037A
-:1036B000F091DF03309721F00480F581E02D09942B
-:1036C00008952091DC033091DD038217930771F098
-:1036D0009093DD038093DC03E091DE03F091DF0340
-:1036E000309721F00680F781E02D0994089520910C
-:1036F000DA033091DB038217930771F09093DB03B9
-:103700008093DA03E091DE03F091DF03309721F03C
-:103710000084F185E02D0994089508950C948D1B83
-:103720000E9415280E94760B0E949B280C94562D0F
-:103730004F925F927F928F929F92AF92BF92CF9261
-:10374000DF92EF92FF920F931F93CF93DF93CDB74A
-:10375000DEB72A970FB6F894DEBF0FBECDBF0E942A
-:10376000650C91EEC92E93E0D92E00E010E0AA245A
-:10377000A394B12C702E802F0E94AE0D4C01F60147
-:10378000419051906F014826592641145104B1F4DB
-:103790000F5F1F4F0430110569F78FEF89838A830C
-:1037A0001B820E941E288160782F9D838C83498113
-:1037B0005A816B818D810E94511C3AC080913D04D9
-:1037C00081FD0E94B70D20E030E07501022E02C09D
-:1037D000EE0CFF1C0A94E2F7C70184219521892B86
-:1037E00009F12E837F828E209F2091E0892809F4A1
-:1037F00090E098870E941E288160782F9A87898799
-:103800004E815F8168858A850E94511C000F111FBF
-:10381000F801EF51FC4F80819181E826F926F18271
-:10382000E08206C02F5F3F4F2C30310571F6B0CFDC
-:103830000E94872A1091E0030E943F1B1817D9F0BD
-:103840000E943F1B8093E0032A960FB6F894DEBFD8
-:103850000FBECDBFDF91CF911F910F91FF90EF90E1
-:10386000DF90CF90BF90AF909F908F907F905F90B0
-:103870004F900C94AE0A2A960FB6F894DEBF0FBE96
-:10388000CDBFDF91CF911F910F91FF90EF90DF900F
-:10389000CF90BF90AF909F908F907F905F904F9010
-:1038A0000895CF93DF93CDB7DEB72B970FB6F8947B
-:1038B000DEBF0FBECDBF4F83588769877A878B875E
-:1038C000DE01119686E0FD0111928A95E9F785E007
-:1038D000FE01379601900D928A95E1F749815A8150
-:1038E0006B817C818D819E810E94F6232B960FB681
-:1038F000F894DEBF0FBECDBFDF91CF910895CF9377
-:10390000882309F4C2C0C82F823859F40E943F1B93
-:1039100081FDBBC089E30E949F260E946C2789E33A
-:103920000CC0833879F40E943F1B80FDAEC083E554
-:103930000E949F260E946C2783E50E94E126CF917A
-:103940000C946C27843859F40E943F1B82FD9DC063
-:1039500087E40E949F260E946C2787E4EECF8CEFBD
-:103960008C0F813A48F48C2F0E94BE2C81118DC09F
-:103970008C2F0E949F26E3CF80E28C0F883048F482
-:10398000C77081E001C0880FCA95EAF70E94252719
-:10399000D6CF8BE58C0F833078F4C53A29F0C63A40
-:1039A00031F083E890E005C081E890E002C082E851
-:1039B00090E0CF910C94611B88E58C0F833108F067
-:1039C00064C0C83A39F1C93A41F1CA3A49F1CB3A2F
-:1039D00051F1CC3A59F1CD3A61F1C03B69F1CE3A9F
-:1039E00071F1CF3A79F1C13B81F1C23B89F1C33B1F
-:1039F00091F1C43B99F1C53BA1F1C63BA9F1C73B8D
-:103A0000B1F1C83BB9F1C93BC1F1CA3BC9F180E092
-:103A100090E038C082EE90E035C089EE90E032C090
-:103A20008AEE90E02FC085EB90E02CC086EB90E012
-:103A300029C087EB90E026C08CEC90E023C08DEC91
-:103A400090E020C083E891E01DC08AE891E01AC0B0
-:103A500082E991E017C084E991E014C081E292E02C
-:103A600011C083E292E00EC084E292E00BC085E2D6
-:103A700092E008C086E292E005C087E292E002C0D0
-:103A80008AE292E0CF910C94771BCF91089588231E
-:103A900009F44BC0823859F40E943F1B81FF45C096
-:103AA00089E30E949F260E946C2789E30CC083381B
-:103AB00071F40E943F1B80FF38C083E50E949F265F
-:103AC0000E946C2783E50E94E1260C946C278438C1
-:103AD00059F40E943F1B82FF28C087E40E949F2662
-:103AE0000E946C2787E4EFCF9CEF980F913A58F330
-:103AF00090E2980F983050F4877091E001C0990FD0
-:103B00008A95EAF7892F0E942B27DFCF9BE5980F34
-:103B1000933020F480E090E00C94611B885A83314C
-:103B200020F480E090E00C94771B0895882321F026
-:103B30000E9425270C946C270895882321F00E9469
-:103B40002B270C946C270895BF92CF92DF92EF92AF
-:103B5000FF920F931F93CF93DF9300D000D000D03C
-:103B6000CDB7DEB725E0FC01DE01119601900D9284
-:103B70002A95E1F7FC01D0801181028125812295EF
-:103B80002F7043815481452B09F472C31F3F21F4E8
-:103B9000FFEFDF1609F46CC37C012E830E947707C8
-:103BA000D9821A8369817A81802F0E949B26182FDF
-:103BB000B92E0E9450260E9417252E81002319F04D
-:103BC0000E9442272E81EB2DE295EF70F0E0E25942
-:103BD000FF4F0C94E3318B2D807F9B2D9F70F92E2E
-:103BE000882319F0F29480EFF822002389F0FF2057
-:103BF00009F47CC280E2810F883020F48F2D0E946E
-:103C0000252703C08F2D0E9435270E946C276EC286
-:103C1000812F0E94471DFF2009F42AC3105E8F2DBB
-:103C2000183018F40E942B2702C00E943B272696CA
-:103C30000FB6F894DEBF0FBECDBFDF91CF911F91BD
-:103C40000F91FF90EF90DF90CF90BF900C946C2776
-:103C50008B2D807F9B2D9F70803211F4892F03C0A4
-:103C6000892F8295807F112319F0113011F12BC01B
-:103C70000023A9F0222389F1213079F526960FB689
-:103C8000F894DEBF0FBECDBFDF91CF911F910F9192
-:103C9000FF90EF90DF90CF90BF900C945527222398
-:103CA00019F0213009F4E4C28E830E9458278E81D6
-:103CB0009BC1002321F0263008F0DAC20EC0253067
-:103CC00008F0D6C291C10023C9F0222331F0F701D8
-:103CD000958190FF0BC29F70958326960FB6F8943E
-:103CE000DEBF0FBECDBFDF91CF911F910F91FF902F
-:103CF000EF90DF90CF90BF900C94961D222309F493
-:103D000073C109C22B2D26952695237030E021150D
-:103D1000310521F021303105D1F0AAC2002321F074
-:103D2000812F9B2D937002C080E090E026960FB605
-:103D3000F894DEBF0FBECDBFDF91CF911F910F91E1
-:103D4000FF90EF90DF90CF90BF900C94611B002309
-:103D500021F0812F9B2D937002C080E090E0269689
-:103D60000FB6F894DEBF0FBECDBFDF91CF911F918C
-:103D70000F91FF90EF90DF90CF90BF900C94771B46
-:103D8000812F002319F00E948F2902C00E94F72979
-:103D900026960FB6F894DEBF0FBECDBFDF91CF9150
-:103DA0001F910F91FF90EF90DF90CF90BF900C94F8
-:103DB0007C2A8B2D837009F07BC0011159C2812FA1
-:103DC000829586958770880F880F912F9F70C92ED6
-:103DD000D12CE12CF12C082E04C0CC0CDD1CEE1CE7
-:103DE000FF1C0A94D2F714FF12C04FE050E060E0CD
-:103DF00070E004C0440F551F661F771F8A95D2F7E5
-:103E0000CB01BA01609570958095909503C060E0F4
-:103E100070E0CB012B2D269526952370422F50E084
-:103E200042305105D9F04330510569F16C297D29A3
-:103E30008E299F294130510551F126960FB6F894ED
-:103E4000DEBF0FBECDBFDF91CF911F910F91FF90CD
-:103E5000EF90DF90CF90BF900C943E256C297D2988
-:103E60008E299F2926960FB6F894DEBF0FBECDBFD0
-:103E7000DF91CF911F910F91FF90EF90DF90CF9046
-:103E8000BF900C945A250E943E25C701B601269684
-:103E90000FB6F894DEBF0FBECDBFDF91CF911F915B
-:103EA0000F91FF90EF90DF90CF90BF900C94222560
-:103EB000002319F08B2D817001C08695882309F4A9
-:103EC000D7C1812F829586958770880F880F912F93
-:103ED0009F70C92ED12CE12CF12C082E04C0CC0CE3
-:103EE000DD1CEE1CFF1C0A94D2F714FF12C04FE039
-:103EF00050E060E070E004C0440F551F661F771F5C
-:103F00008A95D2F7CB01BA0160957095809590950E
-:103F100003C060E070E0CB012B2D26952695237021
-:103F2000422F50E042305105D9F04330510569F13C
-:103F30006C297D298E299F294130510551F1269602
-:103F40000FB6F894DEBF0FBECDBFDF91CF911F91AA
-:103F50000F91FF90EF90DF90CF90BF900C941826B8
-:103F60006C297D298E299F2926960FB6F894DEBFED
-:103F70000FBECDBFDF91CF911F910F91FF90EF90BA
-:103F8000DF90CF90BF900C9434260E941826C70172
-:103F9000B60126960FB6F894DEBF0FBECDBFDF91F7
-:103FA000CF911F910F91FF90EF90DF90CF90BF9036
-:103FB0000C94FC25103F49F118F4103E48F491C0D0
-:103FC000123F09F453C0E8F1133F09F464C089C0FB
-:103FD0001F708B2D8F71002321F00E949525812F5A
-:103FE0007CCE0E94B625812F26960FB6F894DEBFB0
-:103FF0000FBECDBFDF91CF911F910F91FF90EF903A
-:10400000DF90CF90BF900C949D1D0023B1F0253020
-:1040100008F02EC18B2D8F7126960FB6F894DEBF57
-:104020000FBECDBFDF91CF911F910F91FF90EF9009
-:10403000DF90CF90BF900C94DB25263008F018C19C
-:10404000E9CF0023A9F08B2D8F7126960FB6F89437
-:10405000DEBF0FBECDBFDF91CF911F910F91FF90BB
-:10406000EF90DF90CF90BF900C949525002359F3EB
-:104070008B2D8F7126960FB6F894DEBF0FBECDBF85
-:10408000DF91CF911F910F91FF90EF90DF90CF9034
-:10409000BF900C94B625002399F08B2D8F71269636
-:1040A0000FB6F894DEBF0FBECDBFDF91CF911F9149
-:1040B0000F91FF90EF90DF90CF90BF900C948025F0
-:1040C00026960FB6F894DEBF0FBECDBFDF91CF911D
-:1040D0001F910F91FF90EF90DF90CF90BF900C94C5
-:1040E00076250023A9F0222309F4ADCF812F26964F
-:1040F0000FB6F894DEBF0FBECDBFDF91CF911F91F9
-:104100000F91FF90EF90DF90CF90BF900C947F1CA9
-:10411000222309F4ADCF812F26960FB6F894DEBF87
-:104120000FBECDBFDF91CF911F910F91FF90EF9008
-:10413000DF90CF90BF900C94471D4B2D4F70612F97
-:10414000C7010E94690526960FB6F894DEBF0FBE20
-:10415000CDBFDF91CF911F910F91FF90EF90DF9036
-:10416000CF90BF900C949A24011182C09B2D9F7018
-:10417000492F50E04230510509F443C0C4F44115C1
-:10418000510571F14130510509F072C026960FB604
-:10419000F894DEBF0FBECDBFDF91CF911F910F917D
-:1041A000FF90EF90DF90CF90BF900C947E2D433026
-:1041B0005105C1F14430510509F05AC0812F2696AE
-:1041C0000FB6F894DEBF0FBECDBFDF91CF911F9128
-:1041D0000F91FF90EF90DF90CF90BF900C94D02D77
-:1041E00026960FB6F894DEBF0FBECDBFDF91CF91FC
-:1041F0001F910F91FF90EF90DF90CF90BF900C94A4
-:10420000672D26960FB6F894DEBF0FBECDBFDF91A7
-:10421000CF911F910F91FF90EF90DF90CF90BF90C3
-:104220000C949A2D26960FB6F894DEBF0FBECDBF24
-:10423000DF91CF911F910F91FF90EF90DF90CF9082
-:10424000BF900C94AD2D4B2D4F70612FC70126965A
-:104250000FB6F894DEBF0FBECDBFDF91CF911F9197
-:104260000F91FF90EF90DF90CF90BF900C94790763
-:1042700026960FB6F894DEBF0FBECDBFDF91CF916B
-:104280001F910F91FF90EF90DF90CF90BF90089516
-:104290000E9442270E9452270E9417270E946C27E3
-:1042A0000E942D2B0E947C2A80E090E00E94611BDE
-:1042B00080E090E00C94771B0E9432270C944821F8
-:1042C0000E949026292F22952F7030E02C30310546
-:1042D0004CF42A3031056CF422503109223031057A
-:1042E00088F407C02C30310549F02F30310531F00A
-:1042F00009C0803E48F0803F29F406C093FB882720
-:1043000080F9089580E0089581E00895CF93DF93C8
-:1043100000D000D01F92CDB7DEB70F900F900F9056
-:104320000F900F90DF91CF910895CF93DF9300D03E
-:1043300000D000D0CDB7DEB726960FB6F894DEBF1A
-:104340000FBECDBFDF91CF9108951F93CF93DF9321
-:10435000C091E90316E08091EA03C81799F0D0E014
-:104360001C9FF0011D9FF00D1124E551FC4F408171
-:10437000518162817381848195810E94952121966A
-:10438000C770E9CFDF91CF911F91089540911B0431
-:1043900050911C0460911D0470911E0480911F04B3
-:1043A000909120040C9495218091200482958F7027
-:1043B00009F054C080911D04882309F44FC08091F6
-:1043C000E903A091EA0360911B0470911C044091E1
-:1043D0001E0450911F04B6E08A1709F43FC090E014
-:1043E00041155105C1F17F3F11F46F3FA1F1B89F15
-:1043F000F001B99FF00D1124E551FC4F218172139A
-:104400002AC02081621327C02281211124C0238168
-:1044100034812417350710F421503109241B350B42
-:10442000283C3105C0F4209120042F702061209396
-:10443000200426E0289FF001299FF00D1124E0516F
-:10444000FC4F80818F70806180838BE194E00E94BB
-:10445000A41D0C94A52101968770BECF0895CF921C
-:10446000DF92EF92FF920F931F93CF93DF93CDB71D
-:10447000DEB762970FB6F894DEBF0FBECDBF8C01DA
-:1044800085E0F801DE011D9601900D928A95E1F715
-:10449000D8014C9111965C91119712966C911297DC
-:1044A0001396CD90DC90149730911B0470911C04EE
-:1044B00080911E0490911F04009709F46BC17F3F07
-:1044C00019F43F3F09F466C1E0901D04EE2009F4A1
-:1044D000C0C020912004C816D90628F0F601E81BB8
-:1044E000F90BCF0104C0809590958C0D9D1DFF2484
-:1044F000F394883C910578F0F12C207F09F0C6C038
-:104500007C2DD98AC88A89890E9486218BE194E012
-:104510000E94A41DB1C0822F807F09F046C0751390
-:1045200014C0341312C0611110C02F702061209389
-:1045300020040E94C6218BE194E00E94A41D80917A
-:104540002004D80115968C932EC0CD2819F15F3F19
-:1045500011F44F3FF9F0F62E61111CC08091E90370
-:104560002091EA0336E0821709F45AC090E0389FA0
-:10457000F001399FF00D1124E551FC4F7181571363
-:1045800006C07081471303C07281711103C0019688
-:104590008770E9CFF62E662309F418C180912004B4
-:1045A000816080932004F12C11C1751308C034136D
-:1045B00006C0611104C080912004D801C3C04D879A
-:1045C0005E878D859E856A8B0E9460216A8988231B
-:1045D000E1F16623D1F120912004822F82958F7022
-:1045E00090E0029774F080911B0490911C049887CE
-:1045F0008F831986DB86CA862C87CE0107960E9498
-:10460000A41D86E0F801ABE1B4E001900D928A951B
-:10461000E1F70E94D4210E94C621FF24F394D6C062
-:104620004D875E878D859E850E949026292F229535
-:104630002F7030E0223031050CF0BCC09F7009F0C3
-:10464000B6C0805E883008F4C1C0C8010E94A41DB5
-:10465000E4CFC816D90608F453C0F601E81BF90BDD
-:10466000CF01883C910508F450C0F12C7C2DD98AEB
-:10467000C88A89890E948621EBE1F4E086E0DF01A7
-:104680001D928A95E9F70E94C621A0C0751314C037
-:10469000341312C0611110C080912004F801858389
-:1046A000C8010E94A41D86E0EBE1F4E0DF011D9249
-:1046B0008A95E9F7FE2C8AC04D875E878D859E8599
-:1046C0006A8B0E9460216A89882309F4BECF662321
-:1046D00009F4BBCF20912004822F82958F7090E047
-:1046E00002970CF48ECF80911B0490911C049A8346
-:1046F00089831B82DD82CC822E83CE0101967FCFFF
-:10470000809590958C0D9D1DACCFF62E662309F4F7
-:104710009CCF75132EC034132CC02091200420FD93
-:104720001FC0822F82958F70D9F0D80115962C93D7
-:1047300015978F3049F08F5F982F9295907F822F39
-:104740008F70892B15968C93C8010E94A41D86E05A
-:10475000F801ABE1B4E001900D928A95E1F793CFB7
-:1047600086E0F801ABE1B4E001900D928A95E1F7A3
-:104770002DC04D875E878D859E850E9460218111A9
-:1047800040CF80912004816080932004C8010E9462
-:10479000A41D1CC0662309F458CF4D875E878D8504
-:1047A0009E850E946021882309F44FCF2ACF811172
-:1047B00048CF0CC0243031050CF047CF9F7009F46E
-:1047C00040CFF8019581907F09F03BCF8F2D629605
-:1047D0000FB6F894DEBF0FBECDBFDF91CF911F9112
-:1047E0000F91FF90EF90DF90CF9008951F93CF939C
-:1047F000DF93CDB7DEB72C970FB6F894DEBF0FBEB0
-:10480000CDBF4F83588769877A878B879C87CE0176
-:1048100007960E942F22882369F08F8198852A8528
-:104820003B85232BF1F19F3F09F063C08F3F09F0D7
-:1048300060C037C086E0FE013796DE011196019018
-:104840000D928A95E1F76F817885EA85FB8530972F
-:1048500041F17F3F11F46F3F21F12091EA0330E0F5
-:10486000C9010196877099274091E90350E08417A8
-:10487000950709F447C069837A83FD83EC8396E04A
-:10488000929FD001939FB00D1124A551BC4FFE0102
-:10489000319601900D929A95E1F78093EA030E9478
-:1048A000A52116E08091E9039091EA038917C1F1EF
-:1048B000189FC001112485519C4F0E942F228823EC
-:1048C00079F1E091E9031E9FF0011124E551FC4FBD
-:1048D0004081518162817381848195810E949521FB
-:1048E0008091E90390E00196877099278093E9030E
-:1048F000D9CF4F81588569857A858B859C850E94A3
-:104900009521CFCF0E945C211092EA031092E90317
-:10491000EBE1F4E086E0DF011D928A95E9F7C1CF73
-:104920002C960FB6F894DEBF0FBECDBFDF91CF91AE
-:104930001F910895EF92FF920F931F93CF93DF93F0
-:104940008C01009709F46CC0F12CEE24E394E8018B
-:104950002196F8018491843740F4843008F051C0E6
-:10496000813081F0823019F15BC0853709F444C091
-:10497000A8F19CE7980F903708F052C08F770E94FB
-:10498000471D41C00E5F1F4FFE01C49180E28C0F96
-:10499000883048F4C7708E2D01C0880FCA95EAF799
-:1049A0000E94452714C08C2F0E947F1C2DC00E5FD3
-:1049B0001F4FFE01C49180E28C0F883058F4C770FD
-:1049C0008E2D01C0880FCA95EAF70E944B270E94DE
-:1049D0006C271AC08C2F0E94471D16C00E5F1F4FF8
-:1049E000FE01C491CC2381F08FE99FE00197F1F79C
-:1049F00000C00000C150F6CF0E5F1F4FFE01F490C3
-:104A000003C00E947F1C8E018F2D882309F49FCF45
-:104A1000EFE9FFE03197F1F700C000008150F5CFDA
-:104A2000DF91CF911F910F91FF90EF90089508951E
-:104A300060932504709326048093270490932804A0
-:104A40000C9448210F931F93009125041091260484
-:104A50002091270430912804DC01CB01802B912B7D
-:104A6000A22BB32B8093250490932604A0932704B4
-:104A7000B09328041F910F910C9448210F931F931A
-:104A800000912504109126042091270430912804D8
-:104A9000DC01CB0180239123A223B323809325043F
-:104AA00090932604A0932704B09328041F910F919C
-:104AB0000C9448210F931F93009125041091260414
-:104AC0002091270430912804DC01CB018027912715
-:104AD000A227B3278093250490932604A09327044C
-:104AE000B09328041F910F910C9448211092210437
-:104AF0001092220410922304109224040C94482152
-:104B000041E050E060E070E004C0440F551F661FB4
-:104B1000771F8A95D2F74093210450932204609323
-:104B20002304709324040C94482141E050E060E099
-:104B300070E004C0440F551F661F771F8A95D2F797
-:104B40008091210490912204A0912304B091240427
-:104B5000482B592B6A2B7B2B409321045093220422
-:104B600060932304709324040C94482141E050E0A6
-:104B700060E070E004C0440F551F661F771F8A95E0
-:104B8000D2F7409550956095709580912104909151
-:104B90002204A0912304B0912404482359236A23BA
-:104BA0007B23409321045093220460932304709349
-:104BB00024040C94482141E050E060E070E004C01F
-:104BC000440F551F661F771F8A95D2F780912104E5
-:104BD00090912204A0912304B091240448275927DE
-:104BE0006A277B2740932104509322046093230477
-:104BF000709324040C9448210F931F930091210477
-:104C0000109122042091230430912404DC01CB0173
-:104C1000802B912BA22BB32B809321049093220401
-:104C2000A0932304B09324041F910F910C94482166
-:104C30000F931F93009121041091220420912304CB
-:104C400030912404DC01CB0180239123A223B323E0
-:104C50008093210490932204A0932304B09324040E
-:104C60001F910F910C9448210F931F9300912104E1
-:104C7000109122042091230430912404DC01CB0103
-:104C800080279127A227B3278093210490932204A1
-:104C9000A0932304B09324041F910F910C944821F6
-:104CA0000895CF92DF92EF92FF920F931F93CF93CD
-:104CB000DF938C01C0902504D0902604E090270457
-:104CC000F09028048091210490912204A091230463
-:104CD000B0912404C82AD92AEA2AFB2ACFE1D0E0DD
-:104CE000D701C6010C2E04C0B695A7959795879558
-:104CF0000A94D2F780FF06C0B8018C2F0E94D30916
-:104D0000019721F4219760F780E001C08C2FDF919B
-:104D1000CF911F910F91FF90EF90DF90CF9008956A
-:104D2000CF93DF93EC010E945126BE010E94D3096C
-:104D3000DF91CF910895CB010E9490260895909124
-:104D40008402992321F090918502911109C020914C
-:104D5000860230918702F90132969FEF40E01FC032
-:104D6000982F9695969596959F3050F5E0918602EE
-:104D7000F0918702E90FF11D877021E030E0A90171
-:104D800002C0440F551F8A95E2F7CA019181892B11
-:104D9000818308959F3F39F04F5F4E3041F051912C
-:104DA0005813F8CF0DC05111F7CF942FF5CF9F3F77
-:104DB00039F0F901E90FF11D97FDFA958283089505
-:104DC000089590918402992321F090918502911188
-:104DD00009C02091860230918702F9013296205F46
-:104DE0003F4F1FC0982F9695969596959F30F0F45B
-:104DF000E0918602F0918702E90FF11D877021E0B2
-:104E000030E0A90102C0440F551F8A95E2F7CA019C
-:104E1000809591818923818308953196E217F30764
-:104E200029F090819813F9CF1082F7CF089581E08F
-:104E300090E0E0918602F0918702E80FF91F10825E
-:104E4000019680319105A9F7089590913C04892B32
-:104E500080933C040895809590913C04892380932D
-:104E60003C04089510923C04089590913B04892BD2
-:104E700080933B040895809590913B04892380930F
-:104E80003B04089510923B04089590913A04892BB5
-:104E900080933A040895809590913A0489238093F1
-:104EA0003A04089510923A040895809329040895CD
-:104EB0001092290408958091860290918702FC0146
-:104EC00031969C01205F3F4F80E0919191118F5F5F
-:104ED000E217F307D1F70895E0918602F091870277
-:104EE00080913C048083E0918602F091870290815A
-:104EF00080913B04892B8083E0918602F0918702A8
-:104F0000908180913A04892B8083809129048823A1
-:104F100061F0E0918602F09187029081892B808375
-:104F20000E945B2781111092290480918602909142
-:104F300087020C944B1B80915E04843039F11092EF
-:104F40003E0420E488E190E00FB6F894A8958093A1
-:104F500060000FBE2093600080E00E94300580E07A
-:104F60000E94AE0A83B7817F846083BF83B781606C
-:104F700083BF7894889583B78E7F83BF88E10FB60F
-:104F8000F89480936000109260000FBE0895089519
-:104F90000895CF9380E00E9430050E94C7270E94A9
-:104FA000650C0E94C827C0E08C2F0E94AE0D892B93
-:104FB00029F4CF5FC430C1F780E001C081E0CF9118
-:104FC00008950E945C2180E00E9430050E94562DC9
-:104FD0000E943F1B0C94AE0A1F920F920FB60F92C5
-:104FE00011248F939F93AF93BF9380913E048111BF
-:104FF00013C080913F0490914004A0914104B0916E
-:1050000042044196A11DB11D80933F04909340043A
-:10501000A0934104B0934204BF91AF919F918F91AF
-:105020000F900FBE0F901F90189582E084BD93E003
-:1050300095BD9AEF97BD80936E0008952FB7F894B1
-:1050400080913F0490914004A0914104B0914204AA
-:105050002FBF0895CF92DF92EF92FF920F931F938D
-:105060002FB7F89440913F0450914004609141045F
-:10507000709142042FBF6A017B01EE24FF248C0152
-:1050800020E030E0C016D106E206F30610F44150ED
-:1050900051099A01281B390BC9011F910F91FF90EB
-:1050A000EF90DF90CF9008951F920F920FB60F925E
-:1050B00011248F939F93AF93BF9380913F0490915E
-:1050C0004004A0914104B09142040196A11DB11D7C
-:1050D00080933F0490934004A0934104B093420412
-:1050E000BF91AF919F918F910F900FBE0F901F9026
-:1050F00018950E943C18F8942FEF87EA91E621500A
-:1051000080409040E1F700C0000087E090EBDC01B8
-:105110008093690490936A04A0936B04B0936C0429
-:105120009CE088E10FB6F894A895809360000FBECC
-:1051300090936000FFCF0E94DA28811102C00E9484
-:10514000B6280E94E52880933D040E94F2288093AF
-:10515000670487FB882780F9809385020E94E928ED
-:10516000682F70E080E090E00C9418256DEE7EEFE3
-:1051700080E090E00E94093260E082E090E00E94CE
-:10518000F73160E083E090E00E94F73160E084E076
-:1051900090E00E94F73160E085E090E00E94F731F6
-:1051A00060E086E090E00E94F7316FEF87E090E0EA
-:1051B0000C94F73180E090E00E94F13121E08D3EC7
-:1051C0009E4F09F020E0822F089582E090E00C9439
-:1051D000E93183E090E00C94E931682F83E090E0BE
-:1051E0000C94F73184E090E00C94E931682F84E06E
-:1051F00090E00C94F73186E090E00C94E931682F50
-:1052000086E090E00C94F73187E090E00C94E9316F
-:10521000682F87E090E00C94F7318091450480FF7F
-:105220000BC060918B0285E0689FB00111247595D9
-:105230006795759567952BC081FF09C060918B02BA
-:1052400085E0689FB00111247595679520C082FFA5
-:1052500007C060918B0285E0689FB001112417C0E0
-:10526000909146049923D1F060918A02961788F7AD
-:1052700020918B0285E0289F90011124929FA0012C
-:10528000939F500D112470E0CA010E94CF31603805
-:10529000710540F46115710539F002C065E070E0F8
-:1052A000862F08958FE7089581E008958091450441
-:1052B00080FF08C06091890270E0759567957595CB
-:1052C000679521C081FF06C06091890270E07595E5
-:1052D000679519C082FF04C06091890270E010C018
-:1052E000909146049923C1F0609188029617A0F727
-:1052F00080918902899FC001112470E00E94CF3102
-:105300006038710528F46115710521F0862F089524
-:105310008FE7089581E0089561E070E0F4CF803F69
-:1053200021F40E940D29819504C0813F29F40E9437
-:105330000D29809349040895823F21F40E940D298C
-:10534000819504C0833F29F40E940D29809348046D
-:105350000895893F19F40E94562905C08A3F31F407
-:105360000E945629819580934A0408958B3F21F429
-:105370000E945629819504C08C3F29F40E94562929
-:1053800080934B040895843F21F480914704816009
-:1053900017C0853F21F480914704826011C0863F89
-:1053A00021F48091470484600BC0873F21F48091F1
-:1053B0004704886005C0883F31F4809147048061CC
-:1053C0008093470408958D3F21F4809145048160C6
-:1053D0000BC08E3F21F480914504826005C08F3F51
-:1053E00029F4809145048460809345040895803FAA
-:1053F00039F48091490487FF6CC01092490469C058
-:10540000813F29F4809149041816BCF362C0909141
-:105410004804823F29F497FF5CC01092480459C0A9
-:10542000833F19F41916CCF354C0893F41F480919D
-:105430004A0418160CF04DC010924A044AC08A3F24
-:1054400029F480914A0487FF44C0F6CF8B3F39F49A
-:1054500080914B0487FF3DC010924B043AC08C3FB3
-:1054600029F480914B041816BCF333C0843F21F417
-:10547000809147048E7F17C0853F21F480914704B7
-:105480008D7F11C0863F21F4809147048B7F0BC034
-:10549000873F21F480914704877F05C0883F31F41E
-:1054A000809147048F7E8093470413C08D3F21F481
-:1054B000809145048E7F0BC08E3F21F4809145047E
-:1054C0008D7F05C08F3F29F4809145048B7F8093A9
-:1054D00045048091480481110EC0809149048111D6
-:1054E0000AC080914A04811106C080914B04811149
-:1054F00002C010924604089587E494E00E94561B6F
-:105500000E941E28909344048093430408951F939F
-:10551000CF93DF9380914304909144040E942A2802
-:10552000AC0190914604992321F020918C0230E047
-:1055300006C020918D028AE0289F90011124421715
-:10554000530708F486C080914804C0914904D09163
-:105550004A0410914B04811107C0C11176C0D111CA
-:1055600074C0111172C075C09F3F19F09F5F909376
-:105570004604181624F40E940D2980934804809153
-:10558000480487FF05C00E940D2981958093480437
-:105590001C1624F40E940D2980934904809149042B
-:1055A00087FF05C00E940D29819580934904609171
-:1055B0004804662339F1C0914904CC2319F17727B7
-:1055C00067FD7095872F972F0E94F12E23E333E319
-:1055D00043E35FE30E9401300E94BE2E60934804C3
-:1055E0006C2F772767FD7095872F972F0E94F12EDC
-:1055F00023E333E343E35FE30E9401300E94BE2EC6
-:10560000609349041D1624F40E94562980934A048D
-:1056100080914A0487FF05C00E9456298195809396
-:105620004A04111624F40E94562980934B04809159
-:105630004B0487FF05C00E945629819580934B0437
-:10564000DF91CF911F910C947C2A9F3F09F08ECF60
-:1056500096CFDF91CF911F910895E7E4F4E085E0C4
-:10566000DF011D928A95E9F71092460410924504D5
-:105670000895833081F128F4813059F08230D1F0DF
-:105680000895853009F449C0B8F1863009F456C050
-:10569000089580918D02262F30E0280F311D2F3F75
-:1056A000310524F4680F60938D0208958FEF809385
-:1056B0008D02089580918C02262F30E0280F311D35
-:1056C0002F3F310524F4680F60938C0208958FEF0B
-:1056D00080938C02089580918B02262F30E0280F52
-:1056E000311D2F3F310524F4680F60938B0208951C
-:1056F0008FEF80938B02089580918A02262F30E0ED
-:10570000280F311D2F3F310524F4680F60938A0262
-:1057100008958FEF80938A02089580918902262F41
-:1057200030E0280F311D2F3F310524F4680F6093BE
-:10573000890208958FEF80938902089580918802ED
-:10574000262F30E0280F311D2F3F310524F4680F3C
-:105750006093880208958FEF8093880208958330C4
-:1057600011F128F4813049F0823091F008958530AC
-:1057700081F120F18630C1F1089580918D02681782
-:1057800020F4861B80938D02089510928D02089557
-:1057900080918C02681720F4861B80938C020895F8
-:1057A00010928C02089580918B02681720F4861B5A
-:1057B00080938B02089510928B02089580918A0243
-:1057C000681720F4861B80938A02089510928A023B
-:1057D000089580918902681720F4861B80938902BE
-:1057E000089510928902089580918802681720F424
-:1057F000861B8093880208951092880208950F9363
-:105800001F93873208F048C08E3108F094C0803171
-:1058100009F47EC008F5873009F468C068F4863062
-:1058200009F0A4C080913D04817F8E7F80933D0468
-:1058300081E080934D049BC08B3009F490C08E3082
-:1058400009F094C080913D0482FB222720F991E069
-:10585000922790FB82F965C0863109F480C060F41C
-:10586000813109F083C00E945C219091850281E022
-:1058700089278093850273C0893109F470C08B3108
-:1058800009F074C080913D0481FB222720F991E04A
-:10589000922790FB81F945C0883309F460C050F429
-:1058A000893209F45EC0853309F45BC0873209F49C
-:1058B00058C05CC0833409F454C028F48A3308F417
-:1058C00055C0895339C0883409F050C00E945C210A
-:1058D0000E946C060FEF13ED20E3015010402040B2
-:1058E000E1F700C000000E94792839C090913D0482
-:1058F000892F8095817080FB90F929F096609860DF
-:1059000090933D0434C0997F977F90933D0427C0C6
-:1059100080913D0483FB222720F991E0922790FBA0
-:1059200083F980933D049923D1F080913D048160F7
-:1059300080933D0414C08D5141E050E060E070E080
-:105940008A019B0104C0000F111F221F331F8A957B
-:10595000D2F7C901B8010E9418250E945C2181E09C
-:1059600006C061E070E080E090E0F5CF80E01F913C
-:105970000F91089580E0089580E00895CF93C82F97
-:1059800080914D04813069F018F08230C9F184C0F3
-:10599000E0918602F09187028081823209F07EC018
-:1059A00007C0E0918602F09187028081823261F423
-:1059B0008C2F0E94BA2C811104C08C2F0E94FF2BC7
-:1059C0001DC081E090E01AC08C2F0E94BC2C811178
-:1059D00014C0C43179F048F4CB3079F0C03109F00B
-:1059E00061C082E080934D0408C0C93219F0C83309
-:1059F00021F058C010924D0455C081E0817054C010
-:105A0000C93291F120F5C43179F1B0F4C73009F011
-:105A100047C08EE180938D0282E380938C028AE0FE
-:105A200080938B0284E180938A0288E080938902CC
-:105A300088E28093880234C0CE51C63088F5EC2FBE
-:105A4000F0E0E85AFC4F808180934C0429C0CE34AA
-:105A5000E9F020F4CB3421F56AE013C0C13579F0C8
-:105A6000C235F1F461E00DC080914C04882319F037
-:105A700010924C0415C081E080934D0415C061E084
-:105A800006C080914C040E94392B0AC06AE08091C4
-:105A90004C040E94AF2B04C010924D0480E004C05F
-:105AA00081E002C080E0AACFCF9108950E94DA2859
-:105AB000811102C00E94B6280E94FB2880936804CE
-:105AC00080FF02C0869501C080E00C943005809173
-:105AD0006804982F9695292F30E0233031054CF437
-:105AE0009F5F990F8170892B8160809368040E9469
-:105AF000FF288091680486950C9430058091680495
-:105B0000982F969591F09158990F8170892B8093D9
-:105B100068048E7F91E009F490E08091680490FB26
-:105B200080F9809368040E94FF288091680486951C
-:105B30000C94300580916804982F909590FB80F923
-:105B4000809368040E94FF288091680480FF02C04F
-:105B5000869501C080E00C94300590916804892FEF
-:105B600086958F5F8F779170843028F4880F892B0A
-:105B70008093680402C090936804809168048E7FCB
-:105B800091E009F490E08091680490FB80F98093A3
-:105B900068040E94FF288091680486950C94300563
-:105BA00020916804922F96958927982F990F822F1C
-:105BB0008170892B809368048E7F91E009F490E0D6
-:105BC0008091680490FB80F9809368040E94FF280C
-:105BD0008091680486950C9430055058BB27AA27FD
-:105BE0000ED0D1C1C2D130F0C7D120F031F49F3FE7
-:105BF00011F41EF4B7C10EF4E095E7FB9FC1E92F45
-:105C0000D3D180F3BA17620773078407950718F09A
-:105C100071F49EF5EBC10EF4E0950B2EBA2FA02D7A
-:105C20000B01B90190010C01CA01A0011124FF2749
-:105C3000591B99F0593F50F4503E68F11A16F04044
-:105C4000A22F232F342F4427585FF3CF4695379543
-:105C50002795A795F0405395C9F77EF41F16BA0B08
-:105C6000620B730B840BBAF09150A1F0FF0FBB1FB6
-:105C7000661F771F881FC2F70EC0BA0F621F731FFF
-:105C8000841F48F4879577956795B795F7959E3F5C
-:105C900008F0B3CF9395880F08F09927EE0F9795EA
-:105CA0008795089527D108F481E008950CD06BC141
-:105CB00063D140F05AD130F021F45F3F19F03EC17A
-:105CC000511195C14FC170D198F39923C9F3552350
-:105CD000B1F3951B550BBB27AA27621773078407DF
-:105CE00038F09F5F5F4F220F331F441FAA1FA9F395
-:105CF00033D00E2E3AF0E0E830D091505040E69587
-:105D0000001CCAF729D0FE2F27D0660F771F881FE7
-:105D1000BB1F261737074807AB07B0E809F0BB0BD6
-:105D2000802DBF01FF2793585F4F2AF09E3F5105FA
-:105D300068F004C15CC15F3FECF3983EDCF38695EC
-:105D400077956795B795F7959F5FC9F7880F911D70
-:105D50009695879597F90895E1E0660F771F881F5C
-:105D6000BB1F621773078407BA0720F0621B730B0F
-:105D7000840BBA0BEE1F88F7E095089504D0689461
-:105D8000B11135C1089518D188F09F5790F0B92FFF
-:105D90009927B751A0F0D1F0660F771F881F991F80
-:105DA0001AF0BA95C9F712C0B13081F01FD1B1E035
-:105DB00008951CC1672F782F8827B85F39F0B93F45
-:105DC000CCF3869577956795B395D9F73EF4909582
-:105DD0008095709561957F4F8F4F9F4F0895E89400
-:105DE00009C097FB3EF490958095709561957F4F23
-:105DF0008F4F9F4F9923A9F0F92F96E9BB279395D1
-:105E0000F695879577956795B795F111F8CFFAF4E0
-:105E1000BB0F11F460FF1BC06F5F7F4F8F4F9F4F11
-:105E200016C0882311F096E911C0772321F09EE86F
-:105E3000872F762F05C0662371F096E8862F70E0D5
-:105E400060E02AF09A95660F771F881FDAF7880FAF
-:105E50009695879597F9089588D018F011F08CD011
-:105E600038F480C0C4C0E92F9FD0B0F35523C9F3E4
-:105E7000E7FB6217730784079507A8F199F3E92FE9
-:105E8000FF2788232AF03197660F771F881FDAF7DC
-:105E9000952F5527442332F091505040220F331F45
-:105EA000441FD2F7BB27E91BF50B621B730B840B56
-:105EB000B109C1F222F4620F731F841FB11D319723
-:105EC0002AF0660F771F881FBB1FEFCF91505040FD
-:105ED0005AF041F0882332F0660F771F881F9150E7
-:105EE0005040C1F7939530C08695779567959F5F31
-:105EF000D9F7F8CF990F0008550FAA0BE0E8FEEF8D
-:105F000016161706E807F907C0F012161306E4077D
-:105F1000F50798F0621B730B840B950B39F40A2676
-:105F200061F0232B242B252B21F408950A2609F454
-:105F3000A140A6958FEF811D811D089597F99F6758
-:105F400080E870E060E008959F3F31F0915020F4C8
-:105F5000879577956795B795880F911D9695879545
-:105F600097F908959FEF80EC089500240A9416167F
-:105F7000170618060906089500240A941216130637
-:105F8000140605060895092E0394000C11F48823C5
-:105F900052F0BB0F40F4BF2B11F460FF04C06F5FE1
-:105FA0007F4F8F4F9F4F089557FD9058440F551FB7
-:105FB00059F05F3F71F04795880F97FB991F61F08B
-:105FC0009F3F79F087950895121613061406551F02
-:105FD000F2CF4695F1DF08C0161617061806991F6E
-:105FE000F1CF86957105610508940895E894BB2763
-:105FF00066277727CB0197F908957CDF08F48FEFA8
-:1060000008950BD0C0CFB1DF28F0B6DF18F095238C
-:1060100009F094CFA7CF1124EACFC6DFA0F3959F54
-:10602000D1F3950F50E0551F629FF001729FBB277F
-:10603000F00DB11D639FAA27F00DB11DAA1F649F2B
-:106040006627B00DA11D661F829F2227B00DA11DDE
-:10605000621F739FB00DA11D621F839FA00D611D64
-:10606000221F749F3327A00D611D231F849F600D85
-:10607000211D822F762F6A2F11249F5750408AF0BE
-:10608000E1F088234AF0EE0FFF1FBB1F661F771F4A
-:10609000881F91505040A9F79E3F510570F04ECF98
-:1060A000A6CF5F3FECF3983EDCF386957795679536
-:1060B000B795F795E7959F5FC1F7FE2B880F911D68
-:1060C0009695879597F90895FA01EE0FFF1F309680
-:1060D0002105310599F16115710561F48038BFE33F
-:1060E0009B0749F168949038810561F08038BFEFD3
-:1060F0009B0741F0992342F5FF3FE105310521055A
-:1061000011F1E8940894E795D901AA2329F4AB2F5B
-:10611000BE2FF85FD0F310C0FF5F70F4A695E0F7D4
-:10612000F73950F019F0FF3A38F49F779F930CD06D
-:106130000F9007FC905808953EF014CF60E070E097
-:1061400080E89FE308954FE79F775F934F933F93D6
-:106150002F939ED02F913F914F915F9152DF05C0B9
-:1061600019F40EF0EBCE42CFFDCE26DFC8F3963801
-:10617000C0F707F80F92E8942BE33AEA48EB5FE7A1
-:106180004EDF0F920F920F924DB75EB70F92C0D0B5
-:10619000ECEFF0E016D04F915F91EF91FF91E59514
-:1061A000EE1FFF1F49F0FE57E0684427EE0F441F23
-:1061B000FA95E1F74195550B32D00F9007FE26C0B6
-:1061C0000895DF93CF931F930F93FF92EF92DF9287
-:1061D0007B018C01689405C0DA2EEF011EDFFE0101
-:1061E000E894A5912591359145915591AEF3EF0134
-:1061F00006DDFE019701A801DA9479F7DF90EF90B0
-:10620000FF900F911F91CF91DF9108959B01AC01F9
-:1062100060E070E080E89FE349CD90CE95CECCDE83
-:10622000E8F39923D9F3940F511DBBF391505040DB
-:1062300094F059F0882332F0660F771F881F915031
-:106240005040C1F79E3F510544F7880F911D969528
-:10625000879597F908955F3FACF0983E9CF0BB2777
-:10626000869577956795B79508F4B1609395C1F7D2
-:10627000BB0F58F711F460FFE8CF6F5F7F4F8F4F70
-:106280009F4FE3CFB4CE0EF05FCE6CCE689456CE67
-:1062900093DEC8F39923D1F3C6F3DF93CF931F9313
-:1062A0000F93FF92C92FDD2788232AF02197660FCD
-:1062B000771F881FDAF720E030E040E85FEB9FE3CC
-:1062C000883920F0803E30F021968F7787DCE4E239
-:1062D000F1E003C083DCE1E5F1E073DF8B01BE0197
-:1062E000EC01FB2E6F5771097595771F880B990B81
-:1062F00078DD28E132E741E35FE38FDEAF2D9801DF
-:10630000AE01FF900F911F91CF91DF9178DC3BCED2
-:10631000FA01DC01AA0FBB1F9B01AC01BF5728F497
-:1063200022273327442750781FC0B75188F4AB2F5A
-:106330000024469537952795011CA395D2F300209C
-:1063400069F0220F331F441FB395DAF30DD045CC0B
-:1063500061307105A0E88A07B94630F49B01AC01B1
-:106360006627772788279078309621F0208331831D
-:10637000428353830895AA1BBB1B51E107C0AA1F88
-:10638000BB1FA617B70710F0A61BB70B881F991FD6
-:106390005A95A9F780959095BC01CD01089597FB7A
-:1063A000072E16F4009407D077FD09D00E94BB3168
-:1063B00007FC05D03EF4909581959F4F0895709508
-:1063C00061957F4F0895EE0FFF1F0590F491E02D2A
-:1063D0000994F999FECF92BD81BDF89A992780B5AD
-:1063E0000895A8E1B0E042E050E00C941132262F6D
-:1063F000F999FECF92BD81BDF89A019700B40216BB
-:1064000039F01FBA20BD0FB6F894FA9AF99A0FBE68
-:1064100008950196272F0E94F8310C94F731DC0182
-:10642000CB01FC01F999FECF06C0F2BDE1BDF89A9F
-:10643000319600B40D9241505040B8F70895F89449
-:02644000FFCF8C
-:106442000C52D02445000000410000DC4400000052
-:106452004152D0A4440000404100005C44000000CE
-:106462004148F17644000000415C978A44000000F4
-:10647200411FD592440000004152D0A444000000C4
-:10648200415CFFB844000000410AA7CF440000006D
-:10649200410000DC44000000410AA7CF4400000094
-:1064A200410000DC440000004100000000000080C8
-:1064B2004000005C450000404100000000000080F8
-:1064C2004052D02445000040410AA7CF44000000BA
-:1064D200410000DC44000000410000000000008098
-:1064E2004052D024450000404100000000000080DE
-:1064F2004000005C45000040410AA7CF4400000074
-:10650200410000DC44000000410000000000008067
-:106512004052D024450000404100000000000080AD
-:10652200400AA74F45000040410AA7CF440000009F
-:10653200410000DC44000000410000000000008037
-:106542004052D024450000004100000000000080BD
-:10655200405CFF3845000000410000000000008060
-:106562004052D02445000000410AA7CF4400000059
-:10657200410000DC440000004100000000000080F7
-:106582004052D024450000804153D02445000040B1
-:106592004160970A450000004154D0A44400000025
-:1065A200410000DC440000004160970A450000A061
-:1065B20041050000003F0000C8424314D114AE144C
-:1065C2007A14461401012A042808140A321E000013
-:1065D200020004000500070009000B000C000E0079
-:1065E2001000110013001500170018001A001C00FB
-:1065F2001D001F002100230024002600280029007E
-:106602002B002D002F0030003200340035003700FF
-:1066120039003B0040004500250026006100600073
-:1066220020003700640065006600670044004600F1
-:10663200240047003149803F5D8B803FF8BF803F97
-:10664200CAE1803F73ED803FCAE1803FF8BF803FDF
-:106652005D8B803F3149803F0000803FF16D7F3F7D
-:1066620075EA7E3F4C827E3F833F7E3F84287E3F99
-:10667200833F7E3F4C827E3F75EA7E3FF16D7F3FD6
-:106682000000803F3F4D363975092809F208B908E4
-:106692004C0865087E0897080102030405060708EE
-:0266A2000900ED
-:00000001FF
diff --git a/keyboard/planck/planck_pcb_r4_w_bootloader.hex b/keyboard/planck/planck_pcb_r4_w_bootloader.hex deleted file mode 100644 index 140bf415f2..0000000000 --- a/keyboard/planck/planck_pcb_r4_w_bootloader.hex +++ /dev/null @@ -1,1897 +0,0 @@ -:020000020000FC
-:047000000C948D3E21
-:047028000C94B73DD0
-:10702F0012010002FF010020EB03F42F0000010208
-:10703F00030109021200010100803209040000005F
-:10704F00000000000C03410054004D0045004C00AF
-:10705F001603410054006D00330032005500340018
-:10706F004400460055000C0331002E0030002E0066
-:10707F0030000403090416010C0100000C0000018C
-:02708F006C7F14
-:1070920012BD01BDF89A00B5089501E00895F9996D
-:1070A200FECF12BD01BD20BDFA9AF99AF6CFF99929
-:1070B200FECF0C944938F80104910895F8013491F7
-:1070C20031962491890108950091610000930C0189
-:1070D20000E80093610001E00093610005BF02E057
-:1070E20005BF0C9486380091D70001600093D70049
-:1070F200A89507EF04BF0091600000610093600053
-:1071020000E00093600001E008950E94AA3D0E9401
-:10711200B53DFDCF0CD00F7708D0006806D00061D6
-:1071220004D0016028D0789408950093D80000918B
-:10713200D8000895FCDF00621ED04CD009B500FFD4
-:10714200FDCFF5DF0F7D17D00091E0000E7F009399
-:10715200E0000091E000077F0093E0000091E20070
-:1071620001600093E2000091E20008600093E200F7
-:1071720078940C94743B0093D800089500910D010B
-:10718200002359F40091D90000FF07C0D0DF006846
-:10719200F2DF01E000930D01CDDFE0E2F2E00081D9
-:1071A200018100FF0DC0008111811E7F11830083C8
-:1071B20001E00093EA0000E00093EA0000931E025F
-:1071C20000E00093E9000091E80003FF02C00E9482
-:1071D200F23B0895A89539D000E40093600000E0E6
-:1071E200009381000093800010E0009385000093DB
-:1071F200840001E006BB00918100036000938100DE
-:107202000091600007FFFCCF00E80093600010933C
-:107212008100A89507EF04BF18D010936000209159
-:1072220084003091850010938100109380001093A8
-:1072320085001093840001E006BB2D3D354010F01F
-:1072420002E101C002E009BD089500916000006101
-:107252000093600008950E94AD3E239741D100E063
-:1072620000930901B5D104811581012B51F437D165
-:1072720000910701002309F4B9C000E0009307015F
-:10728200B5C058D102FFFDCF37D1068335D1009367
-:107292000F0132D1009310012FD1009311012CD193
-:1072A2000093120129D10093130102852091130149
-:1072B20030911201409111015091100116811A95DD
-:1072C20041F01250A9F01A9599F11A9509F473C078
-:1072D2008BC010910F01113011F411E001C010E0C8
-:1072E200138799D00C3F11F414D17FC077D17DC0A0
-:1072F20092D010910F01112329F01A9549F01A9595
-:10730200A9F073C010E013870C3F09F06EC0ECCFF8
-:1073120056D103C04CD109F468C00D911C9144D1DF
-:107322000F3FC1F305E0009309015FC011E0EBCF0D
-:10733200D2D029F00250E1F10A9541F056C0FDD0B9
-:107342000E94A33F0FEF00930A014FC0552319F08B
-:107352005A9579F04AC04ED00DEF04BF74D0EAD0EE
-:1073620003FFFDCF67D051D04AD008E00093600000
-:10737200FFCF40D068D0DED003FFFDCF5BD03FD03F
-:1073820044D00FEF1FE004C009811A810150104060
-:1073920009831A8309811A81012BB1F700E800934E
-:1073A200610000910C01009361000C940000FFCF7A
-:1073B20001E003871AC08FD019F00A9539F015C081
-:1073C200535098F4BAD002E000870FC0505339F0FE
-:1073D2005A9541F05F52B1F35A95A1F306C002E00B
-:1073E2000883F0CF01E0FCCFA8D079D02396E4E067
-:1073F2000C94BA3E01E005BF00E005BF089500917C
-:10740200D8000F770093D800089509B50D7F09BD04
-:1074120000E009BD08955183408333832283109194
-:10742200E8001B7F1093E8001091E8001F7710938B
-:10743200E80008955DD053D0F8940091E000016017
-:107442000093E000089579D04AC0219749D0009175
-:107452000601035019F00250B9F00BC03CD021F0E4
-:107462000A9559F00A9529F400910A010C3F19F482
-:1074720050D02196089567D0FCCF0091010100936E
-:10748200F100009100010AC01091100124D019F0FE
-:107492000A9549F0EECF135018F400E00093F10082
-:1074A2001ED044D0E6CF105339F01A9539F01F524E
-:1074B20041F01A9541F0F4CF08E5F0CF00E006D094
-:1074C200EDCF02E0FCCF04E001D0E8CF10E020E0F5
-:1074D20030E00C94113F00910F010023089521C068
-:1074E2000BD008D007D00093040106D00093050109
-:1074F20021D00BC000D008830091F10008950091C3
-:10750200EB0000620093EB0015D0077F0093E800C8
-:107512000895F5DF02E00093080103E000930901FA
-:10752200089559D007D000FFFDCF089503D002FF80
-:10753200FDCF03C00091E8000895FCDF0B7FE6DF7A
-:10754200F9DF0F77E3CF0E94AC3E42D038D006C0BD
-:107552002BD00093F1002BD059F43DD0082F092BEA
-:10756200A9F0E8DF02FD12C0E5DF00FFFDCF4424F1
-:10757200042D4394003289F300910B0100230D91F5
-:107582001C9131F311970E945838E3CFD3DF00FFEB
-:10759200FDCF21D0CFDF00FFFDCFCCDF02FFFDCF3B
-:1075A200CCDFE5E00C94B93E11970C945C380D9158
-:1075B2001C910F5F1F4F1C930E93019708958281B8
-:1075C200938100811181801B910B0196DF01089547
-:1075D200E0E0F1E00895AEDF0E7F98CF0E94A93E71
-:1075E200F7DF80819181A081B181AF710481158122
-:1075F20000521040048315830AC000910B0100233E
-:1076020031F4A301920103E911E00E943B3F47D00C
-:10761200B8F1662477242C0111C06EDFF301ED5618
-:10762200FE4F008301E0600E00E0701E01960091A3
-:10763200F200002311F033D0B8F47FDF30D0E8F24B
-:10764200F301B096E238F040C0F674DF02FFFDCFDE
-:107652000091F200BDDF24813581201B304024835C
-:107662003583E5CF49DFAA95AA23E1F700910B0103
-:10767200013099F62091F1008C010E945038D6CF4A
-:1076820004811581012B21F055DF02FFFDCF55DF6B
-:10769200A2DF50DF00FFFDCFE8E00C94B63EE0E051
-:1076A200F1E0028113810817190708952091EB0078
-:1076B20021602093EB000093EC000091ED0002703A
-:1076C200012B0093ED000091ED0002600093ED00AC
-:1076D2001091EE00012F000F00E0001F0895412FCE
-:1076E2000093E900089500E009D000FD05C000E024
-:1076F200F7DF10E202E0DACF00E00895F1DF009157
-:10770200EB0008950F770132A9F5112369F11A955B
-:1077120059F01A9561F01A9569F01A95F9F01A95CF
-:10772200C1F01A95D9F024C00E942C3920C00E94C1
-:10773200263A1DC029D00091090123D001E01FD0B3
-:1077420020D0009108011BD00E94923A0E94973AE1
-:107752000EC01AD00091080114D007C002E00093B5
-:10776200080100E0009309010FD00E94923A03C081
-:107772000E94803A02C001E0089500E0089501D01D
-:1077820000E00093F10008950091E800077F009364
-:10779200E800089508950350F9F4112339F01A9579
-:1077A20051F01A9581F01A9599F016C004E016D09E
-:1077B20001E810E703C011D003E510E7E7E1F2E0CA
-:1077C20000831183D8CF06E109D00FE510E7F6CF89
-:1077D20004D005E710E7F2CFD0CF0CE000931A02F5
-:1077E200089527D120D100931D02E1D0212F11232A
-:1077F20029F12A95E9F02250F1F0225099F02A95C8
-:1078020049F0225061F02A9581F02A95E1F02A95FB
-:10781200E9F023C0003809F44FC00C94833B0038D0
-:10782200E1F7C8C00023C9F71EC00023B1F72DC07D
-:10783200033098F744C1033080F70BC1003868F376
-:10784200033858F7C9C0013841F77BC1013051F400
-:10785200FCD0BFD000FD06C0FCCF0E94833B0023BA
-:1078620009F41ED008951091E3001078DCD00F7750
-:10787200012B0093E300E9D0ACD000FFFDCF0091D3
-:10788200E30000680093E300089591D0123040F4C1
-:107892000FD010931E02DAD000911E020C94CB3B43
-:1078A2000091EB0001D004C000620093EB00089548
-:1078B2000091E800077FC0C0BA93AA93229700E024
-:1078C2000093190274D0AFD0202F2A9519F02A956F
-:1078D200E9F022C002E100931A020FE210E7E7E1A9
-:1078E200F2E0008311839DD008839DD00983E0DFFD
-:1078F20000911A0210E02881398102171307A8F4B7
-:107902000F7181F401E00093190211C002E10093AA
-:107912001A0201E410E7E3CF0E94CC3B002319F7DF
-:107922008ED040C01093190202C020931A027ED05A
-:10793200A7E1B2E001C08AD000911A02002309F146
-:1079420048D004FD1EC045D000FD03C042D004FF54
-:10795200FACF10E0012F1395003281F0ED91FC91E6
-:107962001197049133D02D913C912F5F3F4F3C935F
-:107972002E93FD0103810A95038361F72AD004FF48
-:10798200DACF00911902013039F423D004FD04C08A
-:1079920020D000FFFDCF5AD01CD004FFFDCF46D02F
-:1079A20018D00B7F49D02296A991B99108951091D0
-:1079B200F10008957DDF00911E0208D047D009D062
-:1079C2000F773AD006D002FFFDCFBFC00093F1007F
-:1079D20008950091E800089524D010911D021058D6
-:1079E20029F01A9589F01A9591F019C061DF00917A
-:1079F2001C02ECDF00E0EADF29D0EBDF02FFFDCF63
-:107A020018D0E7DF0F770CC053DF00E0F2CF51D080
-:107A12000F7710E0F801E55EFD4F0081EACF0FD04D
-:107A22000BC001D000D00091F1000895D2DF0F7E8B
-:107A320003C00091E8000B7F0093E80008950091D5
-:107A4200EB0032DFC6DF077F089532DFC2DF0E7F31
-:107A5200F3CF00911D02002329F00A9509F10A953E
-:107A620031F01EC0E0DF0A9561D0D9F41AC061D0AE
-:107A7200B9F4D9DF0F7711F416D01BD00093E900C7
-:107A82001091EB0010FF0BC00ED010E01093E90034
-:107A920021E0F801E55EFD4F20834FD003C042D0C4
-:107AA20045D0CFDFC9CF1091EB0010621093EB00ED
-:107AB20008951091E800177F1093E800089500914F
-:107AC2001D02002311F4AFDF02C0013011F4B7DF51
-:107AD200B3CF023031F52DD019F52091F1002F7777
-:107AE2002093E90023D000FF19C081F01FD000616C
-:107AF200DCDE01E010E0422F0E949F3E0093EA008C
-:107B020000E00093EA0012D00860CFDE0BD030E034
-:107B1200F901E55EFD4F008310D0DACF03D0D7CF55
-:107B2200BFDE089500E00093E90008950091EB00A4
-:107B3200089579DF3CDF00230895BADE4ADF0E7F25
-:107B4200089583DF46DF02FFFDCF73DF42DF0F7749
-:107B520073CF0091D70001600093D7000E948B3849
-:107B620000E000931F0208950C94BF388A93FA93A1
-:107B7200EA933A922A921A920A927A936A935A93BF
-:107B82004A933A932A931A930A938FB70091DA0091
-:107B920000FF24C00091D80000FF20C00EEF009328
-:107BA200DA000091D90000FF11C001E000930D013D
-:107BB200ABD0026096D09AD00860A2D00E949B38C7
-:107BC2000091E0000E7F0093E00008C000E0009307
-:107BD2000D0100931E0298D0046083D07FD002FF73
-:107BE20005C084D002FF02C00BEF75D077D000FF32
-:107BF2001BC07CD000FF18C001E000930E016AD0C8
-:107C020083D000626ED00EEF6FD0006179D06ED05B
-:107C12000F7D76D00091D80000620093D80009B59C
-:107C22000D7F09BD00E009BD59D004FF20C05ED020
-:107C320004FF1DC009B500FD05C00E94EB3809B55F
-:107C420000FFFDCF0091D8000F7D0093D80042D0F5
-:107C520000910E01002359F04CD00FEE45D00F7E5B
-:107C620052D000643ED042D001604AD042D036D0D9
-:107C720005FF0FC03BD005FF0CC000E000930E01D2
-:107C820035D00F7E3DD00FED2FD00F7D3CD0006858
-:107C920028D024D003FF0DC029D003FF0AC000E082
-:107CA20000931F0207EF17D00E94743B2DD0116082
-:107CB20018D08FBF09911991299139914991599100
-:107CC200699179910990199029903990E991F991E6
-:107CD200899118950FEE0093E10008950091E1005B
-:107CE20008951183008308950093E1000091E2005A
-:107CF20008950091E200006203D00091E200086062
-:107D02000093E2000895FCDFE0E2F2E000811181DD
-:107D1200089500008895FECF01E60DBF02E00EBF78
-:107D2200C2EED2E00E947438002311F00E94D33ECA
-:107D32000E9465380E948A3E0C948A3E4A951AF047
-:107D4200000F111FFBCF0895BA92AA929A928A92BB
-:107D52007A926A925A924A92BA93AA939A938A937D
-:107D62000895BB84AA84998488847F806E805D8014
-:107D72004C80BB81AA8199818881F0E00FB6F8948A
-:107D8200CE0FDF1F0FBE089520E006D0E9F7089559
-:107D9200259102D0E9F708952D9301501040202F2C
-:107DA200212B089585E890E7FC0105911491FC01CF
-:107DB2003296A591B491FC01349625913491422FCB
-:107DC200432B19F0F901E4DF01C0DEDF069610E76C
-:107DD2008139910748F308952F930CD02F9101D048
-:107DE20008953CD0F12FE02F45E047BFE89536D00B
-:107DF20012D0089533D0F12FE02F43E047BFE8952A
-:107E02002DD008952BD0F12FE02F43E047BFE89506
-:107E120025D001D0089522D041E147BFE8951EC088
-:107E22001DD0F12FE02F41E247BFC895002D16C0AB
-:107E320015D0F12FE02F49E047BFC895002D0EC0A5
-:107E4200F32FE22F012E102E41E047BFE89506C026
-:107E520005D0002E29E027BFE89500C0022E27B7E3
-:107E620020FDFCCF202D0895022E27B726FDFCCF42
-:107E7200202D08950E94A53E22974801C901DA01EA
-:107E820010C05BD001E0A00E00E0B01E00E4A0161E
-:107E920000E0B00608F440C0830120E030E00E9418
-:107EA200F23E0A2F0B2B09F440C0082F0F7710E087
-:107EB2002C01401A510A320100E4A02E03C00A2FFD
-:107EC2000B2BE1F04816590680F0F40101914F01A5
-:107ED2000983119729F001914F010883119711C06D
-:107EE200F2013196049108830CC0F20104910983D6
-:107EF2003196E817F907A1F7F401EDCF1BD00883FB
-:107F020019839201088119810E94213F16D0AA94F7
-:107F1200B1F62301AA24BB240DD0312F0F3F3F4FCE
-:107F220009F4AFCF83011DD0B7CF01E02296ECE078
-:107F32000C94B23E82010C945F3802E0400E00E0E5
-:107F4200501E08959A938A9380E090E08C0109D0A4
-:107F520080589F4F8F3F0FE69007C0F38991999108
-:107F6200089520E030E00C94FB3E00000000000089
-:067F720000000000FC000D
-:107FE4000C94ED3E0C94113F0C94193F0C94213FDA
-:0C7FF4000C94F23E0C94033F0C94293FC7
-:040000030000700089
-:100000000C94DA040C941E050C941E050C941E0529
-:100010000C941E050C941E050C941E050C941E05D4
-:100020000C941E050C941E050C94B7180C94891999
-:100030000C94EC270C941E050C941E050C941E05C4
-:100040000C941E050C941E050C941E050C941E05A4
-:100050000C941E050C9454280C941E050C941E053B
-:100060000C941E050C941E050C941E050C941E0584
-:100070000C941E050C941E050C941E050C941E0574
-:100080000C94AD0E0C941E050C941E050C941E05CC
-:100090000C941E050C941E050C941E050C941E0554
-:1000A0000C941E050C941E050C941E0579058905FB
-:1000B0009B05AB05B105C005CC05D205E005E905FA
-:1000C000FA050A0610064006F619181A061B181A31
-:1000D000061B5D1A801A061BD51AE81AEB1DEB1DCC
-:1000E000281E281E821EC01E38213821D91E382104
-:1000F000DA1FDA1F9D20B4203821232107634236FE
-:10010000B79BD8A71A39685618AEBAAB558C1D3CA8
-:10011000B7CC5763BD6DEDFD753EF6177231BF006C
-:100120000000803F08000000BE922449123EABAAA6
-:10013000AA2ABECDCCCC4C3E00000080BEABAAAA01
-:10014000AA3E00000000BF000000803F0000000049
-:1001500000084178D3BB4387D1133D190E3CC3BD82
-:100160004282AD2B3E68EC8276BED98FE1A93E4C2F
-:1001700080EFFFBE01C4FF7F3F00000000002B00A6
-:1001800014001A000800150017001C0018000C00CD
-:10019000120013002A0029000400160007000900BD
-:1001A0000A000B000D000E000F0033003400E100C8
-:1001B0001D001B000600190005001100100036008C
-:1001C0003700380028000530E000E200E30003308B
-:1001D0002C002C0004305000510052004F002B0026
-:1001E00014001A00090013000A000D000F00180087
-:1001F0001C0033002A002900040015001600170017
-:1002000007000B00110008000C0012003400E10090
-:100210001D001B000600190005000E00100036002E
-:100220003700380028000530E000E200E30003302A
-:100230002C002C0004305000510052004F002B00C5
-:1002400034003600370013001C0009000A000600C5
-:1002500015000F002A0029000400120008001800F1
-:100260000C0007000B001700110016003800E10019
-:10027000330014000D000E001B00050010001A00D2
-:1002800019001D0028000530E000E200E300033003
-:100290002C002C0004305000510052004F00350259
-:1002A0001E021F0220022102220223022402250232
-:1002B000260227022A004C003A003B003C003D0089
-:1002C0003E003F002D022E022F02300231020100BB
-:1002D000400041004200430044004500010001008D
-:1002E0000100010001000100010001000100010006
-:1002F000010001000100AB00AA00A900AE0035001A
-:100300001E001F00200021002200230024002500E1
-:10031000260027002A004C003A003B003C003D002C
-:100320003E003F002D002E002F0030003100010064
-:10033000400041004200430044004500010001002C
-:1003400001000100010001000100010001000100A5
-:10035000010001000100AB00AA00A900AE000000EE
-:10036000000000000000000000000000000000008D
-:10037000000000000000000000000000000000007D
-:10038000000000000000000000000000000000006D
-:10039000000000000000000000000000000000005D
-:1003A000000000000000000000000000000003301A
-:1003B00000000000043000000000000000001E00EB
-:1003C0001E001E001E001E001E001E001E001E003D
-:1003D0001E001E001E00000014001A000800150078
-:1003E00017001C0018000C00120013002F00000062
-:1003F00004001600070009000A000B000D000E00A3
-:100400000F00330034000D3000000000060019001A
-:1004100000000000110010000000000000000000BB
-:1004200000000000000000000000000000000000CC
-:1004300000000000000000000000000000000000BC
-:1004400000000000000000000000000000000000AC
-:10045000000000000000000000000000000000009C
-:10046000000000000000000000000000000000008C
-:10047000000000000000000000000000000000007C
-:10048000000000000000000000000000000000006C
-:10049000000000000000000000000000000000005C
-:1004A000000000000000000000000000000000004C
-:1004B000000000000000000000000000000000003C
-:1004C000000000000000000000000000000000002C
-:1004D000000000000000000000000000000000001C
-:1004E000000000000000000000000000000000000C
-:1004F00000000000000000000000000000000000FC
-:1005000000000000000000000000000000000000EB
-:1005100000000000000000000000000000000000DB
-:1005200000000000000000000000000000000000CB
-:1005300000000000000000000000000000000000BB
-:1005400000000000000000000000000000000000AB
-:10055000000000000000000000000000000000009B
-:10056000000000000000000000000000000000008B
-:10057000000000000000000000000000000000007B
-:10058000000000000000000000000000000000006B
-:10059000000000000000000000000000000000005B
-:1005A000000000000000000000000000000000004B
-:1005B000000000000000000000000000000000003B
-:1005C000000000000000000000000000000000002B
-:1005D000000000000000000000000000000000001B
-:1005E000000000000000000000000000000000000B
-:1005F00000000000000000000000000000000000FB
-:1006000000000000000000000000000000000000EA
-:1006100000000000000000000000000000000000DA
-:1006200000000000000000000000000000000000CA
-:1006300000000000000000000000000000000000BA
-:1006400000000000000000000000000000000000AA
-:10065000000000000000000000000000000000009A
-:10066000000000000000000000000000000000008A
-:10067000000000000000000000000000000000007A
-:10068000000000000000000000000000000000006A
-:10069000000000000000000000000000000000005A
-:1006A000000000000000000000000000000000004A
-:1006B000000000000000000000000000000000003A
-:1006C000000000000000000000000000000000002A
-:1006D000000000000000000000000000000000001A
-:1006E000000000000000000000000000000000000A
-:1006F00000000000000000000000000000000000FA
-:1007000000000000000000000000000000000000E9
-:1007100000000000000000000000000000000000D9
-:1007200000000000000000000000000000000000C9
-:1007300000000000000000000000000000000000B9
-:1007400000000000000000000000000000000000A9
-:100750000000000000000000000000000000000099
-:100760000000000000000000000000000000000089
-:100770000000000000000000000000000000010078
-:100780000050010001000100010001000100010012
-:10079000010001004C00010001000100073006309B
-:1007A000135012500030013002300C3001000100B3
-:1007B0000B300A300930083001000100010001004F
-:1007C0000100010001000100010001000100010021
-:1007D00001000100010001000100010001002803E7
-:1007E000540068006500200050006C0061006E003D
-:1007F00063006B0020004B006500790062006F0011
-:1008000061007200640000002C034F00720074004D
-:1008100068006F006C0069006E0065006100720086
-:1008200020004B006500790062006F0061007200DB
-:100830006400730000000403090409026D00040150
-:1008400000A0FA09040000010301010009211101BF
-:100850000001223F000705810308000A0904010086
-:100860000103010200092111010001224D000705C9
-:10087000820308000A0904020001030000000921A4
-:10088000110100012236000705830308000A09044C
-:1008900003000103000000092111010001223900B9
-:1008A000070584031000011201100100000008ED8B
-:1008B000FE606001000102000105010906A10105B9
-:1008C0000719E029E7150025019508750181020542
-:1008D0000819012905950575019102950175039186
-:1008E0000105071900297715002501957875018103
-:1008F00002C005010980A101850216010026B7008A
-:100900001A01002AB700751095018100C0050C0975
-:1009100001A1018503160100269C021A01002A9CF0
-:1009200002751095018100C005010902A1010901AC
-:10093000A100050919012905150025019505750175
-:100940008102950175038101050109300931158185
-:10095000257F95027508810609381581257F950147
-:1009600075088106050C0A38021581257F950175E9
-:10097000088106C0C005010906A101050719E02983
-:10098000E71500250195087501810295017508811B
-:100990000105081901290595057501910295017553
-:1009A0000391010507190029FF150025FF9506751C
-:1009B000088100C011241FBECFEFDAE0DEBFCDBF3B
-:1009C00004B603FE24C08091690490916A04A0914A
-:1009D0006B04B0916C048730904BA740B04BB9F4D6
-:1009E0001092690410926A0410926B0410926C04C5
-:1009F00014BE84B7877F84BF88E10FB6F8948093D4
-:100A00006000109260000FBEE0E0F8E3099513E08B
-:100A1000A0E0B1E0E2E4F4E602C005900D92A23657
-:100A2000B107D9F714E0A2E6B3E001C01D92A936E0
-:100A3000B107E1F70E94FD150C941F320C940000E1
-:100A4000279A2F988FEF9FEF9093870080938600CF
-:100A50008AE08093800089E1809381000C94562D78
-:100A6000282F81110BC080918000877F80938000A8
-:100A700010928D0010928C002F9808952F988091DD
-:100A80008000886080938000233019F48FEF9FEFFF
-:100A90000FC083E090E0821B9109880F991F2FEF10
-:100AA0003FEFA90102C0569547958A95E2F7CA0122
-:100AB00090938D0080938C000895CF93DF93EC0189
-:100AC0000E94ED28BE0180E090E0DF91CF910C9470
-:100AD00018250F931F93462F50E04E30510508F014
-:100AE000DEC0DC01FA01EA5AFF4F12968C910C9499
-:100AF000E331882309F4D3C000E010E0980140E01E
-:100B000064E070E089E292E00E942B1281E090E0C4
-:100B10000FC0882309F4C3C000E010E0980140E052
-:100B200066E070E089EB91E00E942B1282E090E099
-:100B30000E945D05B4C0882309F4B1C000E010E054
-:100B4000980140E068E070E089EE91E00E942B128D
-:100B500084E090E0EDCF882311F083E005C083E0CE
-:100B60000CC0882349F084E00E94952540E164E0B0
-:100B700083E00E946D0A93C084E00E94B625F6CF00
-:100B8000882331F085EE0E947F1C0E94AD2D87C026
-:100B900085EE0E94471D83C0882309F480C00E940F
-:100BA000BF0D7DC0882309F47AC00E94B80D00E013
-:100BB00010E0980140E065E070E089E492E027C031
-:100BC000882309F46CC085E00E94B6250E94E00DE0
-:100BD00066C0882309F463C000E010E0980140E09B
-:100BE00068E070E089E191E00E942B1285E00E94AC
-:100BF000952555C0882309F452C00E94BE1200E01A
-:100C000010E0980140E068E070E089E191E00E9426
-:100C10002B1245C0882309F442C00E94C912EFCFAD
-:100C20008823E9F100E010E0980140E066E070E020
-:100C300089E891E00E942B1284E00E94B62583E0AF
-:100C40000E94B62580E10E94B62585E00E94B62567
-:100C50000E94E00D86E00E9495250E94DA2881110D
-:100C600002C00E94B6280E94F22890E09093680487
-:100C7000809367048068809367040E94F6280FC001
-:100C8000882369F000E010E0980140E066E070E041
-:100C900089E591E00E942B1286E00E94B62580E053
-:100CA00090E01F910F9108950F931F932FEF89EFFD
-:100CB00090E0215080409040E1F700C0000000E04B
-:100CC00010E0980140E065E070E089E492E00E9465
-:100CD0002B121F910F9108950F931F9300E010E0C6
-:100CE000980140E063E070E081E091E00E942B1207
-:100CF0002FEF82E597E0215080409040E1F700C05F
-:100D000000001F910F910895CF92DF92EF92FF9212
-:100D10000F931F93CF93DF93CDB7DEB7CC58D10994
-:100D20000FB6F894DEBF0FBECDBF2091210425FF82
-:100D3000C5C08C01FC01928180910001992309F4C6
-:100D400060C096E4EEE8F2E0DE01A95BBF4F0190DF
-:100D50000D929A95E1F7F8019081E0916203F0918C
-:100D60006303E90FF11DEE0FFF1F27E430E02C0FA6
-:100D70003D1FE20FF31F60817181680F711D88278D
-:100D800077FD8095982F0E94F12E20E030E040E41E
-:100D900051E40E94562E6B017C01F801218184E010
-:100DA00090E0821B9109BC01882777FD8095982FE0
-:100DB0000E94F12E9B01AC01C701B6010E94EE2DED
-:100DC0009B01AC0160E070E080E090E40E94643040
-:100DD00020E030E04CE551E40E9401304FE050E06B
-:100DE000C457DF4F0FB6F894DEBF0FBECDBFDF9103
-:100DF000CF911F910F91FF90EF90DF90CF900C94C7
-:100E0000CB1196E4EEE8F2E0DE01119601900D922E
-:100E10009A95E1F7F8019081E0916203F091630304
-:100E2000E90FF11DEE0FFF1F21E030E02C0F3D1FF9
-:100E3000E20FF31F60817181680F711D882777FDB4
-:100E40008095982F0E94F12E20E030E040E451E49C
-:100E50000E94562E6B017C01F801218184E090E014
-:100E6000821B9109BC01882777FD8095982F0E94ED
-:100E7000F12E9B01AC01C701B6010E94EE2D9B0132
-:100E8000AC0160E070E080E090E40E94643020E01B
-:100E900030E04CE551E40E940130C457DF4F0FB6FB
-:100EA000F894DEBF0FBECDBFDF91CF911F910F91A0
-:100EB000FF90EF90DF90CF900C94130EC457DF4F4C
-:100EC0000FB6F894DEBF0FBECDBFDF91CF911F915B
-:100ED0000F91FF90EF90DF90CF90089508950E94BA
-:100EE00020056E9A769A0C9454060C946E070C9416
-:100EF00084060895880F991FFC01E250F040859107
-:100F000094910895880F991FFC01E258FE4F859136
-:100F1000949108950F931F93CF93DF93EC01811564
-:100F200020E49207A0F5C11580E3D80708F0E1C0DE
-:100F3000C83ED105D8F4C03ED10508F0EEC1C83A8C
-:100F4000D10578F4C53AD10508F074C0C130D10597
-:100F500009F46DC008F4DEC1C430D10508F0DDC16C
-:100F6000D9C1CB3BD10508F470C0D4C1C11590E202
-:100F7000D90708F0B9C0C11521E0D20708F0CDC1EA
-:100F8000C03FD10508F4C6C18E01106506C2C1304C
-:100F900080E5D80709F4BDC068F5C13120E4D20767
-:100FA00009F4AEC050F4C03190E4D90708F0A5C0F0
-:100FB000CF70DD278E01146DF0C1C33120E4D2075C
-:100FC00009F4A4C008F49FC0C115D04509F0A2C11E
-:100FD0000E945C210E94E00D0E946C069FEF24E3BA
-:100FE0008CE0915020408040E1F700C000000E945A
-:100FF0007928D3C1C11520E6D20730F4C11581E5A7
-:10100000D80708F48CC02DC1C11590E7D90708F4A2
-:1010100081C1C11520E8D20708F478C1C11580E963
-:10102000D80708F077C1DF708E01106AB6C101E001
-:1010300010E0B3C1C53AD10509F471C1C63AD10572
-:1010400009F070C102E810E4A8C1C83AD10509F45A
-:101050006CC1C93AD10509F46BC1CA3AD10509F48A
-:101060006AC1CB3AD10509F469C1CC3AD10509F47A
-:1010700068C1CD3AD10509F467C1C03BD10509F477
-:1010800066C1CE3AD10509F465C1CF3AD10509F45C
-:1010900064C1C13BD10509F463C1C23BD10509F468
-:1010A00062C1C33BD10509F461C1C43BD10509F458
-:1010B00060C1C53BD10509F45FC1C63BD10509F448
-:1010C0005EC1C73BD10509F45DC1C83BD10509F438
-:1010D0005CC1C93BD10509F45BC1CA3BD10509F428
-:1010E0005AC100E014E459C1CE019F700E948207EA
-:1010F00055C1DD278E01106C50C100E011ED4DC1CE
-:1011000000E010ED4AC100E012ED47C100E013ED30
-:1011100044C180913D04816080933D043EC10E94A2
-:10112000DA28811102C00E94B6280E94F22890E0BD
-:101130009093680480936704C23090E5D90721F446
-:1011400080916704816086C0C43020E5D20721F415
-:101150008091670482607EC0C63080E5D80721F4A4
-:1011600080916704846076C0C83090E5D90719F48F
-:101170008091670427C0CA3020E5D20721F480910E
-:101180006704806167C0CC3080E5D80721F4809186
-:10119000670480625FC0CE3090E5D90721F480916A
-:1011A0006704806457C0C03120E5D20721F48091E4
-:1011B000670480684FC0C23180E5D80729F4809168
-:1011C00067048460886046C0C33090E5D90721F485
-:1011D000809167048E7F3EC0C53020E5D20721F4A0
-:1011E000809167048D7F36C0C73080E5D80721F431
-:1011F000809167048B7F2EC0C93090E5D90719F420
-:101200008091670426C0CB3020E5D20721F480917D
-:1012100067048F7E1FC0CD3080E5D80721F4809110
-:1012200067048F7D17C0CF3090E5D90721F48091F6
-:1012300067048F7B0FC0C13120E5D20721F4809174
-:1012400067048F7707C0C331D04531F480916704BC
-:101250008B7F877F80936704809167040E94F628C4
-:101260009CC08D2F99278F70992781309105D9F4D3
-:101270009E012370332702C0880F991F2A95E2F739
-:101280009C688E0144E0000F111F4A95E1F700278A
-:101290001370802B912B53E0CC0FDD1F5A95E1F793
-:1012A000C076DD272FC08230910531F4DC2FCC27AA
-:1012B0008E01016F106A71C08330910569F4CE010F
-:1012C0008370992701E010E002C0000F111F8A957A
-:1012D000E2F7C8019C680FC0049709F05EC0CE0118
-:1012E0008370992701E010E002C0000F111F8A955A
-:1012F000E2F7C8019A6823E0CC0FDD1F2A95E1F7D9
-:10130000C07ED7708C010C2B1D2B47C0DF708E0167
-:10131000106243C000E010E040C08E013EC001E812
-:1013200010E43BC003E810E438C002EE14E435C01A
-:1013300009EE14E432C00AEE14E42FC005EB14E405
-:101340002CC006EB14E429C007EB14E426C00CEC17
-:1013500014E423C00DEC14E420C003E815E41DC020
-:101360000AE815E41AC002E915E417C004E915E417
-:1013700014C001E216E411C003E216E40EC004E258
-:1013800016E40BC005E216E408C006E216E405C048
-:1013900007E216E402C00AE216E4C801DF91CF9129
-:1013A0001F910F9108959CE0799FF001112490E323
-:1013B000899FE00DF11D1124E60FF11DEE0FFF1FB7
-:1013C000E258FE4F85919491803E9105E0F4803C77
-:1013D000910558F58133910509F46FC048F48932BD
-:1013E000910509F463C08A32910509F46DC072C099
-:1013F00089339105E9F082389105D1F08533910563
-:1014000009F44DC067C0833E910581F138F4803EF8
-:101410009105B9F0823E9105D9F05CC0863E9105F8
-:1014200061F1873E9105A1F155C00E947A070895A8
-:101430002091670420FD02C021FF4CC080EE90E0A7
-:1014400049C08091670480FFF9CF89E390E042C0F2
-:101450008091670482FF0EC08091670484FF03C0FF
-:1014600080E090E037C083EE90E034C08091670464
-:1014700082FFF2CF82EE90E02DC08091670483FF5F
-:101480000BC08091670484FDEBCF87EE90E022C013
-:101490008091670483FFF5CF86EE90E01BC08091BA
-:1014A000670485FF07C089E290E014C0809167045B
-:1014B00085FFF9CF85E390E00DC08091670486FF3A
-:1014C00007C08AE290E006C08091670486FFF9CFEA
-:1014D00081E390E00E948A070895CF92DF92EF9215
-:1014E000FF920F931F9301E010E020E030E06801CD
-:1014F000790104C0CC0CDD1CEE1CFF1C8A95D2F7D0
-:1015000004C0000F111F221F331F6A95D2F70C2948
-:101510001D292E293F29C0902104D0902204E0905B
-:101520002304F0902404C022D122E222F322842F4B
-:10153000C016D106E206F30641F41F910F91FF9009
-:10154000EF90DF90CF900C9495251F910F91FF9015
-:10155000EF90DF90CF900C94B62508950C94AD0ACF
-:101560005F926F927F928F929F92AF92BF92CF9233
-:10157000DF92EF92FF920F931F93CF93DF93CDB73C
-:10158000DEB728970FB6F894DEBF0FBECDBFCE01F1
-:1015900001966C014E0199E0890E911C20E030E02B
-:1015A00040E050E060E070E000E010E0E12CF12C61
-:1015B0006C2C5D2C88E0782EAA24A394B12CE4ED49
-:1015C000F2E0A62DB52D872D01900D928A95E1F7B9
-:1015D000F601819191916F01FC01E07FFF27E032DC
-:1015E000F10559F48F709927F50102C0EE0FFF1F26
-:1015F0008A95E2F7EE2AFF2A37C0E033F10559F465
-:101600008F709927F50102C0EE0FFF1F8A95E2F750
-:101610000E2B1F2B29C0E034F10559F48F70992748
-:10162000F50102C0EE0FFF1F8A95E2F76E2B7F2BAC
-:101630001BC0E035F10559F48F709927F50102C000
-:10164000EE0FFF1F8A95E2F74E2B5F2B0DC0E036A1
-:10165000F10551F48F709927F50102C0EE0FFF1FBD
-:101660008A95E2F72E2B3F2BC814D90409F0A7CF97
-:1016700084B19E2D9095892384B985B1E82AE5B877
-:1016800087B1902F9095892387B988B1082B08B925
-:101690008AB1962F909589238AB98BB1682B6BB943
-:1016A0008DB1942F909589238DB98EB1482B4EB969
-:1016B00080B3922F9095892380BB81B3282B21BBC7
-:1016C00028960FB6F894DEBF0FBECDBFDF91CF9145
-:1016D0001F910F91FF90EF90DF90CF90BF90AF9050
-:1016E0009F908F907F906F905F9008955F926F9220
-:1016F0007F928F929F92AF92BF92CF92DF92EF92A2
-:10170000FF920F931F93CF93DF93CDB7DEB7689708
-:101710000FB6F894DEBF0FBECDBF85B7806885BF1A
-:1017200085B7806885BF0E94B00ACE0101966C0122
-:101730004E0199E1890E911C20E030E040E050E03C
-:1017400060E070E000E010E0E12CF12C6C2C5D2CEE
-:1017500088E1782EAA24A394B12CECEDF2E0A62D1A
-:10176000B52D872D01900D928A95E1F7F6018191B3
-:1017700091916F01FC01E07FFF27E032F10559F400
-:101780008F709927F50102C0EE0FFF1F8A95E2F7CF
-:10179000EE2AFF2A37C0E033F10559F48F709927FC
-:1017A000F50102C0EE0FFF1F8A95E2F70E2B1F2BEB
-:1017B00029C0E034F10559F48F709927F50102C072
-:1017C000EE0FFF1F8A95E2F76E2B7F2B1BC0E035D3
-:1017D000F10559F48F709927F50102C0EE0FFF1F34
-:1017E0008A95E2F74E2B5F2B0DC0E036F10551F4E0
-:1017F0008F709927F50102C0EE0FFF1F8A95E2F75F
-:101800002E2B3F2BC814D90409F0A7CF84B19E2DED
-:101810009095892384B985B1E82AE5B887B1902FDE
-:101820009095892387B988B1082B08B98AB1962F7A
-:10183000909589238AB98BB1682B6BB98DB1942FA0
-:10184000909589238DB98EB1482B4EB980B3922FD4
-:101850009095892380BB81B3282B21BB10926D0307
-:1018600010926C03109265031092640310926F0340
-:1018700010926E0310926703109266031092710328
-:101880001092700310926903109268031092730310
-:101890001092720310926B0310926A0368960FB64F
-:1018A000F894DEBF0FBECDBFDF91CF911F910F9196
-:1018B000FF90EF90DF90CF90BF90AF909F908F9070
-:1018C0007F906F905F900C946F077F928F929F92A2
-:1018D000AF92BF92CF92DF92EF92FF920F931F933E
-:1018E000CF93DF93CDB7DEB7A0970FB6F894DEBFE6
-:1018F0000FBECDBF6E0149E1C40ED11C84E6E82EB7
-:1019000083E0F82E98E0792EBC2CAD2C01E010E09D
-:1019100028E1822E35E0932EE4EDF2E0AB2DBA2DD6
-:10192000872D01900D928A95E1F7F60181919191B1
-:101930006F019C01207F33272032310591F424B1BF
-:101940008F709927A80102C0440F551F8A95E2F7AE
-:10195000CA01922F982B94B995B18095892385B9A6
-:1019600053C02033310591F427B18F709927F801C6
-:1019700002C0EE0FFF1F8A95E2F7CF01922F982B3E
-:1019800097B998B18095892388B93EC02034310534
-:1019900091F42AB18F709927A80102C0440F551FF6
-:1019A0008A95E2F7CA01922F982B9AB99BB180953C
-:1019B00089238BB929C02035310591F42DB18F7061
-:1019C0009927F80102C0EE0FFF1F8A95E2F7CF01B9
-:1019D000922F982B9DB99EB1809589238EB914C002
-:1019E0002036310589F420B38F709927A80102C0F1
-:1019F000440F551F8A95E2F7CA01922F982B90BB8E
-:101A000091B38095892381BB50EA5A95F1F7BE01C5
-:101A10006F5F7F4F20E030E040E050E0ECEDF2E01F
-:101A2000DE011196882D01900D928A95E1F7FB0158
-:101A300081919191BF01FC01E07FFF27E032F10528
-:101A400011F4E3B113C0E033F10511F4E6B10EC0B7
-:101A5000E034F10511F4E9B109C0E035F10511F404
-:101A6000ECB104C0E036F105B9F4EFB1F0E08F70ED
-:101A7000992702C0F595E7958A95E2F7E0FD08C041
-:101A8000C801042E02C0880F991F0A94E2F702C011
-:101A900080E090E0282B392B4F5F5F4F4C30510591
-:101AA00009F0BCCFF701808191818217930721F063
-:101AB00031832083909271020E94B00AF2E0EF0E0F
-:101AC000F11C4CE6E41643E0F40609F025CF8091C2
-:101AD0007102882361F1815080937102882339F06B
-:101AE0008FE99FE00197F1F700C0000020C08091CE
-:101AF00064039091650390936D0380936C038091D0
-:101B000066039091670390936F0380936E038091B7
-:101B1000680390916903909371038093700380919F
-:101B20006A0390916B0390937303809372030E94F6
-:101B3000750781E0A0960FB6F894DEBF0FBECDBF4B
-:101B4000DF91CF911F910F91FF90EF90DF90CF9099
-:101B5000BF90AF909F908F907F900895E82FF0E016
-:101B6000EE0FFF1FE459FC4F808191810895089585
-:101B7000809152048160809352040C9408298091D2
-:101B800052048E7F809352040C9408290E94DA2814
-:101B9000811102C00E94B6280E9404298093520439
-:101BA0003E9A809171008D7F8093710082E08093D6
-:101BB00090008AE18093910081E0809376030895FC
-:101BC00080917603811102C00E94C60D1092C60357
-:101BD0001092C503809171008D7F80937100809178
-:101BE00090008F7780939000109288031092870363
-:101BF0001092BF031092C0031092C1031092C2034F
-:101C00001092BE031092BD03EDE9F3E0ADE8B3E03E
-:101C100011921192119211921D921D9283E0ED3B4F
-:101C2000F807B1F70895CF92DF92EF92FF920F93EA
-:101C30001F93CF93DF9320918703222309F484C05D
-:101C40006B017C0180917603811102C00E94C60D58
-:101C50000DEB13E0C7E0D0E0A7019601F8019291E7
-:101C60008291729162918F010E94522E811131C036
-:101C7000FE01EE0FFF1FEE0FFF1FE356FC4F108219
-:101C8000118212821382DE01AA0FBB1FA357BC4F21
-:101C900011961C921E92C730D105E9F0219644811D
-:101CA0005581668177814083518362837383148277
-:101CB00015821682178212968D919C911397119618
-:101CC0009C938E9313961C921E92129734961296A2
-:101CD000E2CF219708F68091C5039091C603019742
-:101CE00097FD05C09093C6038093C50304C010926E
-:101CF000C6031092C5038091C5039091C60320913D
-:101D0000C3033091C4032817390724F01092C40389
-:101D10001092C303892BC1F4809171008D7F809351
-:101D20007100809190008F77809390001092BF0394
-:101D30001092C0031092C1031092C2031092BE030E
-:101D40001092BD0310928703DF91CF911F910F91E5
-:101D5000FF90EF90DF90CF9008951F920F920FB6F3
-:101D60000F9211244F925F926F927F928F929F9267
-:101D7000AF92BF92CF92DF92EF92FF922F933F9359
-:101D80004F935F936F937F938F939F93AF93BF9383
-:101D9000CF93DF93EF93FF9380918703882309F418
-:101DA0009BC1C091C503D091C6031C161D060CF043
-:101DB00093C14090770350907803609079037090BE
-:101DC0007A0320E030E0A901C301B2010E94FD2F97
-:101DD00018160CF065C0C130D10509F452C08091CD
-:101DE000C3039091C403BE010E94CF317C01909344
-:101DF000C4038093C3038090890390908A03A090CA
-:101E00008B03B0908C0320E030E040E85FE3C50135
-:101E1000B4010E94EE2D6093890370938A0380932E
-:101E20008B0390938C03F701EE0FFF1FEE0FFF1F44
-:101E3000E356FC4FA30192016081718182819381FD
-:101E40000E94562E20E030E040E05EE30E94013028
-:101E50009B01AC01C501B4010E94FD2F18168CF442
-:101E6000C7010196BE010E94CF319093C4038093B5
-:101E7000C3031092890310928A0310928B0310926D
-:101E80008C03E091C303F091C403EE0FFF1FEE0F2C
-:101E9000FF1FE356FC4F6081718182819381D0C026
-:101EA000C090BF03D090C003E090C103F090C20384
-:101EB00020E030E0A901C701B6010E94522E21970F
-:101EC000882309F4A2C0FE01EE0FFF1FEE0FFF1FD3
-:101ED000E356FC4F80809180A280B380A5019401DD
-:101EE000C701B6010E94522E87FF31C0A50194019F
-:101EF00060E070E08CED93EC0E94562E20E030E024
-:101F000040E451E40E94562E20E030E040E05FE3E0
-:101F10000E9401309B01AC0160E070E080E090E441
-:101F20000E9464309B01AC01C501B4010E940130E4
-:101F30009B01AC01C701B6010E94522E87FF07C06A
-:101F4000A701960160E070E08CED93E439C0A50133
-:101F50009401C701B6010E94FD2F18160CF055C060
-:101F6000A501940160E070E08CED93E40E94562E90
-:101F700020E030E040E451E40E94562E20E030E0C2
-:101F800040E05FE30E9401309B01AC0160E070E043
-:101F900080E090E40E9464309B01AC01C501B40173
-:101FA0000E9401309B01AC01C701B6010E94FD2FC8
-:101FB00018165CF5A701960160E070E08CED93ECDB
-:101FC0000E94562E20E030E040E451E40E94562E5C
-:101FD00020E030E040E05FE30E9401309B01AC0173
-:101FE00060E070E080E090E40E9464309B01AC010E
-:101FF000C701B6010E9401306093BF037093C00314
-:102000008093C1039093C20313C0FE01EE0FFF1F24
-:10201000EE0FFF1FE356FC4F80819181A281B381B7
-:102020008093BF039093C003A093C103B093C203F6
-:102030006091BF037091C0038091C1039091C2036E
-:1020400020917403309175032F3F4FEF340731F027
-:102050002F5F3F4F30937503209374030E94D41277
-:102060006B017C0120E034E244EF51E40E94522EE7
-:1020700087FF08C086EFC82E88E2D82E84EFE82EAE
-:1020800081E4F82E20E030E040E051E4C701B601E1
-:102090000E9401309B01AC0160E074E284E79BE4A4
-:1020A0000E94562E6B017C010E94BE2E70939700F9
-:1020B00060939600209172023091730240917402F5
-:1020C00050917502C701B6010E9401300E94BE2ED8
-:1020D000709399006093980080918803882309F495
-:1020E00033C1C0908303D0908403E0908503F090C7
-:1020F000860320E030E0A901C701B6010E94FD2F50
-:102100001816D4F580917403909175038F3F2FEFCB
-:10211000920729F001969093750380937403C70189
-:10212000B6010E94D41220E030E040E051E40E9469
-:1021300001309B01AC0160E074E284E79BE40E9403
-:10214000562E6B017C010E94BE2E70939700609307
-:102150009600209172023091730240917402509166
-:102160007502C701B6010E9401300E94BE2E709315
-:1021700099006093980008C0109297001092960002
-:10218000109299001092980060917D0370917E03E7
-:102190006F5F7F4F70937E0360937D032091960065
-:1021A0003091970080E090E0232BF1F0C0919600F1
-:1021B000D09197000E94EF2E6B017C01BE0180E060
-:1021C00090E00E94EF2E9B01AC0160917F03709123
-:1021D000800380918103909182030E94562E20E01B
-:1021E0003FEF4FE757E410C00E94EF2E6B017C01D8
-:1021F00020E030EE4FEF54E460917F037091800354
-:1022000080918103909182030E9401309B01AC0177
-:10221000C701B6010E94FD2F87FD96C080917B0308
-:102220008F5F80937B0390E020914E0430914F04A8
-:1022300082179307A0F080915904882319F0109217
-:102240007B030DC0809171008D7F80937100809120
-:1022500090008F7780939000109288037DC08091CA
-:102260007C03C0917B03811128C0C0905304D0909F
-:102270005404E0905504F090560420E030E0A901A9
-:10228000C701B6010E94FD2F1816BCF481E08093AF
-:102290007C031092830310928403109285031092A2
-:1022A0008603C0927F03D0928003E0928103F09274
-:1022B0008203C150C0937B0343C010927C031092F1
-:1022C000750310927403E0915004F091510448E0BA
-:1022D000C49FE00DF11D112480819181A281B38101
-:1022E0008093830390938403A0938503B093860324
-:1022F00020E030E040E85EE364817581868197816B
-:102300000E9401306B017C0120E030E048EC52E497
-:1023100060917602709177028091780290917902B3
-:102320000E94562E9B01AC01C701B6010E940130EC
-:1023300060937F0370938003809381039093820363
-:1023400010927E0310927D038091520480FD04C0A0
-:102350001092880310928703FF91EF91DF91CF9144
-:10236000BF91AF919F918F917F916F915F914F91AD
-:102370003F912F91FF90EF90DF90CF90BF90AF9063
-:102380009F908F907F906F905F904F900F900FBEB7
-:102390000F901F901895CF92DF92EF92FF92CF93FC
-:1023A000DF936B017C01EA0180917603811102C009
-:1023B0000E94C60D8091520480FF46C08091C503E3
-:1023C0009091C60308970CF03FC0809171008D7FFB
-:1023D000809371008091880381110E94E00D81E05B
-:1023E00080938703109275031092740320E030E00D
-:1023F000A901C701B6010E94FD2F1816DCF48091D7
-:10240000C5039091C603FC01EE0FFF1FEE0FFF1FE7
-:10241000E356FC4FC082D182E282F382FC01EE0FD0
-:10242000FF1FE357FC4FD183C08301969093C603EF
-:102430008093C503809171008260809371008091C8
-:102440009000806880939000DF91CF91FF90EF9093
-:10245000DF90CF9008958F929F92AF92BF92CF92CC
-:10246000DF92EF92FF920F931F93CF93DF93EC01D4
-:102470007B01D42E4801590180917603811102C05D
-:102480000E94C60D8091520480FF6BC08091710044
-:102490008D7F809371008091870381110E94E00DF0
-:1024A00081E080938803D0935104C0935004F0924C
-:1024B0004F04E0924E04D0925904809253049092BB
-:1024C0005404A0925504B0925604109289031092BD
-:1024D0008A0310928B0310928C0310927B038881E5
-:1024E0009981AA81BB818093830390938403A093F5
-:1024F0008503B093860320E030E040E85EE36C8122
-:102500007D818E819F810E9401306B017C0120E0E2
-:1025100030E048EC52E4609176027091770280914D
-:102520007802909179020E94562E9B01AC01C7015E
-:10253000B6010E94013060937F0370938003809303
-:1025400081039093820310927E0310927D03809109
-:102550007100826080937100809190008068809308
-:102560009000DF91CF911F910F91FF90EF90DF903E
-:10257000CF90BF90AF909F908F9008958091C703A8
-:1025800090E0019666E070E00E94CF318093C7032F
-:1025900008958091C70390E0019766E070E00E9483
-:1025A000CF318093C70308958F929F92AF92BF92CD
-:1025B000CF92DF92EF92FF920F931F93CF93DF930F
-:1025C0006B017C01C0917403D0917503BE0180E062
-:1025D00090E00E94EF2E4B015C01A701960160E0A4
-:1025E00070E08CE594E40E94562E9B01AC01C5017D
-:1025F000B4010E9401300E94C32E2091C7032330F2
-:1026000009F473C028F4222351F02130E9F02CC1E1
-:10261000243009F4A0C0253009F4E0C025C180E0D1
-:1026200090E0A0E0BFE38093720290937302A093C6
-:102630007402B0937502109277031092780310928F
-:10264000790310927A0310C11092770310927803E5
-:102650001092790310927A036431710540F46A3064
-:10266000710560F520E030E040E85EE32BC0693C96
-:10267000710508F0AAC080E090E00E94EF2E20E0F3
-:1026800030E040EA51E40E94ED2D20E030E044E3E8
-:1026900053E40E94562E9B01AC010E94013020E0C1
-:1026A00030E040E05EE30E9401309B01AC0160E05D
-:1026B00070E080E09EE30E94ED2D44C020E030E019
-:1026C00040E05FE3C701B6010E9401306B017C016D
-:1026D00080E090E0A0E0BEE38093720290937302EA
-:1026E000A0937402B0937502BFC01092770310924A
-:1026F00078031092790310927A034AE0469F900182
-:10270000479F300D1124C90168EB7BE00E94BB316B
-:10271000BC016C5D754077FF03C0719561957109CF
-:10272000882777FD8095982F0E94F12E2EE333ECB9
-:102730004EE259E30E94013020E030E040EC5EE3DD
-:102740000E94EE2D60937202709373028093740264
-:102750009093750289C010927703109278031092BB
-:10276000790310927A03CE0183709927892BE1F0C7
-:10277000BE016170772780E090E00E94EF2E20E09C
-:1027800030E040E05EE30E94013020E030E040E4D1
-:102790005FE30E94EE2D6093720270937302809348
-:1027A0007402909375020CC080E090E0A0E0BFE35B
-:1027B0008093720290937302A0937402B093750297
-:1027C000C770DD27CD2B09F04FC010927202109216
-:1027D0007302109274021092750246C01092770331
-:1027E000109278031092790310927A0300E010E0BF
-:1027F00020E03FE30093720210937302209374026F
-:10280000309375026739710578F180E090E00E949D
-:10281000EF2E20E030E047E153E40E94ED2D20E070
-:1028200030E04AE754E40E94562E20E030E048E4CD
-:1028300052E40E94013020E030E040EA51E40E947E
-:10284000332F0E94BE2E660F771F660F771FFB0186
-:10285000EC50FD4F2081318142815381C701B60187
-:102860000E9401306B017C01C701B601DF91CF915D
-:102870001F910F91FF90EF90DF90CF90BF90AF909E
-:102880009F908F9008958091D8030895CF93DF9300
-:1028900000D01F92CDB7DEB79C0180915E048430DA
-:1028A00019F593E099833B832A839093E9008FEF96
-:1028B0009091E800815095FD06C095ED9A95F1F74D
-:1028C00000008111F5CF8091E80085FF0DC040E048
-:1028D00050E063E070E0CE0101960E94A71680915F
-:1028E000E8008E778093E8000F900F900F90DF91B3
-:1028F000CF910895CF93DF9300D01F92CDB7DEB76D
-:1029000020915E04243021F522E029839B838A8371
-:1029100083E08093E9008FEF9091E800815095FD6E
-:1029200006C095ED9A95F1F700008111F5CF8091E1
-:10293000E80085FF0DC040E050E063E070E0CE01AC
-:1029400001960E94A7168091E8008E778093E80098
-:102950000F900F900F90DF91CF91089520915E041A
-:102960002430F1F422E02093E9002FEF3091E800C9
-:10297000215035FD06C035ED3A95F1F700002111E3
-:10298000F5CF2091E80025FF0BC040E050E065E066
-:1029900070E00E94A7168091E8008E778093E8008F
-:1029A0000895CF93DF93EC0190915E04943009F089
-:1029B00046C0809184028823D9F0809185028823C3
-:1029C000B9F09093E9008FEF9091E800815095FD68
-:1029D00006C095E19A95F1F700008111F5CF80913D
-:1029E000E80085FF2CC040E050E060E170E017C0D7
-:1029F00081E08093E9008FEF9091E800815095FD90
-:102A000006C095ED9A95F1F700008111F5CF809100
-:102A1000E80085FF14C040E050E068E070E0CE01BF
-:102A20000E94A7168091E8008E778093E80080E1ED
-:102A3000FE01A8ECB3E001900D928A95E1F7DF91D9
-:102A4000CF91089580915D04811109C00E943C18C6
-:102A50000E9499188091E20084608093E2000895BA
-:102A600010925D040895089508950C94E12742E0C2
-:102A700061EC81E00E94B61742E061EC82E00E94C6
-:102A8000B61742E061EC83E00E94B61742E161ECC8
-:102A900084E00C94B61780916004833009F455C02B
-:102AA00030F4813071F0823009F48EC008958A309C
-:102AB00009F47AC08B3009F460C0893009F09CC0F9
-:102AC00020C080915F04813A09F096C08091E800AF
-:102AD000877F8093E8008091630490916404892B40
-:102AE00021F460E188EC93E003C060E080E090E0D6
-:102AF00070E00E94F2168091E8008B778093E800E6
-:102B0000089580915F04813209F076C0809163045A
-:102B100090916404009719F0039709F06DC08091BB
-:102B2000E800877F8093E8008091E80082FD05C07F
-:102B300080915E048111F8CF5FC08091F100809395
-:102B4000D8038091E8008B7753C080915F04813A6D
-:102B500009F052C08091630490916404892B09F0BC
-:102B60004BC08091E800877F8093E8008091E80067
-:102B700080FFFCCF8091840236C080915F04813257
-:102B8000D9F58091630490916404892BA9F5809113
-:102B9000E800877F8093E8000E94EB178091610432
-:102BA000809384020C945C2180915F04813221F532
-:102BB0008091E800877F8093E8000E94EB17809166
-:102BC00062048093D903089580915F04813AA1F44F
-:102BD0008091E800877F8093E8008091E80080FF83
-:102BE000FCCF8091D9038093F1008091E8008E772B
-:102BF0008093E8000C94EB17089584B7877F84BF17
-:102C000088E10FB6F89480936000109260000FBEC8
-:102C100090E080E80FB6F894809361009093610093
-:102C20000FBE0E948E1B0E943C180E949918809132
-:102C3000E20084608093E20078940E941F1B0E944F
-:102C4000901B8AE792E00E943A1B80915E048530D7
-:102C500069F40E949B2780915C048823B1F30E9451
-:102C6000C927882391F30E949116EFCF0E94981BE9
-:102C7000ECCF292F332723303105C9F064F42130FC
-:102C8000310581F02230310509F043C08DE690E036
-:102C90002AE338E042C021323105F1F02232310519
-:102CA00041F137C082E190E027EA38E036C0992749
-:102CB0008130910541F08230910541F0892B49F531
-:102CC000E6E3F8E005C0E8E0F8E002C0EEEDF7E08A
-:102CD000849190E09F0121C06430D8F4E62FF0E0A9
-:102CE000EE0FFF1FE05BFC4F2081318189E090E017
-:102CF00014C0643070F470E0FB01EE0FFF1FE85B5E
-:102D0000FC4F20813181FB01EC5BFC4F808190E026
-:102D100004C080E090E020E030E0FA0131832083BD
-:102D2000089580E189BD82E189BD09B400FEFDCF2F
-:102D30008091D8008F7D8093D8008091E0008260E0
-:102D40008093E0008091E00081FDFCCF0895CF9258
-:102D5000DF92EF92FF920F931F93CF93DF93EC01DB
-:102D60008B016A010E940A18811133C0C114D10479
-:102D700039F0F60180819181081B190BC80FD91F0A
-:102D8000E12CF12C0115110519F18091E80085FD68
-:102D900016C08091E8008E778093E800C114D104BA
-:102DA00049F0F60180819181E80EF91EF182E082FE
-:102DB00085E00FC00E940A18882321F30AC0899178
-:102DC0008093F10001501109FFEFEF1AFF0ADACFEB
-:102DD00080E0DF91CF911F910F91FF90EF90DF90F6
-:102DE000CF90089520916504309166042617370727
-:102DF00048F06115710539F42091E8002E77209391
-:102E0000E80001C0B90140E061157105A9F1209108
-:102E10005E04222309F443C0253009F442C0209106
-:102E2000E80023FD40C02091E80022FD32C020913F
-:102E3000E80020FFE9CF4091F3002091F20030E05C
-:102E4000342BFC01CF016115710559F02830310593
-:102E500040F481918093F100615071092F5F3F4FE1
-:102E6000F1CF41E02830310509F040E02091E80041
-:102E70002E772093E800C8CF4111C9CF0AC08091B6
-:102E80005E04882361F0853061F08091E80083FD65
-:102E90000AC08091E80082FFF2CF80E0089582E0CE
-:102EA000089583E0089581E00895209165043091AC
-:102EB00066042617370748F06115710539F420912B
-:102EC000E8002E772093E80001C0B901FC0120E062
-:102ED0006115710591F180915E04882309F440C069
-:102EE000853009F43FC08091E80083FD3DC08091AA
-:102EF000E80082FD2FC08091E80080FFE9CF20919B
-:102F0000F3008091F20090E0922B6115710559F069
-:102F10008830910540F424912093F100319661505E
-:102F200071090196F2CF21E0089709F020E0809125
-:102F3000E8008E778093E800CBCF2111CCCF0AC078
-:102F400080915E04882361F0853061F08091E80013
-:102F500083FD0AC08091E80082FFF2CF80E00895EF
-:102F600082E0089583E0089581E00895982F9730D6
-:102F700058F59093E900981739F07091EC00209182
-:102F8000ED005091F00003C0242F762F50E021FF78
-:102F900019C03091EB003E7F3093EB003091ED0093
-:102FA0003D7F3093ED003091EB0031603093EB00CA
-:102FB0007093EC002093ED005093F0002091EE0010
-:102FC00027FF07C09F5FD3CF8F708093E90081E018
-:102FD000089580E0089580915F0487FF11C080917B
-:102FE000E80082FD05C080915E048111F8CF11C018
-:102FF0008091E8008B770BC080915E04882349F0B4
-:103000008091E80080FFF8CF8091E8008E77809370
-:10301000E80008952091E4003091E50095E64091A4
-:10302000EC00842F817040FF22C08091E80080FD79
-:103030001CC080915E04882391F0853091F08091CE
-:10304000EB0085FD10C04091E4005091E50042176F
-:10305000530729F39A01915011F784E0089582E013
-:10306000089583E0089581E0089580E008954091F7
-:10307000E80042FFDECF08950E94AA180E94B2180D
-:10308000E0EEF0E0808181608083E8EDF0E0808117
-:103090008F77808319BCA7EDB0E08C918E7F8C93E5
-:1030A00080818F7E808310925D0408950F931F931B
-:1030B000CF93DF930E94AA180E94B218C8EDD0E007
-:1030C00088818F77888388818068888388818F7DD5
-:1030D000888319BC10925E0410925A0410925C040A
-:1030E00010925B0400EE10E0F80180818B7F8083FA
-:1030F00088818160888342E060E080E00E94B617AA
-:10310000E1EEF0E080818E7F8083E2EEF0E080816E
-:1031100081608083808188608083F80180818E7FD8
-:103120008083888180618883DF91CF911F910F9187
-:103130000895E8EDF0E080818F7E8083E7EDF0E098
-:1031400080818160808384E082BF81E080935D0420
-:103150000C945618E8EDF0E080818E7F8083109209
-:10316000E20008951092DA001092E10008951F9293
-:103170000F920FB60F9211242F933F934F935F93AB
-:103180006F937F938F939F93AF93BF93EF93FF932F
-:103190008091E10082FF0BC08091E20082FF07C0B6
-:1031A0008091E1008B7F8093E1000E941E1B809143
-:1031B000DA0080FF1FC08091D80080FF1BC0809183
-:1031C000DA008E7F8093DA008091D90080FF0DC0F5
-:1031D00080E189BD82E189BD09B400FEFDCF81E0B7
-:1031E00080935E040E94221505C019BC10925E04F3
-:1031F0000E9430158091E10080FF19C08091E200AB
-:1032000080FF15C08091E2008E7F8093E200809164
-:10321000E20080618093E2008091D8008062809318
-:10322000D80019BC85E080935E040E94341580911B
-:10323000E10084FF30C08091E20084FF2CC080E177
-:1032400089BD82E189BD09B400FEFDCF8091D8001F
-:103250008F7D8093D8008091E1008F7E8093E10084
-:103260008091E2008F7E8093E2008091E200816095
-:103270008093E20080915A04882311F084E007C013
-:103280008091E30087FD02C081E001C083E080936C
-:103290005E040E9435158091E10083FF29C0809172
-:1032A000E20083FF25C08091E100877F8093E100E9
-:1032B00082E080935E0410925A048091E1008E7F38
-:1032C0008093E1008091E2008E7F8093E200809104
-:1032D000E20080618093E20042E060E080E00E94D2
-:1032E000B6178091F00088608093F0000E9433153B
-:1032F000FF91EF91BF91AF919F918F917F916F91CE
-:103300005F914F913F912F910F900FBE0F901F90A3
-:1033100018951F920F920FB60F9211242F933F937F
-:103320004F935F936F937F938F939F93AF93BF93CD
-:10333000CF93DF93EF93FF93C091E900CF7080911B
-:10334000EC00D82FD17080FDD0E81092E900809178
-:10335000F000877F8093F00078940E94CD1910923E
-:10336000E9008091F00088608093F000CD2BCF7051
-:10337000C093E900FF91EF91DF91CF91BF91AF91A1
-:103380009F918F917F916F915F914F913F912F917D
-:103390000F900FBE0F901F9018951F93CF93DF9340
-:1033A000CDB7DEB7AA970FB6F894DEBF0FBECDBF7C
-:1033B000EFE5F4E088E08E0F9091F10091938E1389
-:1033C000FBCF0E944B158091E80083FF1FC18091C5
-:1033D0005F0490916004492F50E04A30510508F095
-:1033E00015C1FA01EC59FF4F0C94E331803881F09C
-:1033F000823809F00BC1809163048F708093E900DB
-:103400008091EB0085FB882780F91092E90006C0C7
-:1034100080915B0490915C04911182609091E8002E
-:10342000977F9093E8008093F1001092F100C8C05C
-:10343000282F2D7F09F0EAC0882319F0823061F02F
-:10344000E5C080916104813009F0E0C0933009F05B
-:1034500080E080935C042BC080916104811127C0BF
-:10346000809163048F7009F4D1C08093E9002091AA
-:10347000EB0020FF1CC0933021F48091EB008062B0
-:1034800014C09091EB0090619093EB0021E030E04C
-:10349000A90102C0440F551F8A95E2F74093EA0044
-:1034A0001092EA008091EB0088608093EB0010920C
-:1034B000E9008091E800877F86C08111A7C0109144
-:1034C00061041F778091E3008078812B8093E30073
-:1034D0008091E800877F8093E8000E94EB1780913D
-:1034E000E80080FFFCCF8091E30080688093E300D8
-:1034F000111102C082E001C083E080935E0486C0A7
-:103500008058823008F082C08091610490916204FA
-:103510008C3D53E0950779F583E08A838AE28983BD
-:103520004FB7F894DE01139620E03EE051E2E32F1E
-:10353000F0E050935700E49120FF03C0E295EF7054
-:103540003F5FEF708E2F90E0EA3010F0C79601C019
-:10355000C0968D939D932F5F243149F74FBF809183
-:10356000E800877F8093E8006AE270E0CE01019670
-:103570000E94F21614C0AE014F5F5F4F609163046A
-:103580000E943916BC01009709F440C09091E800F0
-:10359000977F9093E80089819A810E9455178091C6
-:1035A000E8008B778093E80031C0803879F580910E
-:1035B000E800877F8093E80080915A048093F100AF
-:1035C0008091E8008E778093E8000E94EB171EC080
-:1035D00081111CC0909161049230C0F48091E80088
-:1035E000877F8093E80090935A040E94EB178091A4
-:1035F0005A04811106C08091E30087FD02C081E07A
-:1036000001C084E080935E040E9437158091E80039
-:1036100083FF0AC08091E800877F8093E800809153
-:10362000EB0080628093EB00AA960FB6F894DEBFA1
-:103630000FBECDBFDF91CF911F9108950895CF9315
-:1036400080915E048823A1F0C091E900CF70909131
-:10365000EC00892F817090FD80E8C82B1092E90062
-:103660008091E80083FD0E94CD19CF70C093E900DE
-:10367000CF9108959093DF038093DE030895E09146
-:10368000DE03F091DF03309721F00190F081E02D0F
-:10369000099480E00895E091DE03F091DF03309714
-:1036A00021F00280F381E02D09940895E091DE037A
-:1036B000F091DF03309721F00480F581E02D09942B
-:1036C00008952091DC033091DD038217930771F098
-:1036D0009093DD038093DC03E091DE03F091DF0340
-:1036E000309721F00680F781E02D0994089520910C
-:1036F000DA033091DB038217930771F09093DB03B9
-:103700008093DA03E091DE03F091DF03309721F03C
-:103710000084F185E02D0994089508950C948D1B83
-:103720000E9415280E94760B0E949B280C94562D0F
-:103730004F925F927F928F929F92AF92BF92CF9261
-:10374000DF92EF92FF920F931F93CF93DF93CDB74A
-:10375000DEB72A970FB6F894DEBF0FBECDBF0E942A
-:10376000650C91EEC92E93E0D92E00E010E0AA245A
-:10377000A394B12C702E802F0E94AE0D4C01F60147
-:10378000419051906F014826592641145104B1F4DB
-:103790000F5F1F4F0430110569F78FEF89838A830C
-:1037A0001B820E941E288160782F9D838C83498113
-:1037B0005A816B818D810E94511C3AC080913D04D9
-:1037C00081FD0E94B70D20E030E07501022E02C09D
-:1037D000EE0CFF1C0A94E2F7C70184219521892B86
-:1037E00009F12E837F828E209F2091E0892809F4A1
-:1037F00090E098870E941E288160782F9A87898799
-:103800004E815F8168858A850E94511C000F111FBF
-:10381000F801EF51FC4F80819181E826F926F18271
-:10382000E08206C02F5F3F4F2C30310571F6B0CFDC
-:103830000E94872A1091E0030E943F1B1817D9F0BD
-:103840000E943F1B8093E0032A960FB6F894DEBFD8
-:103850000FBECDBFDF91CF911F910F91FF90EF90E1
-:10386000DF90CF90BF90AF909F908F907F905F90B0
-:103870004F900C94AE0A2A960FB6F894DEBF0FBE96
-:10388000CDBFDF91CF911F910F91FF90EF90DF900F
-:10389000CF90BF90AF909F908F907F905F904F9010
-:1038A0000895CF93DF93CDB7DEB72B970FB6F8947B
-:1038B000DEBF0FBECDBF4F83588769877A878B875E
-:1038C000DE01119686E0FD0111928A95E9F785E007
-:1038D000FE01379601900D928A95E1F749815A8150
-:1038E0006B817C818D819E810E94F6232B960FB681
-:1038F000F894DEBF0FBECDBFDF91CF910895CF9377
-:10390000882309F4C2C0C82F823859F40E943F1B93
-:1039100081FDBBC089E30E949F260E946C2789E33A
-:103920000CC0833879F40E943F1B80FDAEC083E554
-:103930000E949F260E946C2783E50E94E126CF917A
-:103940000C946C27843859F40E943F1B82FD9DC063
-:1039500087E40E949F260E946C2787E4EECF8CEFBD
-:103960008C0F813A48F48C2F0E94BE2C81118DC09F
-:103970008C2F0E949F26E3CF80E28C0F883048F482
-:10398000C77081E001C0880FCA95EAF70E94252719
-:10399000D6CF8BE58C0F833078F4C53A29F0C63A40
-:1039A00031F083E890E005C081E890E002C082E851
-:1039B00090E0CF910C94611B88E58C0F833108F067
-:1039C00064C0C83A39F1C93A41F1CA3A49F1CB3A2F
-:1039D00051F1CC3A59F1CD3A61F1C03B69F1CE3A9F
-:1039E00071F1CF3A79F1C13B81F1C23B89F1C33B1F
-:1039F00091F1C43B99F1C53BA1F1C63BA9F1C73B8D
-:103A0000B1F1C83BB9F1C93BC1F1CA3BC9F180E092
-:103A100090E038C082EE90E035C089EE90E032C090
-:103A20008AEE90E02FC085EB90E02CC086EB90E012
-:103A300029C087EB90E026C08CEC90E023C08DEC91
-:103A400090E020C083E891E01DC08AE891E01AC0B0
-:103A500082E991E017C084E991E014C081E292E02C
-:103A600011C083E292E00EC084E292E00BC085E2D6
-:103A700092E008C086E292E005C087E292E002C0D0
-:103A80008AE292E0CF910C94771BCF91089588231E
-:103A900009F44BC0823859F40E943F1B81FF45C096
-:103AA00089E30E949F260E946C2789E30CC083381B
-:103AB00071F40E943F1B80FF38C083E50E949F265F
-:103AC0000E946C2783E50E94E1260C946C278438C1
-:103AD00059F40E943F1B82FF28C087E40E949F2662
-:103AE0000E946C2787E4EFCF9CEF980F913A58F330
-:103AF00090E2980F983050F4877091E001C0990FD0
-:103B00008A95EAF7892F0E942B27DFCF9BE5980F34
-:103B1000933020F480E090E00C94611B885A83314C
-:103B200020F480E090E00C94771B0895882321F026
-:103B30000E9425270C946C270895882321F00E9469
-:103B40002B270C946C270895BF92CF92DF92EF92AF
-:103B5000FF920F931F93CF93DF9300D000D000D03C
-:103B6000CDB7DEB725E0FC01DE01119601900D9284
-:103B70002A95E1F7FC01D0801181028125812295EF
-:103B80002F7043815481452B09F472C31F3F21F4E8
-:103B9000FFEFDF1609F46CC37C012E830E947707C8
-:103BA000D9821A8369817A81802F0E949B26182FDF
-:103BB000B92E0E9450260E9417252E81002319F04D
-:103BC0000E9442272E81EB2DE295EF70F0E0E25942
-:103BD000FF4F0C94E3318B2D807F9B2D9F70F92E2E
-:103BE000882319F0F29480EFF822002389F0FF2057
-:103BF00009F47CC280E2810F883020F48F2D0E946E
-:103C0000252703C08F2D0E9435270E946C276EC286
-:103C1000812F0E94471DFF2009F42AC3105E8F2DBB
-:103C2000183018F40E942B2702C00E943B272696CA
-:103C30000FB6F894DEBF0FBECDBFDF91CF911F91BD
-:103C40000F91FF90EF90DF90CF90BF900C946C2776
-:103C50008B2D807F9B2D9F70803211F4892F03C0A4
-:103C6000892F8295807F112319F0113011F12BC01B
-:103C70000023A9F0222389F1213079F526960FB689
-:103C8000F894DEBF0FBECDBFDF91CF911F910F9192
-:103C9000FF90EF90DF90CF90BF900C945527222398
-:103CA00019F0213009F4E4C28E830E9458278E81D6
-:103CB0009BC1002321F0263008F0DAC20EC0253067
-:103CC00008F0D6C291C10023C9F0222331F0F701D8
-:103CD000958190FF0BC29F70958326960FB6F8943E
-:103CE000DEBF0FBECDBFDF91CF911F910F91FF902F
-:103CF000EF90DF90CF90BF900C94961D222309F493
-:103D000073C109C22B2D26952695237030E021150D
-:103D1000310521F021303105D1F0AAC2002321F074
-:103D2000812F9B2D937002C080E090E026960FB605
-:103D3000F894DEBF0FBECDBFDF91CF911F910F91E1
-:103D4000FF90EF90DF90CF90BF900C94611B002309
-:103D500021F0812F9B2D937002C080E090E0269689
-:103D60000FB6F894DEBF0FBECDBFDF91CF911F918C
-:103D70000F91FF90EF90DF90CF90BF900C94771B46
-:103D8000812F002319F00E948F2902C00E94F72979
-:103D900026960FB6F894DEBF0FBECDBFDF91CF9150
-:103DA0001F910F91FF90EF90DF90CF90BF900C94F8
-:103DB0007C2A8B2D837009F07BC0011159C2812FA1
-:103DC000829586958770880F880F912F9F70C92ED6
-:103DD000D12CE12CF12C082E04C0CC0CDD1CEE1CE7
-:103DE000FF1C0A94D2F714FF12C04FE050E060E0CD
-:103DF00070E004C0440F551F661F771F8A95D2F7E5
-:103E0000CB01BA01609570958095909503C060E0F4
-:103E100070E0CB012B2D269526952370422F50E084
-:103E200042305105D9F04330510569F16C297D29A3
-:103E30008E299F294130510551F126960FB6F894ED
-:103E4000DEBF0FBECDBFDF91CF911F910F91FF90CD
-:103E5000EF90DF90CF90BF900C943E256C297D2988
-:103E60008E299F2926960FB6F894DEBF0FBECDBFD0
-:103E7000DF91CF911F910F91FF90EF90DF90CF9046
-:103E8000BF900C945A250E943E25C701B601269684
-:103E90000FB6F894DEBF0FBECDBFDF91CF911F915B
-:103EA0000F91FF90EF90DF90CF90BF900C94222560
-:103EB000002319F08B2D817001C08695882309F4A9
-:103EC000D7C1812F829586958770880F880F912F93
-:103ED0009F70C92ED12CE12CF12C082E04C0CC0CE3
-:103EE000DD1CEE1CFF1C0A94D2F714FF12C04FE039
-:103EF00050E060E070E004C0440F551F661F771F5C
-:103F00008A95D2F7CB01BA0160957095809590950E
-:103F100003C060E070E0CB012B2D26952695237021
-:103F2000422F50E042305105D9F04330510569F13C
-:103F30006C297D298E299F294130510551F1269602
-:103F40000FB6F894DEBF0FBECDBFDF91CF911F91AA
-:103F50000F91FF90EF90DF90CF90BF900C941826B8
-:103F60006C297D298E299F2926960FB6F894DEBFED
-:103F70000FBECDBFDF91CF911F910F91FF90EF90BA
-:103F8000DF90CF90BF900C9434260E941826C70172
-:103F9000B60126960FB6F894DEBF0FBECDBFDF91F7
-:103FA000CF911F910F91FF90EF90DF90CF90BF9036
-:103FB0000C94FC25103F49F118F4103E48F491C0D0
-:103FC000123F09F453C0E8F1133F09F464C089C0FB
-:103FD0001F708B2D8F71002321F00E949525812F5A
-:103FE0007CCE0E94B625812F26960FB6F894DEBFB0
-:103FF0000FBECDBFDF91CF911F910F91FF90EF903A
-:10400000DF90CF90BF900C949D1D0023B1F0253020
-:1040100008F02EC18B2D8F7126960FB6F894DEBF57
-:104020000FBECDBFDF91CF911F910F91FF90EF9009
-:10403000DF90CF90BF900C94DB25263008F018C19C
-:10404000E9CF0023A9F08B2D8F7126960FB6F89437
-:10405000DEBF0FBECDBFDF91CF911F910F91FF90BB
-:10406000EF90DF90CF90BF900C949525002359F3EB
-:104070008B2D8F7126960FB6F894DEBF0FBECDBF85
-:10408000DF91CF911F910F91FF90EF90DF90CF9034
-:10409000BF900C94B625002399F08B2D8F71269636
-:1040A0000FB6F894DEBF0FBECDBFDF91CF911F9149
-:1040B0000F91FF90EF90DF90CF90BF900C948025F0
-:1040C00026960FB6F894DEBF0FBECDBFDF91CF911D
-:1040D0001F910F91FF90EF90DF90CF90BF900C94C5
-:1040E00076250023A9F0222309F4ADCF812F26964F
-:1040F0000FB6F894DEBF0FBECDBFDF91CF911F91F9
-:104100000F91FF90EF90DF90CF90BF900C947F1CA9
-:10411000222309F4ADCF812F26960FB6F894DEBF87
-:104120000FBECDBFDF91CF911F910F91FF90EF9008
-:10413000DF90CF90BF900C94471D4B2D4F70612F97
-:10414000C7010E94690526960FB6F894DEBF0FBE20
-:10415000CDBFDF91CF911F910F91FF90EF90DF9036
-:10416000CF90BF900C949A24011182C09B2D9F7018
-:10417000492F50E04230510509F443C0C4F44115C1
-:10418000510571F14130510509F072C026960FB604
-:10419000F894DEBF0FBECDBFDF91CF911F910F917D
-:1041A000FF90EF90DF90CF90BF900C947E2D433026
-:1041B0005105C1F14430510509F05AC0812F2696AE
-:1041C0000FB6F894DEBF0FBECDBFDF91CF911F9128
-:1041D0000F91FF90EF90DF90CF90BF900C94D02D77
-:1041E00026960FB6F894DEBF0FBECDBFDF91CF91FC
-:1041F0001F910F91FF90EF90DF90CF90BF900C94A4
-:10420000672D26960FB6F894DEBF0FBECDBFDF91A7
-:10421000CF911F910F91FF90EF90DF90CF90BF90C3
-:104220000C949A2D26960FB6F894DEBF0FBECDBF24
-:10423000DF91CF911F910F91FF90EF90DF90CF9082
-:10424000BF900C94AD2D4B2D4F70612FC70126965A
-:104250000FB6F894DEBF0FBECDBFDF91CF911F9197
-:104260000F91FF90EF90DF90CF90BF900C94790763
-:1042700026960FB6F894DEBF0FBECDBFDF91CF916B
-:104280001F910F91FF90EF90DF90CF90BF90089516
-:104290000E9442270E9452270E9417270E946C27E3
-:1042A0000E942D2B0E947C2A80E090E00E94611BDE
-:1042B00080E090E00C94771B0E9432270C944821F8
-:1042C0000E949026292F22952F7030E02C30310546
-:1042D0004CF42A3031056CF422503109223031057A
-:1042E00088F407C02C30310549F02F30310531F00A
-:1042F00009C0803E48F0803F29F406C093FB882720
-:1043000080F9089580E0089581E00895CF93DF93C8
-:1043100000D000D01F92CDB7DEB70F900F900F9056
-:104320000F900F90DF91CF910895CF93DF9300D03E
-:1043300000D000D0CDB7DEB726960FB6F894DEBF1A
-:104340000FBECDBFDF91CF9108951F93CF93DF9321
-:10435000C091E90316E08091EA03C81799F0D0E014
-:104360001C9FF0011D9FF00D1124E551FC4F408171
-:10437000518162817381848195810E94952121966A
-:10438000C770E9CFDF91CF911F91089540911B0431
-:1043900050911C0460911D0470911E0480911F04B3
-:1043A000909120040C9495218091200482958F7027
-:1043B00009F054C080911D04882309F44FC08091F6
-:1043C000E903A091EA0360911B0470911C044091E1
-:1043D0001E0450911F04B6E08A1709F43FC090E014
-:1043E00041155105C1F17F3F11F46F3FA1F1B89F15
-:1043F000F001B99FF00D1124E551FC4F218172139A
-:104400002AC02081621327C02281211124C0238168
-:1044100034812417350710F421503109241B350B42
-:10442000283C3105C0F4209120042F702061209396
-:10443000200426E0289FF001299FF00D1124E0516F
-:10444000FC4F80818F70806180838BE194E00E94BB
-:10445000A41D0C94A52101968770BECF0895CF921C
-:10446000DF92EF92FF920F931F93CF93DF93CDB71D
-:10447000DEB762970FB6F894DEBF0FBECDBF8C01DA
-:1044800085E0F801DE011D9601900D928A95E1F715
-:10449000D8014C9111965C91119712966C911297DC
-:1044A0001396CD90DC90149730911B0470911C04EE
-:1044B00080911E0490911F04009709F46BC17F3F07
-:1044C00019F43F3F09F466C1E0901D04EE2009F4A1
-:1044D000C0C020912004C816D90628F0F601E81BB8
-:1044E000F90BCF0104C0809590958C0D9D1DFF2484
-:1044F000F394883C910578F0F12C207F09F0C6C038
-:104500007C2DD98AC88A89890E9486218BE194E012
-:104510000E94A41DB1C0822F807F09F046C0751390
-:1045200014C0341312C0611110C02F702061209389
-:1045300020040E94C6218BE194E00E94A41D80917A
-:104540002004D80115968C932EC0CD2819F15F3F19
-:1045500011F44F3FF9F0F62E61111CC08091E90370
-:104560002091EA0336E0821709F45AC090E0389FA0
-:10457000F001399FF00D1124E551FC4F7181571363
-:1045800006C07081471303C07281711103C0019688
-:104590008770E9CFF62E662309F418C180912004B4
-:1045A000816080932004F12C11C1751308C034136D
-:1045B00006C0611104C080912004D801C3C04D879A
-:1045C0005E878D859E856A8B0E9460216A8988231B
-:1045D000E1F16623D1F120912004822F82958F7022
-:1045E00090E0029774F080911B0490911C049887CE
-:1045F0008F831986DB86CA862C87CE0107960E9498
-:10460000A41D86E0F801ABE1B4E001900D928A951B
-:10461000E1F70E94D4210E94C621FF24F394D6C062
-:104620004D875E878D859E850E949026292F229535
-:104630002F7030E0223031050CF0BCC09F7009F0C3
-:10464000B6C0805E883008F4C1C0C8010E94A41DB5
-:10465000E4CFC816D90608F453C0F601E81BF90BDD
-:10466000CF01883C910508F450C0F12C7C2DD98AEB
-:10467000C88A89890E948621EBE1F4E086E0DF01A7
-:104680001D928A95E9F70E94C621A0C0751314C037
-:10469000341312C0611110C080912004F801858389
-:1046A000C8010E94A41D86E0EBE1F4E0DF011D9249
-:1046B0008A95E9F7FE2C8AC04D875E878D859E8599
-:1046C0006A8B0E9460216A89882309F4BECF662321
-:1046D00009F4BBCF20912004822F82958F7090E047
-:1046E00002970CF48ECF80911B0490911C049A8346
-:1046F00089831B82DD82CC822E83CE0101967FCFFF
-:10470000809590958C0D9D1DACCFF62E662309F4F7
-:104710009CCF75132EC034132CC02091200420FD93
-:104720001FC0822F82958F70D9F0D80115962C93D7
-:1047300015978F3049F08F5F982F9295907F822F39
-:104740008F70892B15968C93C8010E94A41D86E05A
-:10475000F801ABE1B4E001900D928A95E1F793CFB7
-:1047600086E0F801ABE1B4E001900D928A95E1F7A3
-:104770002DC04D875E878D859E850E9460218111A9
-:1047800040CF80912004816080932004C8010E9462
-:10479000A41D1CC0662309F458CF4D875E878D8504
-:1047A0009E850E946021882309F44FCF2ACF811172
-:1047B00048CF0CC0243031050CF047CF9F7009F46E
-:1047C00040CFF8019581907F09F03BCF8F2D629605
-:1047D0000FB6F894DEBF0FBECDBFDF91CF911F9112
-:1047E0000F91FF90EF90DF90CF9008951F93CF939C
-:1047F000DF93CDB7DEB72C970FB6F894DEBF0FBEB0
-:10480000CDBF4F83588769877A878B879C87CE0176
-:1048100007960E942F22882369F08F8198852A8528
-:104820003B85232BF1F19F3F09F063C08F3F09F0D7
-:1048300060C037C086E0FE013796DE011196019018
-:104840000D928A95E1F76F817885EA85FB8530972F
-:1048500041F17F3F11F46F3F21F12091EA0330E0F5
-:10486000C9010196877099274091E90350E08417A8
-:10487000950709F447C069837A83FD83EC8396E04A
-:10488000929FD001939FB00D1124A551BC4FFE0102
-:10489000319601900D929A95E1F78093EA030E9478
-:1048A000A52116E08091E9039091EA038917C1F1EF
-:1048B000189FC001112485519C4F0E942F228823EC
-:1048C00079F1E091E9031E9FF0011124E551FC4FBD
-:1048D0004081518162817381848195810E949521FB
-:1048E0008091E90390E00196877099278093E9030E
-:1048F000D9CF4F81588569857A858B859C850E94A3
-:104900009521CFCF0E945C211092EA031092E90317
-:10491000EBE1F4E086E0DF011D928A95E9F7C1CF73
-:104920002C960FB6F894DEBF0FBECDBFDF91CF91AE
-:104930001F910895EF92FF920F931F93CF93DF93F0
-:104940008C01009709F46CC0F12CEE24E394E8018B
-:104950002196F8018491843740F4843008F051C0E6
-:10496000813081F0823019F15BC0853709F444C091
-:10497000A8F19CE7980F903708F052C08F770E94FB
-:10498000471D41C00E5F1F4FFE01C49180E28C0F96
-:10499000883048F4C7708E2D01C0880FCA95EAF799
-:1049A0000E94452714C08C2F0E947F1C2DC00E5FD3
-:1049B0001F4FFE01C49180E28C0F883058F4C770FD
-:1049C0008E2D01C0880FCA95EAF70E944B270E94DE
-:1049D0006C271AC08C2F0E94471D16C00E5F1F4FF8
-:1049E000FE01C491CC2381F08FE99FE00197F1F79C
-:1049F00000C00000C150F6CF0E5F1F4FFE01F490C3
-:104A000003C00E947F1C8E018F2D882309F49FCF45
-:104A1000EFE9FFE03197F1F700C000008150F5CFDA
-:104A2000DF91CF911F910F91FF90EF90089508951E
-:104A300060932504709326048093270490932804A0
-:104A40000C9448210F931F93009125041091260484
-:104A50002091270430912804DC01CB01802B912B7D
-:104A6000A22BB32B8093250490932604A0932704B4
-:104A7000B09328041F910F910C9448210F931F931A
-:104A800000912504109126042091270430912804D8
-:104A9000DC01CB0180239123A223B323809325043F
-:104AA00090932604A0932704B09328041F910F919C
-:104AB0000C9448210F931F93009125041091260414
-:104AC0002091270430912804DC01CB018027912715
-:104AD000A227B3278093250490932604A09327044C
-:104AE000B09328041F910F910C9448211092210437
-:104AF0001092220410922304109224040C94482152
-:104B000041E050E060E070E004C0440F551F661FB4
-:104B1000771F8A95D2F74093210450932204609323
-:104B20002304709324040C94482141E050E060E099
-:104B300070E004C0440F551F661F771F8A95D2F797
-:104B40008091210490912204A0912304B091240427
-:104B5000482B592B6A2B7B2B409321045093220422
-:104B600060932304709324040C94482141E050E0A6
-:104B700060E070E004C0440F551F661F771F8A95E0
-:104B8000D2F7409550956095709580912104909151
-:104B90002204A0912304B0912404482359236A23BA
-:104BA0007B23409321045093220460932304709349
-:104BB00024040C94482141E050E060E070E004C01F
-:104BC000440F551F661F771F8A95D2F780912104E5
-:104BD00090912204A0912304B091240448275927DE
-:104BE0006A277B2740932104509322046093230477
-:104BF000709324040C9448210F931F930091210477
-:104C0000109122042091230430912404DC01CB0173
-:104C1000802B912BA22BB32B809321049093220401
-:104C2000A0932304B09324041F910F910C94482166
-:104C30000F931F93009121041091220420912304CB
-:104C400030912404DC01CB0180239123A223B323E0
-:104C50008093210490932204A0932304B09324040E
-:104C60001F910F910C9448210F931F9300912104E1
-:104C7000109122042091230430912404DC01CB0103
-:104C800080279127A227B3278093210490932204A1
-:104C9000A0932304B09324041F910F910C944821F6
-:104CA0000895CF92DF92EF92FF920F931F93CF93CD
-:104CB000DF938C01C0902504D0902604E090270457
-:104CC000F09028048091210490912204A091230463
-:104CD000B0912404C82AD92AEA2AFB2ACFE1D0E0DD
-:104CE000D701C6010C2E04C0B695A7959795879558
-:104CF0000A94D2F780FF06C0B8018C2F0E94D30916
-:104D0000019721F4219760F780E001C08C2FDF919B
-:104D1000CF911F910F91FF90EF90DF90CF9008956A
-:104D2000CF93DF93EC010E945126BE010E94D3096C
-:104D3000DF91CF910895CB010E9490260895909124
-:104D40008402992321F090918502911109C020914C
-:104D5000860230918702F90132969FEF40E01FC032
-:104D6000982F9695969596959F3050F5E0918602EE
-:104D7000F0918702E90FF11D877021E030E0A90171
-:104D800002C0440F551F8A95E2F7CA019181892B11
-:104D9000818308959F3F39F04F5F4E3041F051912C
-:104DA0005813F8CF0DC05111F7CF942FF5CF9F3F77
-:104DB00039F0F901E90FF11D97FDFA958283089505
-:104DC000089590918402992321F090918502911188
-:104DD00009C02091860230918702F9013296205F46
-:104DE0003F4F1FC0982F9695969596959F30F0F45B
-:104DF000E0918602F0918702E90FF11D877021E0B2
-:104E000030E0A90102C0440F551F8A95E2F7CA019C
-:104E1000809591818923818308953196E217F30764
-:104E200029F090819813F9CF1082F7CF089581E08F
-:104E300090E0E0918602F0918702E80FF91F10825E
-:104E4000019680319105A9F7089590913C04892B32
-:104E500080933C040895809590913C04892380932D
-:104E60003C04089510923C04089590913B04892BD2
-:104E700080933B040895809590913B04892380930F
-:104E80003B04089510923B04089590913A04892BB5
-:104E900080933A040895809590913A0489238093F1
-:104EA0003A04089510923A040895809329040895CD
-:104EB0001092290408958091860290918702FC0146
-:104EC00031969C01205F3F4F80E0919191118F5F5F
-:104ED000E217F307D1F70895E0918602F091870277
-:104EE00080913C048083E0918602F091870290815A
-:104EF00080913B04892B8083E0918602F0918702A8
-:104F0000908180913A04892B8083809129048823A1
-:104F100061F0E0918602F09187029081892B808375
-:104F20000E945B2781111092290480918602909142
-:104F300087020C944B1B80915E04843039F11092EF
-:104F40003E0420E488E190E00FB6F894A8958093A1
-:104F500060000FBE2093600080E00E94300580E07A
-:104F60000E94AE0A83B7817F846083BF83B781606C
-:104F700083BF7894889583B78E7F83BF88E10FB60F
-:104F8000F89480936000109260000FBE0895089519
-:104F90000895CF9380E00E9430050E94C7270E94A9
-:104FA000650C0E94C827C0E08C2F0E94AE0D892B93
-:104FB00029F4CF5FC430C1F780E001C081E0CF9118
-:104FC00008950E945C2180E00E9430050E94562DC9
-:104FD0000E943F1B0C94AE0A1F920F920FB60F92C5
-:104FE00011248F939F93AF93BF9380913E048111BF
-:104FF00013C080913F0490914004A0914104B0916E
-:1050000042044196A11DB11D80933F04909340043A
-:10501000A0934104B0934204BF91AF919F918F91AF
-:105020000F900FBE0F901F90189582E084BD93E003
-:1050300095BD9AEF97BD80936E0008952FB7F894B1
-:1050400080913F0490914004A0914104B0914204AA
-:105050002FBF0895CF92DF92EF92FF920F931F938D
-:105060002FB7F89440913F0450914004609141045F
-:10507000709142042FBF6A017B01EE24FF248C0152
-:1050800020E030E0C016D106E206F30610F44150ED
-:1050900051099A01281B390BC9011F910F91FF90EB
-:1050A000EF90DF90CF9008951F920F920FB60F925E
-:1050B00011248F939F93AF93BF9380913F0490915E
-:1050C0004004A0914104B09142040196A11DB11D7C
-:1050D00080933F0490934004A0934104B093420412
-:1050E000BF91AF919F918F910F900FBE0F901F9026
-:1050F00018950E943C18F8942FEF87EA91E621500A
-:1051000080409040E1F700C0000087E090EBDC01B8
-:105110008093690490936A04A0936B04B0936C0429
-:105120009CE088E10FB6F894A895809360000FBECC
-:1051300090936000FFCF0E94DA28811102C00E9484
-:10514000B6280E94E52880933D040E94F2288093AF
-:10515000670487FB882780F9809385020E94E928ED
-:10516000682F70E080E090E00C9418256DEE7EEFE3
-:1051700080E090E00E94093260E082E090E00E94CE
-:10518000F73160E083E090E00E94F73160E084E076
-:1051900090E00E94F73160E085E090E00E94F731F6
-:1051A00060E086E090E00E94F7316FEF87E090E0EA
-:1051B0000C94F73180E090E00E94F13121E08D3EC7
-:1051C0009E4F09F020E0822F089582E090E00C9439
-:1051D000E93183E090E00C94E931682F83E090E0BE
-:1051E0000C94F73184E090E00C94E931682F84E06E
-:1051F00090E00C94F73186E090E00C94E931682F50
-:1052000086E090E00C94F73187E090E00C94E9316F
-:10521000682F87E090E00C94F7318091450480FF7F
-:105220000BC060918B0285E0689FB00111247595D9
-:105230006795759567952BC081FF09C060918B02BA
-:1052400085E0689FB00111247595679520C082FFA5
-:1052500007C060918B0285E0689FB001112417C0E0
-:10526000909146049923D1F060918A02961788F7AD
-:1052700020918B0285E0289F90011124929FA0012C
-:10528000939F500D112470E0CA010E94CF31603805
-:10529000710540F46115710539F002C065E070E0F8
-:1052A000862F08958FE7089581E008958091450441
-:1052B00080FF08C06091890270E0759567957595CB
-:1052C000679521C081FF06C06091890270E07595E5
-:1052D000679519C082FF04C06091890270E010C018
-:1052E000909146049923C1F0609188029617A0F727
-:1052F00080918902899FC001112470E00E94CF3102
-:105300006038710528F46115710521F0862F089524
-:105310008FE7089581E0089561E070E0F4CF803F69
-:1053200021F40E940D29819504C0813F29F40E9437
-:105330000D29809349040895823F21F40E940D298C
-:10534000819504C0833F29F40E940D29809348046D
-:105350000895893F19F40E94562905C08A3F31F407
-:105360000E945629819580934A0408958B3F21F429
-:105370000E945629819504C08C3F29F40E94562929
-:1053800080934B040895843F21F480914704816009
-:1053900017C0853F21F480914704826011C0863F89
-:1053A00021F48091470484600BC0873F21F48091F1
-:1053B0004704886005C0883F31F4809147048061CC
-:1053C0008093470408958D3F21F4809145048160C6
-:1053D0000BC08E3F21F480914504826005C08F3F51
-:1053E00029F4809145048460809345040895803FAA
-:1053F00039F48091490487FF6CC01092490469C058
-:10540000813F29F4809149041816BCF362C0909141
-:105410004804823F29F497FF5CC01092480459C0A9
-:10542000833F19F41916CCF354C0893F41F480919D
-:105430004A0418160CF04DC010924A044AC08A3F24
-:1054400029F480914A0487FF44C0F6CF8B3F39F49A
-:1054500080914B0487FF3DC010924B043AC08C3FB3
-:1054600029F480914B041816BCF333C0843F21F417
-:10547000809147048E7F17C0853F21F480914704B7
-:105480008D7F11C0863F21F4809147048B7F0BC034
-:10549000873F21F480914704877F05C0883F31F41E
-:1054A000809147048F7E8093470413C08D3F21F481
-:1054B000809145048E7F0BC08E3F21F4809145047E
-:1054C0008D7F05C08F3F29F4809145048B7F8093A9
-:1054D00045048091480481110EC0809149048111D6
-:1054E0000AC080914A04811106C080914B04811149
-:1054F00002C010924604089587E494E00E94561B6F
-:105500000E941E28909344048093430408951F939F
-:10551000CF93DF9380914304909144040E942A2802
-:10552000AC0190914604992321F020918C0230E047
-:1055300006C020918D028AE0289F90011124421715
-:10554000530708F486C080914804C0914904D09163
-:105550004A0410914B04811107C0C11176C0D111CA
-:1055600074C0111172C075C09F3F19F09F5F909376
-:105570004604181624F40E940D2980934804809153
-:10558000480487FF05C00E940D2981958093480437
-:105590001C1624F40E940D2980934904809149042B
-:1055A00087FF05C00E940D29819580934904609171
-:1055B0004804662339F1C0914904CC2319F17727B7
-:1055C00067FD7095872F972F0E94F12E23E333E319
-:1055D00043E35FE30E9401300E94BE2E60934804C3
-:1055E0006C2F772767FD7095872F972F0E94F12EDC
-:1055F00023E333E343E35FE30E9401300E94BE2EC6
-:10560000609349041D1624F40E94562980934A048D
-:1056100080914A0487FF05C00E9456298195809396
-:105620004A04111624F40E94562980934B04809159
-:105630004B0487FF05C00E945629819580934B0437
-:10564000DF91CF911F910C947C2A9F3F09F08ECF60
-:1056500096CFDF91CF911F910895E7E4F4E085E0C4
-:10566000DF011D928A95E9F71092460410924504D5
-:105670000895833081F128F4813059F08230D1F0DF
-:105680000895853009F449C0B8F1863009F456C050
-:10569000089580918D02262F30E0280F311D2F3F75
-:1056A000310524F4680F60938D0208958FEF809385
-:1056B0008D02089580918C02262F30E0280F311D35
-:1056C0002F3F310524F4680F60938C0208958FEF0B
-:1056D00080938C02089580918B02262F30E0280F52
-:1056E000311D2F3F310524F4680F60938B0208951C
-:1056F0008FEF80938B02089580918A02262F30E0ED
-:10570000280F311D2F3F310524F4680F60938A0262
-:1057100008958FEF80938A02089580918902262F41
-:1057200030E0280F311D2F3F310524F4680F6093BE
-:10573000890208958FEF80938902089580918802ED
-:10574000262F30E0280F311D2F3F310524F4680F3C
-:105750006093880208958FEF8093880208958330C4
-:1057600011F128F4813049F0823091F008958530AC
-:1057700081F120F18630C1F1089580918D02681782
-:1057800020F4861B80938D02089510928D02089557
-:1057900080918C02681720F4861B80938C020895F8
-:1057A00010928C02089580918B02681720F4861B5A
-:1057B00080938B02089510928B02089580918A0243
-:1057C000681720F4861B80938A02089510928A023B
-:1057D000089580918902681720F4861B80938902BE
-:1057E000089510928902089580918802681720F424
-:1057F000861B8093880208951092880208950F9363
-:105800001F93873208F048C08E3108F094C0803171
-:1058100009F47EC008F5873009F468C068F4863062
-:1058200009F0A4C080913D04817F8E7F80933D0468
-:1058300081E080934D049BC08B3009F490C08E3082
-:1058400009F094C080913D0482FB222720F991E069
-:10585000922790FB82F965C0863109F480C060F41C
-:10586000813109F083C00E945C219091850281E022
-:1058700089278093850273C0893109F470C08B3108
-:1058800009F074C080913D0481FB222720F991E04A
-:10589000922790FB81F945C0883309F460C050F429
-:1058A000893209F45EC0853309F45BC0873209F49C
-:1058B00058C05CC0833409F454C028F48A3308F417
-:1058C00055C0895339C0883409F050C00E945C210A
-:1058D0000E946C060FEF13ED20E3015010402040B2
-:1058E000E1F700C000000E94792839C090913D0482
-:1058F000892F8095817080FB90F929F096609860DF
-:1059000090933D0434C0997F977F90933D0427C0C6
-:1059100080913D0483FB222720F991E0922790FBA0
-:1059200083F980933D049923D1F080913D048160F7
-:1059300080933D0414C08D5141E050E060E070E080
-:105940008A019B0104C0000F111F221F331F8A957B
-:10595000D2F7C901B8010E9418250E945C2181E09C
-:1059600006C061E070E080E090E0F5CF80E01F913C
-:105970000F91089580E0089580E00895CF93C82F97
-:1059800080914D04813069F018F08230C9F184C0F3
-:10599000E0918602F09187028081823209F07EC018
-:1059A00007C0E0918602F09187028081823261F423
-:1059B0008C2F0E94BA2C811104C08C2F0E94FF2BC7
-:1059C0001DC081E090E01AC08C2F0E94BC2C811178
-:1059D00014C0C43179F048F4CB3079F0C03109F00B
-:1059E00061C082E080934D0408C0C93219F0C83309
-:1059F00021F058C010924D0455C081E0817054C010
-:105A0000C93291F120F5C43179F1B0F4C73009F011
-:105A100047C08EE180938D0282E380938C028AE0FE
-:105A200080938B0284E180938A0288E080938902CC
-:105A300088E28093880234C0CE51C63088F5EC2FBE
-:105A4000F0E0E85AFC4F808180934C0429C0CE34AA
-:105A5000E9F020F4CB3421F56AE013C0C13579F0C8
-:105A6000C235F1F461E00DC080914C04882319F037
-:105A700010924C0415C081E080934D0415C061E084
-:105A800006C080914C040E94392B0AC06AE08091C4
-:105A90004C040E94AF2B04C010924D0480E004C05F
-:105AA00081E002C080E0AACFCF9108950E94DA2859
-:105AB000811102C00E94B6280E94FB2880936804CE
-:105AC00080FF02C0869501C080E00C943005809173
-:105AD0006804982F9695292F30E0233031054CF437
-:105AE0009F5F990F8170892B8160809368040E9469
-:105AF000FF288091680486950C9430058091680495
-:105B0000982F969591F09158990F8170892B8093D9
-:105B100068048E7F91E009F490E08091680490FB26
-:105B200080F9809368040E94FF288091680486951C
-:105B30000C94300580916804982F909590FB80F923
-:105B4000809368040E94FF288091680480FF02C04F
-:105B5000869501C080E00C94300590916804892FEF
-:105B600086958F5F8F779170843028F4880F892B0A
-:105B70008093680402C090936804809168048E7FCB
-:105B800091E009F490E08091680490FB80F98093A3
-:105B900068040E94FF288091680486950C94300563
-:105BA00020916804922F96958927982F990F822F1C
-:105BB0008170892B809368048E7F91E009F490E0D6
-:105BC0008091680490FB80F9809368040E94FF280C
-:105BD0008091680486950C9430055058BB27AA27FD
-:105BE0000ED0D1C1C2D130F0C7D120F031F49F3FE7
-:105BF00011F41EF4B7C10EF4E095E7FB9FC1E92F45
-:105C0000D3D180F3BA17620773078407950718F09A
-:105C100071F49EF5EBC10EF4E0950B2EBA2FA02D7A
-:105C20000B01B90190010C01CA01A0011124FF2749
-:105C3000591B99F0593F50F4503E68F11A16F04044
-:105C4000A22F232F342F4427585FF3CF4695379543
-:105C50002795A795F0405395C9F77EF41F16BA0B08
-:105C6000620B730B840BBAF09150A1F0FF0FBB1FB6
-:105C7000661F771F881FC2F70EC0BA0F621F731FFF
-:105C8000841F48F4879577956795B795F7959E3F5C
-:105C900008F0B3CF9395880F08F09927EE0F9795EA
-:105CA0008795089527D108F481E008950CD06BC141
-:105CB00063D140F05AD130F021F45F3F19F03EC17A
-:105CC000511195C14FC170D198F39923C9F3552350
-:105CD000B1F3951B550BBB27AA27621773078407DF
-:105CE00038F09F5F5F4F220F331F441FAA1FA9F395
-:105CF00033D00E2E3AF0E0E830D091505040E69587
-:105D0000001CCAF729D0FE2F27D0660F771F881FE7
-:105D1000BB1F261737074807AB07B0E809F0BB0BD6
-:105D2000802DBF01FF2793585F4F2AF09E3F5105FA
-:105D300068F004C15CC15F3FECF3983EDCF38695EC
-:105D400077956795B795F7959F5FC9F7880F911D70
-:105D50009695879597F90895E1E0660F771F881F5C
-:105D6000BB1F621773078407BA0720F0621B730B0F
-:105D7000840BBA0BEE1F88F7E095089504D0689461
-:105D8000B11135C1089518D188F09F5790F0B92FFF
-:105D90009927B751A0F0D1F0660F771F881F991F80
-:105DA0001AF0BA95C9F712C0B13081F01FD1B1E035
-:105DB00008951CC1672F782F8827B85F39F0B93F45
-:105DC000CCF3869577956795B395D9F73EF4909582
-:105DD0008095709561957F4F8F4F9F4F0895E89400
-:105DE00009C097FB3EF490958095709561957F4F23
-:105DF0008F4F9F4F9923A9F0F92F96E9BB279395D1
-:105E0000F695879577956795B795F111F8CFFAF4E0
-:105E1000BB0F11F460FF1BC06F5F7F4F8F4F9F4F11
-:105E200016C0882311F096E911C0772321F09EE86F
-:105E3000872F762F05C0662371F096E8862F70E0D5
-:105E400060E02AF09A95660F771F881FDAF7880FAF
-:105E50009695879597F9089588D018F011F08CD011
-:105E600038F480C0C4C0E92F9FD0B0F35523C9F3E4
-:105E7000E7FB6217730784079507A8F199F3E92FE9
-:105E8000FF2788232AF03197660F771F881FDAF7DC
-:105E9000952F5527442332F091505040220F331F45
-:105EA000441FD2F7BB27E91BF50B621B730B840B56
-:105EB000B109C1F222F4620F731F841FB11D319723
-:105EC0002AF0660F771F881FBB1FEFCF91505040FD
-:105ED0005AF041F0882332F0660F771F881F9150E7
-:105EE0005040C1F7939530C08695779567959F5F31
-:105EF000D9F7F8CF990F0008550FAA0BE0E8FEEF8D
-:105F000016161706E807F907C0F012161306E4077D
-:105F1000F50798F0621B730B840B950B39F40A2676
-:105F200061F0232B242B252B21F408950A2609F454
-:105F3000A140A6958FEF811D811D089597F99F6758
-:105F400080E870E060E008959F3F31F0915020F4C8
-:105F5000879577956795B795880F911D9695879545
-:105F600097F908959FEF80EC089500240A9416167F
-:105F7000170618060906089500240A941216130637
-:105F8000140605060895092E0394000C11F48823C5
-:105F900052F0BB0F40F4BF2B11F460FF04C06F5FE1
-:105FA0007F4F8F4F9F4F089557FD9058440F551FB7
-:105FB00059F05F3F71F04795880F97FB991F61F08B
-:105FC0009F3F79F087950895121613061406551F02
-:105FD000F2CF4695F1DF08C0161617061806991F6E
-:105FE000F1CF86957105610508940895E894BB2763
-:105FF00066277727CB0197F908957CDF08F48FEFA8
-:1060000008950BD0C0CFB1DF28F0B6DF18F095238C
-:1060100009F094CFA7CF1124EACFC6DFA0F3959F54
-:10602000D1F3950F50E0551F629FF001729FBB277F
-:10603000F00DB11D639FAA27F00DB11DAA1F649F2B
-:106040006627B00DA11D661F829F2227B00DA11DDE
-:10605000621F739FB00DA11D621F839FA00D611D64
-:10606000221F749F3327A00D611D231F849F600D85
-:10607000211D822F762F6A2F11249F5750408AF0BE
-:10608000E1F088234AF0EE0FFF1FBB1F661F771F4A
-:10609000881F91505040A9F79E3F510570F04ECF98
-:1060A000A6CF5F3FECF3983EDCF386957795679536
-:1060B000B795F795E7959F5FC1F7FE2B880F911D68
-:1060C0009695879597F90895FA01EE0FFF1F309680
-:1060D0002105310599F16115710561F48038BFE33F
-:1060E0009B0749F168949038810561F08038BFEFD3
-:1060F0009B0741F0992342F5FF3FE105310521055A
-:1061000011F1E8940894E795D901AA2329F4AB2F5B
-:10611000BE2FF85FD0F310C0FF5F70F4A695E0F7D4
-:10612000F73950F019F0FF3A38F49F779F930CD06D
-:106130000F9007FC905808953EF014CF60E070E097
-:1061400080E89FE308954FE79F775F934F933F93D6
-:106150002F939ED02F913F914F915F9152DF05C0B9
-:1061600019F40EF0EBCE42CFFDCE26DFC8F3963801
-:10617000C0F707F80F92E8942BE33AEA48EB5FE7A1
-:106180004EDF0F920F920F924DB75EB70F92C0D0B5
-:10619000ECEFF0E016D04F915F91EF91FF91E59514
-:1061A000EE1FFF1F49F0FE57E0684427EE0F441F23
-:1061B000FA95E1F74195550B32D00F9007FE26C0B6
-:1061C0000895DF93CF931F930F93FF92EF92DF9287
-:1061D0007B018C01689405C0DA2EEF011EDFFE0101
-:1061E000E894A5912591359145915591AEF3EF0134
-:1061F00006DDFE019701A801DA9479F7DF90EF90B0
-:10620000FF900F911F91CF91DF9108959B01AC01F9
-:1062100060E070E080E89FE349CD90CE95CECCDE83
-:10622000E8F39923D9F3940F511DBBF391505040DB
-:1062300094F059F0882332F0660F771F881F915031
-:106240005040C1F79E3F510544F7880F911D969528
-:10625000879597F908955F3FACF0983E9CF0BB2777
-:10626000869577956795B79508F4B1609395C1F7D2
-:10627000BB0F58F711F460FFE8CF6F5F7F4F8F4F70
-:106280009F4FE3CFB4CE0EF05FCE6CCE689456CE67
-:1062900093DEC8F39923D1F3C6F3DF93CF931F9313
-:1062A0000F93FF92C92FDD2788232AF02197660FCD
-:1062B000771F881FDAF720E030E040E85FEB9FE3CC
-:1062C000883920F0803E30F021968F7787DCE4E239
-:1062D000F1E003C083DCE1E5F1E073DF8B01BE0197
-:1062E000EC01FB2E6F5771097595771F880B990B81
-:1062F00078DD28E132E741E35FE38FDEAF2D9801DF
-:10630000AE01FF900F911F91CF91DF9178DC3BCED2
-:10631000FA01DC01AA0FBB1F9B01AC01BF5728F497
-:1063200022273327442750781FC0B75188F4AB2F5A
-:106330000024469537952795011CA395D2F300209C
-:1063400069F0220F331F441FB395DAF30DD045CC0B
-:1063500061307105A0E88A07B94630F49B01AC01B1
-:106360006627772788279078309621F0208331831D
-:10637000428353830895AA1BBB1B51E107C0AA1F88
-:10638000BB1FA617B70710F0A61BB70B881F991FD6
-:106390005A95A9F780959095BC01CD01089597FB7A
-:1063A000072E16F4009407D077FD09D00E94BB3168
-:1063B00007FC05D03EF4909581959F4F0895709508
-:1063C00061957F4F0895EE0FFF1F0590F491E02D2A
-:1063D0000994F999FECF92BD81BDF89A992780B5AD
-:1063E0000895A8E1B0E042E050E00C941132262F6D
-:1063F000F999FECF92BD81BDF89A019700B40216BB
-:1064000039F01FBA20BD0FB6F894FA9AF99A0FBE68
-:1064100008950196272F0E94F8310C94F731DC0182
-:10642000CB01FC01F999FECF06C0F2BDE1BDF89A9F
-:10643000319600B40D9241505040B8F70895F89449
-:02644000FFCF8C
-:106442000C52D02445000000410000DC4400000052
-:106452004152D0A4440000404100005C44000000CE
-:106462004148F17644000000415C978A44000000F4
-:10647200411FD592440000004152D0A444000000C4
-:10648200415CFFB844000000410AA7CF440000006D
-:10649200410000DC44000000410AA7CF4400000094
-:1064A200410000DC440000004100000000000080C8
-:1064B2004000005C450000404100000000000080F8
-:1064C2004052D02445000040410AA7CF44000000BA
-:1064D200410000DC44000000410000000000008098
-:1064E2004052D024450000404100000000000080DE
-:1064F2004000005C45000040410AA7CF4400000074
-:10650200410000DC44000000410000000000008067
-:106512004052D024450000404100000000000080AD
-:10652200400AA74F45000040410AA7CF440000009F
-:10653200410000DC44000000410000000000008037
-:106542004052D024450000004100000000000080BD
-:10655200405CFF3845000000410000000000008060
-:106562004052D02445000000410AA7CF4400000059
-:10657200410000DC440000004100000000000080F7
-:106582004052D024450000804153D02445000040B1
-:106592004160970A450000004154D0A44400000025
-:1065A200410000DC440000004160970A450000A061
-:1065B20041050000003F0000C8424314D114AE144C
-:1065C2007A14461401012A042808140A321E000013
-:1065D200020004000500070009000B000C000E0079
-:1065E2001000110013001500170018001A001C00FB
-:1065F2001D001F002100230024002600280029007E
-:106602002B002D002F0030003200340035003700FF
-:1066120039003B0040004500250026006100600073
-:1066220020003700640065006600670044004600F1
-:10663200240047003149803F5D8B803FF8BF803F97
-:10664200CAE1803F73ED803FCAE1803FF8BF803FDF
-:106652005D8B803F3149803F0000803FF16D7F3F7D
-:1066620075EA7E3F4C827E3F833F7E3F84287E3F99
-:10667200833F7E3F4C827E3F75EA7E3FF16D7F3FD6
-:106682000000803F3F4D363975092809F208B908E4
-:106692004C0865087E0897080102030405060708EE
-:0266A2000900ED
-:00000001FF
|