summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcpldcpu <cpldcpu@gmail.com>2016-02-13 21:35:02 +0100
committercpldcpu <cpldcpu@gmail.com>2016-02-13 21:35:02 +0100
commit24d371d5e75bf55a70a412a9f544a19614ff56f4 (patch)
tree90667050411604f33ef37127debbad6cc8b39d65
parenta84f9b262f0b9218356f261277f19208eea60904 (diff)
downloadmicronucleus-24d371d5e75bf55a70a412a9f544a19614ff56f4.tar.gz
micronucleus-24d371d5e75bf55a70a412a9f544a19614ff56f4.tar.bz2
micronucleus-24d371d5e75bf55a70a412a9f544a19614ff56f4.zip
firmware: v2.03 release
-rw-r--r--Readme.txt22
-rw-r--r--firmware/configuration/BitBoss/Makefile.inc60
-rw-r--r--firmware/configuration/BitBoss/bootloaderconfig.h267
-rw-r--r--firmware/main.c12
-rw-r--r--firmware/out256
-rw-r--r--firmware/out_borked.hex256
-rw-r--r--firmware/releases/Nanite841.hex67
-rw-r--r--firmware/releases/t167_default.hex64
-rw-r--r--firmware/releases/t45_default.hex62
-rw-r--r--firmware/releases/t841_default.hex66
-rw-r--r--firmware/releases/t84_default.hex64
-rw-r--r--firmware/releases/t85_aggressive.hex61
-rw-r--r--firmware/releases/t85_default.hex62
13 files changed, 1085 insertions, 234 deletions
diff --git a/Readme.txt b/Readme.txt
index 6b3841a..e85e82f 100644
--- a/Readme.txt
+++ b/Readme.txt
@@ -1,4 +1,4 @@
-Micronucleus V2.02
+Micronucleus V2.03
==================
Micronucleus is a bootloader designed for AVR ATtiny microcontrollers with a minimal usb interface, cross platform libusb-based program upload tool, and a strong emphasis on bootloader compactness. To the authors knowledge this is, by far, the smallest USB bootloader for AVR ATtiny
@@ -44,12 +44,12 @@ To allow maximum flexibility, micronucleus supports a configuration system. To c
Currently, the following configurations are included and tested. Please check the subfolders /firmware/configurations/ for details. Hex files can be found in /releases.
-t84_default - ATtiny84A default configuration - 1538 bytes
-t841_default - ATtiny841 default configuration - 1590 bytes
-t85_default - ATtiny85 default configuration - 1592 bytes
-t85_aggressive - ATtiny85 smaller size - critical - 1422 bytes
-t167_default - ATtiny167 default (uses xtal) - 1418 bytes
-Nanite841 - Nanite841 firmware - 1614 bytes
+t84_default - ATtiny84A default configuration - 1544 bytes
+t841_default - ATtiny841 default configuration - 1596 bytes
+t85_default - ATtiny85 default configuration - 1598 bytes
+t85_aggressive - ATtiny85 smaller size - critical - 1428 bytes
+t167_default - ATtiny167 default (uses xtal) - 1424 bytes
+Nanite841 - Nanite841 firmware - 1620 bytes
You can add your own configuration by adding a new folder to /firmware/configurations/. The folder has to contain a customized "Makefile.inc" and "bootloaderconfig.h". Feel free to supply a pull request if you added and tested a previously unsupported device.
@@ -114,13 +114,17 @@ Changes
- Fixes timing bug with Windows 10 USB drivers. Some Win 10 drivers reduce the
delay between reset and the first data packet to 20 ms. This led to an issue
with osccalASM.S, which did not terminate correctly.
-
+
+• v2.03 February 13th, 2016
+ - Added page buffer clearing if a new block transfer is initiated. This fixes a
+ critical, but extremely rare bug that could lead to bricking of the
+ device if micronucleus is restarted after an USB error.
Credits
=======
Firmware:
- • Micronucleus V2.01 (c) 2015 Tim Bo"scke - cpldcpu@gmail.com
+ • Micronucleus V2.03 (c) 2016 Tim Bo"scke - cpldcpu@gmail.com
(c) 2014 Shay Green
• Original Micronucleus (c) 2012 Jenna Fox
• Based on USBaspLoader-tiny85 (c) 2012 Louis Beaudoin
diff --git a/firmware/configuration/BitBoss/Makefile.inc b/firmware/configuration/BitBoss/Makefile.inc
new file mode 100644
index 0000000..e147248
--- /dev/null
+++ b/firmware/configuration/BitBoss/Makefile.inc
@@ -0,0 +1,60 @@
+# Name: Makefile
+# Project: Micronucleus
+# License: GNU GPL v2 (see License.txt)
+#
+# Controller type: ATtiny 841
+# Configuration: Default configuration - 12 Mhz RC oscillator
+# Last Change: Mar 16,2014
+
+
+F_CPU = 12000000
+DEVICE = attiny841
+
+# hexadecimal address for bootloader section to begin. To calculate the best value:
+# - make clean; make main.hex; ### output will list data: 2124 (or something like that)
+# - for the size of your device (8kb = 1024 * 8 = 8192) subtract above value 2124... = 6068
+# - How many pages in is that? 6068 / 64 (tiny85 page size in bytes) = 94.8125
+# - round that down to 94 - our new bootloader address is 94 * 64 = 6016, in hex = 1780
+BOOTLOADER_ADDRESS = 1980
+
+FUSEOPT = -U lfuse:w:0xe2:m -U hfuse:w:0xdd:m -U efuse:w:0xfe:m
+FUSEOPT_DISABLERESET = # TODO
+
+#---------------------------------------------------------------------
+# ATtiny841
+#---------------------------------------------------------------------
+# Fuse extended byte:
+# 0xFE = 1 1 1 1 1 1 1 0
+# ^
+# |
+# +---- SELFPRGEN (enable self programming flash)
+#
+# Fuse high byte:
+# 0xdd = 1 1 0 1 1 1 0 1
+# ^ ^ ^ ^ ^ \-+-/
+# | | | | | +------ BODLEVEL 2..0 (brownout trigger level -> 2.7V)
+# | | | | +---------- EESAVE (preserve EEPROM on Chip Erase -> not preserved)
+# | | | +-------------- WDTON (watchdog timer always on -> disable)
+# | | +---------------- SPIEN (enable serial programming -> enabled)
+# | +------------------ DWEN (debug wire enable)
+# +-------------------- RSTDISBL (disable external reset -> enabled)
+#
+# Fuse high byte ("no reset": external reset disabled, can't program through SPI anymore)
+# 0x5d = 0 1 0 1 1 1 0 1
+# ^ ^ ^ ^ ^ \-+-/
+# | | | | | +------ BODLEVEL 2..0 (brownout trigger level -> 2.7V)
+# | | | | +---------- EESAVE (preserve EEPROM on Chip Erase -> not preserved)
+# | | | +-------------- WDTON (watchdog timer always on -> disable)
+# | | +---------------- SPIEN (enable serial programming -> enabled)
+# | +------------------ DWEN (debug wire enable)
+# +-------------------- RSTDISBL (disable external reset -> disabled!)
+#
+# Fuse low byte:
+# 0xe2 = 1 1 1 0 0 0 1 0
+# ^ ^ \+/ \--+--/
+# | | | +------- CKSEL 3..0 (clock selection -> RC Oscillator)
+# | | +--------------- SUT 1..0 (BOD enabled, fast rising power)
+# | +------------------ CKOUT (clock output on CKOUT pin -> disabled)
+# +-------------------- CKDIV8 (divide clock by 8 -> don't divide)
+
+
diff --git a/firmware/configuration/BitBoss/bootloaderconfig.h b/firmware/configuration/BitBoss/bootloaderconfig.h
new file mode 100644
index 0000000..0e6d6af
--- /dev/null
+++ b/firmware/configuration/BitBoss/bootloaderconfig.h
@@ -0,0 +1,267 @@
+/* Name: bootloaderconfig.h
+ * Micronucleus configuration file.
+ * This file (together with some settings in Makefile.inc) configures the boot loader
+ * according to the hardware.
+ *
+ * Controller type: ATtiny 841 - 12 MHz
+ * Configuration: Default configuration
+ * USB D- : PB0
+ * USB D+ : PB1
+ * Entry : Always
+ * LED : PB2, Active Low
+ * OSCCAL : Revert to precalibrated value (8 MHz)
+ * Note: can use 12 MHz V-USB without PLL due to stable RC-osc in ATTiny841
+ * Flash write time may be too low.
+ * Last Change: Mar 16,2014
+ *
+ * License: GNU GPL v2 (see License.txt
+ */
+
+#ifndef __bootloaderconfig_h_included__
+#define __bootloaderconfig_h_included__
+
+/* ------------------------------------------------------------------------- */
+/* Hardware configuration. */
+/* Change this according to your CPU and USB configuration */
+/* ------------------------------------------------------------------------- */
+
+#define USB_CFG_IOPORTNAME B
+ /* This is the port where the USB bus is connected. When you configure it to
+ * "B", the registers PORTB, PINB and DDRB will be used.
+ */
+
+#define USB_CFG_DMINUS_BIT 0
+/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
+ * This may be any bit in the port.
+ */
+#define USB_CFG_DPLUS_BIT 1
+/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
+ * This may be any bit in the port, but must be configured as a pin change interrupt.
+ */
+
+#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
+/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
+ * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
+ * require no crystal, they tolerate +/- 1% deviation from the nominal
+ * frequency. All other rates require a precision of 2000 ppm and thus a
+ * crystal!
+ * Since F_CPU should be defined to your actual clock rate anyway, you should
+ * not need to modify this setting.
+ */
+
+/* ------------- Set up interrupt configuration (CPU specific) -------------- */
+/* The register names change quite a bit in the ATtiny family. Pay attention */
+/* to the manual. Note that the interrupt flag system is still used even though */
+/* interrupts are disabled. So this has to be configured correctly. */
+
+
+// setup interrupt for Pin Change for D+
+#define USB_INTR_CFG PCMSK1
+#define USB_INTR_CFG_SET (1 << USB_CFG_DPLUS_BIT)
+#define USB_INTR_CFG_CLR 0
+#define USB_INTR_ENABLE GIMSK
+#define USB_INTR_ENABLE_BIT PCIE1
+#define USB_INTR_PENDING GIFR
+#define USB_INTR_PENDING_BIT PCIF1
+#define USB_INTR_VECTOR PCINT1_vect
+
+/* ------------------------------------------------------------------------- */
+/* Configuration relevant to the CPU the bootloader is running on */
+/* ------------------------------------------------------------------------- */
+
+// how many milliseconds should host wait till it sends another erase or write?
+// needs to be above 4.5 (and a whole integer) as avr freezes for 4.5ms
+
+// Set bit 7 to reduce wait time for page erase by factor of four
+#define MICRONUCLEUS_WRITE_SLEEP 128 + 5
+
+// ATtiny841 does not know OSCCAL
+#ifndef OSCCAL
+#define OSCCAL OSCCAL0
+#endif
+
+/* ---------------------- feature / code size options ---------------------- */
+/* Configure the behavior of the bootloader here */
+/* ------------------------------------------------------------------------- */
+
+/*
+ * Define Bootloader entry condition
+ *
+ * If the entry condition is not met, the bootloader will not be activated and the user program
+ * is executed directly after a reset. If no user program has been loaded, the bootloader
+ * is always active.
+ *
+ * ENTRY_ALWAYS Always activate the bootloader after reset. Requires the least
+ * amount of code.
+ *
+ * ENTRY_WATCHDOG Activate the bootloader after a watchdog reset. This can be used
+ * to enter the bootloader from the user program.
+ * Adds 22 bytes.
+ *
+ * ENTRY_EXT_RESET Activate the bootloader after an external reset was issued by
+ * pulling the reset pin low. It may be necessary to add an external
+ * pull-up resistor to the reset pin if this entry method appears to
+ * behave unreliably.
+ * Adds 22 bytes.
+ *
+ * ENTRY_JUMPER Activate the bootloader when a specific pin is pulled low by an
+ * external jumper.
+ * Adds 34 bytes.
+ *
+ * JUMPER_PIN Pin the jumper is connected to. (e.g. PB0)
+ * JUMPER_PORT Port out register for the jumper (e.g. PORTB)
+ * JUMPER_DDR Port data direction register for the jumper (e.g. DDRB)
+ * JUMPER_INP Port inout register for the jumper (e.g. PINB)
+ *
+ */
+
+#define ENTRYMODE ENTRY_JUMPER
+
+#define JUMPER_PIN PA0
+#define JUMPER_PORT PORTA
+#define JUMPER_DDR DDRA
+#define JUMPER_INP PINA
+
+/*
+ Internal implementation, don't change this unless you want to add an entrymode.
+*/
+
+#define ENTRY_ALWAYS 1
+#define ENTRY_WATCHDOG 2
+#define ENTRY_EXT_RESET 3
+#define ENTRY_JUMPER 4
+
+#if ENTRYMODE==ENTRY_ALWAYS
+ #define bootLoaderInit()
+ #define bootLoaderExit()
+ #define bootLoaderStartCondition() 1
+#elif ENTRYMODE==ENTRY_WATCHDOG
+ #define bootLoaderInit()
+ #define bootLoaderExit()
+ #define bootLoaderStartCondition() (MCUSR&_BV(WDRF))
+#elif ENTRYMODE==ENTRY_EXT_RESET
+ #define bootLoaderInit()
+ #define bootLoaderExit()
+ #define bootLoaderStartCondition() (MCUSR&_BV(EXTRF))
+#elif ENTRYMODE==ENTRY_JUMPER
+ // Enable pull up on jumper pin and delay to stabilize input
+ #define bootLoaderInit() {JUMPER_DDR&=~_BV(JUMPER_PIN);JUMPER_PORT|=_BV(JUMPER_PIN);_delay_ms(1);}
+ #define bootLoaderExit() {JUMPER_PORT&=~_BV(JUMPER_PIN);}
+ #define bootLoaderStartCondition() (!(JUMPER_INP&_BV(JUMPER_PIN)))
+#else
+ #error "No entry mode defined"
+#endif
+
+/*
+ * Define bootloader timeout value.
+ *
+ * The bootloader will only time out if a user program was loaded.
+ *
+ * AUTO_EXIT_NO_USB_MS The bootloader will exit after this delay if no USB is connected.
+ * Set to 0 to disable
+ * Adds ~6 bytes.
+ * (This will wait for an USB SE0 reset from the host)
+ *
+ * AUTO_EXIT_MS The bootloader will exit after this delay if no USB communication
+ * from the host tool was received.
+ * Set to 0 to disable
+ *
+ * All values are approx. in milliseconds
+ */
+
+#define AUTO_EXIT_NO_USB_MS 0
+#define AUTO_EXIT_MS 6000
+
+ /*
+ * Defines the setting of the RC-oscillator calibration after quitting the bootloader. (OSCCAL)
+ *
+ * OSCCAL_RESTORE_DEFAULT Set this to '1' to revert to OSCCAL factore calibration after bootlaoder exit.
+ * This is 8 MHz +/-2% on most devices or 16 MHz on the ATtiny 85 with activated PLL.
+ * Adds ~14 bytes.
+ *
+ * OSCCAL_SAVE_CALIB Set this to '1' to save the OSCCAL calibration during program upload.
+ * This value will be reloaded after reset and will also be used for the user
+ * program unless "OSCCAL_RESTORE_DEFAULT" is active. This allows calibrate the internal
+ * RC oscillator to the F_CPU target frequency +/-1% from the USB timing. Please note
+ * that only true if the ambient temperature does not change.
+ * Adds ~38 bytes.
+ *
+ * OSCCAL_HAVE_XTAL Set this to '1' if you have an external crystal oscillator. In this case no attempt
+ * will be made to calibrate the oscillator. You should deactivate both options above
+ * if you use this to avoid redundant code.
+ *
+ * If both options are selected, OSCCAL_RESTORE_DEFAULT takes precedence.
+ *
+ * If no option is selected, OSCCAL will be left untouched and stays at either factory calibration or F_CPU depending
+ * on whether the bootloader was activated. This will take the least memory. You can use this if your program
+ * comes with its own OSCCAL calibration or an external clock source is used.
+ */
+
+#define OSCCAL_ENTRY_ALWAYS
+#define OSCCAL_SAVE_CALIB 1
+#define OSCCAL_HAVE_XTAL 0
+
+/*
+ * Defines handling of an indicator LED while the bootloader is active.
+ *
+ * LED_MODE Define behavior of attached LED or suppress LED code.
+ *
+ * NONE Do not generate LED code (gains 18 bytes).
+ * ACTIVE_HIGH LED is on when output pin is high. This will toggle bettwen 1 and 0.
+ * ACTIVE_LOW LED is on when output pin is low. This will toggle between Z and 0.
+ *
+ * LED_DDR,LED_PORT,LED_PIN Where is your LED connected?
+ *
+ */
+
+#define LED_MODE ACTIVE_HIGH
+
+#define LED_DDR DDRB
+#define LED_PORT PORTB
+#define LED_PIN PB2
+
+/*
+ * This is the implementation of the LED code. Change the configuration above unless you want to
+ * change the led behavior
+ *
+ * LED_INIT Called once after bootloader entry
+ * LED_EXIT Called once during bootloader exit
+ * LED_MACRO Called in the main loop with the idle counter as parameter.
+ * Use to define pattern.
+*/
+
+#define NONE 0
+#define ACTIVE_HIGH 1
+#define ACTIVE_LOW 2
+
+#if LED_MODE==ACTIVE_HIGH
+ #define LED_INIT(x) LED_DDR = _BV(LED_PIN);
+ #define LED_EXIT(x) {LED_DDR &=~_BV(LED_PIN);LED_PORT &=~_BV(LED_PIN);}
+ #define LED_MACRO(x) if ( x & 0x4c ) {LED_PORT&=~_BV(LED_PIN);} else {LED_PORT|=_BV(LED_PIN);}
+#elif LED_MODE==ACTIVE_LOW
+ #define LED_INIT(x) LED_PORT &=~_BV(LED_PIN);
+ #define LED_EXIT(x) LED_DDR &=~_BV(LED_PIN);
+ #define LED_MACRO(x) if ( x & 0x4c ) {LED_DDR&=~_BV(LED_PIN);} else {LED_DDR|=_BV(LED_PIN);}
+#elif LED_MODE==NONE
+ #define LED_INIT(x)
+ #define LED_EXIT(x)
+ #define LED_MACRO(x)
+#endif
+
+/* --------------------------------------------------------------------------- */
+/* Micronucleus internal configuration. Do not change anything below this line */
+/* --------------------------------------------------------------------------- */
+
+// Microcontroller vectortable entries in the flash
+#define RESET_VECTOR_OFFSET 0
+
+// number of bytes before the boot loader vectors to store the tiny application vector table
+#define TINYVECTOR_RESET_OFFSET 4
+#define TINYVECTOR_OSCCAL_OFFSET 6
+
+/* ------------------------------------------------------------------------ */
+// postscript are the few bytes at the end of programmable memory which store tinyVectors
+#define POSTSCRIPT_SIZE 6
+#define PROGMEM_SIZE (BOOTLOADER_ADDRESS - POSTSCRIPT_SIZE) /* max size of user program */
+
+#endif /* __bootloader_h_included__ */
diff --git a/firmware/main.c b/firmware/main.c
index bcfa91e..8221105 100644
--- a/firmware/main.c
+++ b/firmware/main.c
@@ -1,7 +1,7 @@
/*
- * Project: Micronucleus - v2.1
+ * Project: Micronucleus - v2.3
*
- * Micronucleus V2.1 (c) 2015 Tim Bo"scke - cpldcpu@gmail.com
+ * Micronucleus V2.3 (c) 2016 Tim Bo"scke - cpldcpu@gmail.com
* (c) 2014 Shay Green
* Original Micronucleus (c) 2012 Jenna Fox
*
@@ -12,7 +12,7 @@
*/
#define MICRONUCLEUS_VERSION_MAJOR 2
-#define MICRONUCLEUS_VERSION_MINOR 2
+#define MICRONUCLEUS_VERSION_MINOR 3
#include <avr/io.h>
#include <avr/pgmspace.h>
@@ -175,6 +175,12 @@ static uint8_t usbFunctionSetup(uint8_t data[8]) {
if ( currentAddress.w != 0 ) {
currentAddress.b[0]=rq->wIndex.bytes[0] & (~ (SPM_PAGESIZE-1));
currentAddress.b[1]=rq->wIndex.bytes[1];
+
+ // clear page buffer as a precaution before filling the buffer in case
+ // a previous write operation failed and there is still something in the buffer.
+ __SPM_REG=(_BV(CTPB)|_BV(__SPM_ENABLE));
+ asm volatile("spm");
+
}
} else if (rq->bRequest == cmd_write_data) { // Write data
writeWordToPageBuffer(rq->wValue.word);
diff --git a/firmware/out b/firmware/out
new file mode 100644
index 0000000..976c81c
--- /dev/null
+++ b/firmware/out
@@ -0,0 +1,256 @@
+:20000000BFCC37C036C035C034C033C032C031C030C02FC02EC02DC02CC02BC02AC029C045
+:2000200028C027C026C025C024C023C022C021C020C01FC01EC01DC01CC01BC011241FBE59
+:20004000CFEFD2E0DEBFCDBF11E0A0E0B1E0E8E7FBE002C005900D92A033B107D9F721E009
+:20006000A0E3B1E001C01D92A633B207E1F7B9D181C5C6CF00C000C000C000C000C000C0AD
+:2000800000000895D798D698DF98DE980895D79AF1DF1DD00895D69AEDDFD798EBDFD698AE
+:2000A000E9DFD79AE7DF13D00895082ED79AE2DF802D0DD0882311F002D0F8CF0895D69A7D
+:2000C000D79AD8DFD698D6DFD798D4DF08950894881F01C0880F59F0D69A18F40000D79847
+:2000E00002C0D79A00C0C6DFD698C4DFF3CFD69AD798C0DFD698CE9BFECF8827CF9981E0FB
+:20010000B9DF99270895882701C081E071E0D69AD798B0DFD698AEDFCE9BFECF8894CF99A5
+:200120000894771FA0F7D69A813011F0D79801C0D79AA0DFD698CE9BFECF9CDF872F99271F
+:200140000895A0DFE3E6F0E080818064808380818068808386E49BDF87E4B9DFB0DF86E436
+:2001600096DF8EE7B4DFABDF86E491DF81E1AFDFA6CFCF92DF92EF92FF9287E488DFC5DFDF
+:20018000C82ED12CDC2CCC240D2C000CEE08FF08BADFC82AEE24FF2492DFFF92EF92DF927E
+:2001A000CF928EE091E09F938F9351D2C701B60121E730E040E050E0CAD1B901CA0128EE6B
+:2001C00033E040E050E09FD19F938F937F936F935F934F933F932F9385E191E09F938F9351
+:2001E00036D28DB79EB740960FB6F8949EBF0FBE8DBFFF90EF90DF90CF900895CF93B82FFF
+:20020000C62F21E030E0062E01C0220F0A94EAF74AB3422B4ABB40916300522F50954523C2
+:20022000409363004BB345234BBB40916000422B4093600088E28A95F1F74AB345234ABB70
+:2002400040E44CB944E04DB92F9818B869B945E043BF10BE4FEF5FE088E28A95F1F76599B1
+:200260000CC041E049BF12BE48B7416048BFE0E060E070E0CB01AFE014C059B9C9B941506E
+:2002800059F7EFCF659B06C0A9B9C9B96F5F7F4F8F4F9F4F08B600FEF5CFF8B7F160F8BF07
+:2002A000EF5FEB13F7CF3AB3232B2ABB29B72E7F29BFCF910895A82FB62F21E030E0062E99
+:2002C00001C0220F0A94EAF74AB3422B4ABB40916300522F50954523409363004BB34523A0
+:2002E0004BBB40916000422B409360004091600041604093600040EC48B988E28A95F1F784
+:200300004AB345234ABB40E44CB944E04DB92F9869B945E043BF10BE4FEF88E28A95F1F793
+:2003200065990BC041E049BF12BE48B7416048BFE0E060E070E0CB0114C019B8B9B9415090
+:2003400061F7F0CF659B06C019B8B9B96F5F7F4F8F4F9F4F08B600FEF5CFF8B7F160F8BFDE
+:20036000EF5FEA13F7CF3AB3232B2ABB29B72E7F29BF08951F93CF93DF931F92CDB7DEB7EA
+:20038000182F80ED92DE812FA2DE81ED84DEBBDE898395DE89810F90DF91CF911F9108955B
+:2003A000CF93DF9380E0E6DFD82F81E0E3DFC82F82E0E0DF1F92DF931F92CF938F731F9219
+:2003C0008F9381E291E09F938F9341D18DB79EB708960FB6F8949EBF0FBE8DBFDF91CF91F3
+:2003E0000895C298BA9880E091E0909333018093320180916200826080936200A2DE54D0D8
+:200400008AE090E037D1CEE0D1E0CADF89E090E031D11BBAD39A61E088E8F0DE9F938F9302
+:200420007F936F93DF93CF9312D161E088E843DF9F938F937F936F93DF93CF9308D162E0C7
+:2004400088E8DCDE9F938F937F936F93DF93CF93FED062E088E82FDF9F938F937F936F9340
+:20046000DF93CF93F4D064E088E8C8DE9F938F937F936F93DF93CF93EAD064E088E81BDFE6
+:200480009F938F937F936F93DF93CF93E0D08DB79EB784960FB6F8949EBF0FBE8DBF69DEAF
+:2004A0008AE090E0E7D0B1CFE0E0F0E085919491FC01FF733196EE0FFF1FCF018150984195
+:2004C0008F3F974030F43697E491EF3F11F0E09374000895BA9A28E62A95F1F798E080FF5E
+:2004E00002C0BA9801C0BA9A869528E62A95F1F79150A9F7BA9888E68A95F1F70895EADF55
+:2005000080E090E00895A1E21A2EAA1BBB1BFD010DC0AA1FBB1FEE1FFF1FA217B307E40711
+:20052000F50720F0A21BB30BE40BF50B661F771F881F991F1A9469F7609570958095909589
+:200540009B01AC01BD01CF01089568940013E894A0E0B0E0EDEAF2E01DC0EFEFE7F95901EE
+:200560006A015E23550FEE08FE2C87019B01AC019E23990F660B762FCB013BD0CDB7DEB7CB
+:20058000EAE024C02F923F924F925F926F927F928F929F92AF92BF92CF92DF92EF92FF926F
+:2005A0000F931F93CF93DF93CDB7DEB7CA1BDB0B0FB6F894DEBF0FBECDBF09942A883988D8
+:2005C00048885F846E847D848C849B84AA84B984C884DF80EE80FD800C811B81AA81B981B7
+:2005E000CE0FD11D0FB6F894DEBF0FBECDBFED010895DF93CF939F92A0E49A2E0024D00118
+:20060000E001F00116950795F794E794D794C794B794A79448F41068A20FB31FC41FD51F61
+:20062000E61FF71F081E191E220F331F441F551F661F771F881F991F9A9421F79D01AE01DB
+:20064000BF01C00111249F90CF91DF910895A0E0B0E0ECE2F3E0A6CFAE014B5F5F4FFA0120
+:2006600061917191AF01809132019091330108D0E2E0B4CF6091320170913301DAD108957F
+:20068000ACE0B0E0E5E4F3E07DCF7C016B018A01FC0117821682838181FFB0C1CE01019659
+:2006A0004C01F7019381F60193FD859193FF81916F01882309F49EC1853239F493FD85919F
+:2006C00093FF81916F01853221F4B70190E0B1D1E8CF512C312C20E02032A0F48B3269F003
+:2006E00030F4803259F0833269F420612CC08D3239F0803339F4216026C02260246023C044
+:20070000286021C027FD27C030ED380F3A3078F426FF06C0852D6AE024D2582E530E13C094
+:20072000832D6AE01ED2382E330E20620CC08E3221F426FD5FC1206406C08C3611F4206829
+:2007400002C0883641F4F60193FD859193FF81916F018111C1CF982F9F7D9554933028F466
+:200760000C5F1F4FFFE3F9830DC0833631F0833771F0833509F057C021C0F80180818983D1
+:200780000E5F1F4F44244394512C540114C03801F2E06F0E711CF801A080B18026FF03C052
+:2007A000652D70E002C06FEF7FEFC5012C8736D12C0183012C852F77222E16C03801F2E010
+:2007C0006F0E711CF801A080B18026FF03C0652D70E002C06FEF7FEFC5012C8714D12C01E2
+:2007E0002C852068222E830123FC19C0832D90E048165906A0F4B70180E290E01AD13A9440
+:20080000F5CFF50127FC859127FE81915F01B70190E00FD131103A94F1E04F1A510841144F
+:20082000510479F7DEC0843611F0893631F5F80127FF07C060817181828193810C5F1F4F0C
+:2008400008C060817181072E000C880B990B0E5F1F4F2F76722E97FF09C0909580957095C7
+:2008600061957F4F8F4F9F4F2068722E2AE030E0A40117D1A82EA81843C0853729F42F7EFA
+:20088000B22E2AE030E025C0F22FF97FBF2E8F36C1F018F4883579F0ADC0803719F088375F
+:2008A00021F0A8C02F2F2061B22EB4FE0DC08B2D8460B82E09C024FF0AC09F2F9660B92E9E
+:2008C00006C028E030E005C020E130E002C020E132E0F801B7FE07C0608171818281938130
+:2008E0000C5F1F4F06C06081718180E090E00E5F1F4FA401D6D0A82EA818FB2DFF777F2EAF
+:2009000076FE0BC0372D3E7FA51450F474FE0AC072FC08C0372D3E7E05C0BA2C372D03C016
+:20092000BA2C01C0B52C34FF0DC0FE01EA0DF11D8081803311F4397E09C032FF06C0B394B4
+:20094000B39404C0832F867809F0B39433FD12C030FF06C05A2CB31418F4530C5B18B32C9B
+:20096000B31460F4B70180E290E03C8762D0B3943C85F6CFB31410F43B1801C0312C34FFA1
+:2009800011C0B70180E390E03C8753D03C8532FF16C031FD03C088E790E002C088E590E0DE
+:2009A000B7010CC0832F867851F031FF02C08BE201C080E237FD8DE2B70190E03AD0A514B2
+:2009C00030F4B70180E390E034D05A94F8CFAA94F401EA0DF11D8081B70190E02AD0A110A3
+:2009E000F6CF332009F45DCEB70180E290E021D03A94F7CFF7018681978102C08FEF9FEFC3
+:200A00002C96E2E1DBCDFC010590615070400110D8F7809590958E0F9F1F0895FC016150F6
+:200A2000704001900110D8F7809590958E0F9F1F08950F931F93CF93DF93FB01238121FD7D
+:200A400003C08FEF9FEF28C022FF16C046815781248135814217530744F4A081B1819D0112
+:200A60002F5F3F4F318320838C93268137812F5F3F4F3783268310C0EB01092F182F008447
+:200A8000F185E02D0995892BE1F68E819F8101969F838E83812F902FDF91CF911F910F9122
+:200AA0000895FA01AA27283061F1203191F1E8946F936E7F6E5F7F4F8F4F9F4FAF4FB1E0EF
+:200AC00040D0B4E03ED0670F781F891F9A1FA11D680F791F8A1F911DA11D6A0F711D811D6F
+:200AE000911DA11D22D009F468943F91062E000C3019000C000C3019305D3193CEF6CF0100
+:200B00000895462F4770405D4193B3E00FD0C9F7F6CF462F4F70405D4A3318F0495D31FD7A
+:200B20004052419302D0A9F7EACFB4E0A6959795879577956795BA95C9F700976105710583
+:200B400008959B01AC010A2E06945795479537952795BA95C9F7620F731F841F951FA01D67
+:200B60000895002480FD060E660F11F08695D1F7802D0895F894FFCF000000020000000024
+:200B80007F0200000000252E386C75090025356C752E252E336C750900252E32583A252E1C
+:200BA00032583A252E325800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC
+:200BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35
+:200BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15
+:200C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4
+:200C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4
+:200C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4
+:200C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94
+:200C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74
+:200CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54
+:200CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34
+:200CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14
+:200D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3
+:200D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3
+:200D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3
+:200D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93
+:200D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73
+:200DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53
+:200DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33
+:200DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13
+:200E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2
+:200E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2
+:200E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2
+:200E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92
+:200E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72
+:200EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52
+:200EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32
+:200EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12
+:200F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1
+:200F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1
+:200F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1
+:200F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91
+:200F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71
+:200FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51
+:200FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31
+:200FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11
+:20100000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0
+:20102000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0
+:20104000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0
+:20106000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90
+:20108000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70
+:2010A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50
+:2010C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30
+:2010E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10
+:20110000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+:20112000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF
+:20114000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF
+:20116000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F
+:20118000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F
+:2011A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F
+:2011C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F
+:2011E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F
+:20120000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE
+:20122000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE
+:20124000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE
+:20126000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E
+:20128000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E
+:2012A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E
+:2012C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E
+:2012E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E
+:20130000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED
+:20132000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD
+:20134000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD
+:20136000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D
+:20138000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D
+:2013A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D
+:2013C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D
+:2013E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D
+:20140000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC
+:20142000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC
+:20144000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC
+:20146000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C
+:20148000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C
+:2014A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C
+:2014C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C
+:2014E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C
+:20150000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB
+:20152000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB
+:20154000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB
+:20156000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B
+:20158000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B
+:2015A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B
+:2015C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B
+:2015E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B
+:20160000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA
+:20162000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA
+:20164000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA
+:20166000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A
+:20168000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A
+:2016A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A
+:2016C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A
+:2016E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A
+:20170000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9
+:20172000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9
+:20174000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9
+:20176000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89
+:20178000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69
+:2017A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49
+:2017C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29
+:2017E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09
+:20180000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8
+:20182000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8
+:20184000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8
+:20186000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88
+:20188000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68
+:2018A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48
+:2018C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28
+:2018E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08
+:20190000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+:20192000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+:20194000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7
+:20196000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98005FC3FFFFC9
+:2019800017C0197A1085931509021200010100803209040000000000000012011001FF009F
+:2019A0000008D01653070202000000010403090411241FBECFEFD2E0CDBFDEBF21E0A0E09A
+:2019C000B1E001C01D92AC32B207E1F7ACC1DC018FEF9FEF332715C02D912827722F2295AD
+:2019E0002727822F26952695282723952270321777952795822F8927972F7695279597271C
+:201A00008227615048F7809590950895E0DF8D939D930895CF93CFB7CF93C395B19BE9F7DC
+:201A2000B19B09C0B19B07C0B19B05C0B19B03C0B19B01C0A7C0DF93C0910E01DD27CA5EEC
+:201A4000DE4FB19B02C0DF91EBCF2F930F931F9306B32FEF01FB20F94F933F9316B34FEF64
+:201A6000012701FB21F93BE031C04E7F012F16B3216028C0102F4D7F2260000006B329C0BE
+:201A80004B7F2460012F000016B32BC016B3477F28602AC04F7E06B320612CC04F7D16B38B
+:201AA00020622FC04F7B06B3206432C0422706B349934FEF0000102711FB20F916B31370D8
+:201AC000C9F1297F91F2012701FB21F906B3237F89F2315058F1102711FB22F916B3277E77
+:201AE00079F2012701FB23F92F7C81F206B3102711FB24F92F7971F200C016B3012701FB4C
+:201B000025F92F7359F200C006B3102711FB26F9223040F200C016B3012701FB27F924303A
+:201B200028F64F77206816B30000F9CF10E21ABF00271DC03B503195C31BD04010E21ABFCF
+:201B40000881033C19F10B3409F120910C011981110F1213EDCF093641F10D3211F0013E31
+:201B600039F7CAE01AB715FD02C0CA95D9F7009314013F914F911F910F912F91DF91CAB75E
+:201B8000C5FD4BCFCF91CFBFCF91089520911401222379F3109112011123E1F43430E2F014
+:201BA0003093120120930D0117C00091120101308CF40AE530910F0134FD10C000930F01FE
+:201BC000C1E0D1E00FC02795A8F45150A9F4220F0000F9CF4AE503C042ED01C0432FC4E15C
+:201BE000D0E032E017B31360C19A17BB08B320E413E05F93012756E008BB279520F4515083
+:201C000021F4220FF9CF012756E000003B5A08BBD0F2279528F4515029F4220F0000F9CFAF
+:201C2000012756E0279508BB20F4515021F4220FF9CF012756E02991332308BB21F60C7F31
+:201C400010911301110FC651D04008BB11F010930C0110E21ABF026017B31C7F402F4C7F48
+:201C60005F9100C000C008BB17BB48BB82CF2FEFB0E8A0E04AE0B093740000008EE599E008
+:201C8000B199FECFB19BFECF0197B199FDCF97FF03C0BA1B819501C0BA0FA69541F4A0E4A4
+:201CA00030F4281718F030917400282FA1E0415011F73093740000000895F201309749F04C
+:201CC0002AE7421629E1520631F48091740090E002C08FEB9CEC21E00C0120935700E895C6
+:201CE0001124CF0102962C01089514BE88ED8093710087E081BDB99A2FE78CEF9AE021503E
+:201D000080409040E1F700C00000B9988AE580930F018FEF8093000180B5816080BD8BB791
+:201D200080628BBF089580917400282EEAE7F9E1E491EF3F19F0E0937400000004B601FC0A
+:201D400006C0EDE7F9E1E491EF3F09F03BC1CDDFC298712C312C412C512C14E6C0EADFE02A
+:201D600086B3837009F014E6115029F41092130110920C017CDF0AB605FE05C04BDE80E2F3
+:201D80008ABF712C03C02197209751F7A895809174002092740022E032120CC0E0E8F9E147
+:201DA000E054F10993E090935700E8953097C1F7412C512C90E439120AC0F2013297E038C5
+:201DC00029E1F20720F495E090935700E8958093740084E0381203C0CD2B11F4EFC0312C7F
+:201DE00080911201835087FD98C090910D019D3209F091C0883009F08EC083EC8093010145
+:201E00008AE580930F0190911701907680911801992361F1811108C082E899E19093110146
+:201E20008093100126E06CC0813059F44114510409F44CC080911B01807F482E50901C01FC
+:201E400045C0833081F48091190190911A0135DF80911B0190911C0130DF842D8F70B1F50A
+:201E600080E4382E33C08F73382E30C09091190110920A01811106C010920B018AE091E084
+:201E800022E03AC0853019F49093130127C08630F9F480911A01813019F48AE999E104C028
+:201EA000823041F488E899E1909311018093100122E126C0833051F4911108C08CEA99E1BD
+:201EC000909311018093100124E01AC020E018C0883079F0893031F4909315018AE091E0E0
+:201EE00020E00AC021E08A3009F020E08AE091E003C085E191E021E0909311018093100195
+:201F000080911E01811105C080911D01821708F4282F209300011092120180910F0184FF12
+:201F200031C0809100018F3F69F1C82F893008F0C8E08C1B809300018091010198E8892728
+:201F400080930101CC2391F0E0911001F091110182E091E0DC0124912D9331962C2F280F69
+:201F60002A13F9CFF0931101E09310016C2F82E091E04CDDCC5FCC3019F08FEF80930001EA
+:201F8000C0930F01C30101963C01803B944029F4EDE7F9E1E491EF3F89F4862D8C7411F018
+:201FA000BA9801C0BA9A0AB605FED7CE85E1B19B85E18150E1F780E28ABFCFCEBA9895DE84
+:0E1FC0001BBE10BC209274000000D8CCFFCFD6
+:00000001FF
diff --git a/firmware/out_borked.hex b/firmware/out_borked.hex
new file mode 100644
index 0000000..98126e7
--- /dev/null
+++ b/firmware/out_borked.hex
@@ -0,0 +1,256 @@
+:2000000002C0178000C004C034C033C032C031C030C02FC02EC02DC02CC02BC02AC029C0D5
+:2000200028C027C026C025C024C023C022C021C020C01FC01EC01DC01CC01BC011241FBE59
+:20004000CFEFD2E0DEBFCDBF11E0A0E0B1E0E8E7FBE002C005900D92A033B107D9F721E009
+:20006000A0E3B1E001C01D92A633B207E1F7B9D181C5C6CF00C000C000C000C000C000C0AD
+:2000800000000895D798D698DF98DE980895D79AF1DF1DD00895D69AEDDFD798EBDFD698AE
+:2000A000E9DFD79AE7DF13D00895082ED79AE2DF802D0DD0882311F002D0F8CF0895D69A7D
+:2000C000D79AD8DFD698D6DFD798D4DF08950894881F01C0880F59F0D69A18F40000D79847
+:2000E00002C0D79A00C0C6DFD698C4DFF3CFD69AD798C0DFD698CE9BFECF8827CF9981E0FB
+:20010000B9DF99270895882701C081E071E0D69AD798B0DFD698AEDFCE9BFECF8894CF99A5
+:200120000894771FA0F7D69A813011F0D79801C0D79AA0DFD698CE9BFECF9CDF872F99271F
+:200140000895A0DFE3E6F0E080818064808380818068808386E49BDF87E4B9DFB0DF86E436
+:2001600096DF8EE7B4DFABDF86E491DF81E1AFDFA6CFCF92DF92EF92FF9287E488DFC5DFDF
+:20018000C82ED12CDC2CCC240D2C000CEE08FF08BADFC82AEE24FF2492DFFF92EF92DF927E
+:2001A000CF928EE091E09F938F9351D2C701B60121E730E040E050E0CAD1B901CA0128EE6B
+:2001C00033E040E050E09FD19F938F937F936F935F934F933F932F9385E191E09F938F9351
+:2001E00036D28DB79EB740960FB6F8949EBF0FBE8DBFFF90EF90DF90CF900895CF93B82FFF
+:20020000C62F21E030E0062E01C0220F0A94EAF74AB3422B4ABB40916300522F50954523C2
+:20022000409363004BB345234BBB40916000422B4093600088E28A95F1F74AB345234ABB70
+:2002400040E44CB944E04DB92F9818B869B945E043BF10BE4FEF5FE088E28A95F1F76599B1
+:200260000CC041E049BF12BE48B7416048BFE0E060E070E0CB01AFE014C059B9C9B941506E
+:2002800059F7EFCF659B06C0A9B9C9B96F5F7F4F8F4F9F4F08B600FEF5CFF8B7F160F8BF07
+:2002A000EF5FEB13F7CF3AB3232B2ABB29B72E7F29BFCF910895A82FB62F21E030E0062E99
+:2002C00001C0220F0A94EAF74AB3422B4ABB40916300522F50954523409363004BB34523A0
+:2002E0004BBB40916000422B409360004091600041604093600040EC48B988E28A95F1F784
+:200300004AB345234ABB40E44CB944E04DB92F9869B945E043BF10BE4FEF88E28A95F1F793
+:2003200065990BC041E049BF12BE48B7416048BFE0E060E070E0CB0114C019B8B9B9415090
+:2003400061F7F0CF659B06C019B8B9B96F5F7F4F8F4F9F4F08B600FEF5CFF8B7F160F8BFDE
+:20036000EF5FEA13F7CF3AB3232B2ABB29B72E7F29BF08951F93CF93DF931F92CDB7DEB7EA
+:20038000182F80ED92DE812FA2DE81ED84DEBBDE898395DE89810F90DF91CF911F9108955B
+:2003A000CF93DF9380E0E6DFD82F81E0E3DFC82F82E0E0DF1F92DF931F92CF938F731F9219
+:2003C0008F9381E291E09F938F9341D18DB79EB708960FB6F8949EBF0FBE8DBFDF91CF91F3
+:2003E0000895C298BA9880E091E0909333018093320180916200826080936200A2DE54D0D8
+:200400008AE090E037D1CEE0D1E0CADF89E090E031D11BBAD39A61E088E8F0DE9F938F9302
+:200420007F936F93DF93CF9312D161E088E843DF9F938F937F936F93DF93CF9308D162E0C7
+:2004400088E8DCDE9F938F937F936F93DF93CF93FED062E088E82FDF9F938F937F936F9340
+:20046000DF93CF93F4D064E088E8C8DE9F938F937F936F93DF93CF93EAD064E088E81BDFE6
+:200480009F938F937F936F93DF93CF93E0D08DB79EB784960FB6F8949EBF0FBE8DBF69DEAF
+:2004A0008AE090E0E7D0B1CFE0E0F0E085919491FC01FF733196EE0FFF1FCF018150984195
+:2004C0008F3F974030F43697E491EF3F11F0E09374000895BA9A28E62A95F1F798E080FF5E
+:2004E00002C0BA9801C0BA9A869528E62A95F1F79150A9F7BA9888E68A95F1F70895EADF55
+:2005000080E090E00895A1E21A2EAA1BBB1BFD010DC0AA1FBB1FEE1FFF1FA217B307E40711
+:20052000F50720F0A21BB30BE40BF50B661F771F881F991F1A9469F7609570958095909589
+:200540009B01AC01BD01CF01089568940013E894A0E0B0E0EDEAF2E01DC0EFEFE7F95901EE
+:200560006A015E23550FEE08FE2C87019B01AC019E23990F660B762FCB013BD0CDB7DEB7CB
+:20058000EAE024C02F923F924F925F926F927F928F929F92AF92BF92CF92DF92EF92FF926F
+:2005A0000F931F93CF93DF93CDB7DEB7CA1BDB0B0FB6F894DEBF0FBECDBF09942A883988D8
+:2005C00048885F846E847D848C849B84AA84B984C884DF80EE80FD800C811B81AA81B981B7
+:2005E000CE0FD11D0FB6F894DEBF0FBECDBFED010895DF93CF939F92A0E49A2E0024D00118
+:20060000E001F00116950795F794E794D794C794B794A79448F41068A20FB31FC41FD51F61
+:20062000E61FF71F081E191E220F331F441F551F661F771F881F991F9A9421F79D01AE01DB
+:20064000BF01C00111249F90CF91DF910895A0E0B0E0ECE2F3E0A6CFAE014B5F5F4FFA0120
+:2006600061917191AF01809132019091330108D0E2E0B4CF6091320170913301DAD108957F
+:20068000ACE0B0E0E5E4F3E07DCF7C016B018A01FC0117821682838181FFB0C1CE01019659
+:2006A0004C01F7019381F60193FD859193FF81916F01882309F49EC1853239F493FD85919F
+:2006C00093FF81916F01853221F4B70190E0B1D1E8CF512C312C20E02032A0F48B3269F003
+:2006E00030F4803259F0833269F420612CC08D3239F0803339F4216026C02260246023C044
+:20070000286021C027FD27C030ED380F3A3078F426FF06C0852D6AE024D2582E530E13C094
+:20072000832D6AE01ED2382E330E20620CC08E3221F426FD5FC1206406C08C3611F4206829
+:2007400002C0883641F4F60193FD859193FF81916F018111C1CF982F9F7D9554933028F466
+:200760000C5F1F4FFFE3F9830DC0833631F0833771F0833509F057C021C0F80180818983D1
+:200780000E5F1F4F44244394512C540114C03801F2E06F0E711CF801A080B18026FF03C052
+:2007A000652D70E002C06FEF7FEFC5012C8736D12C0183012C852F77222E16C03801F2E010
+:2007C0006F0E711CF801A080B18026FF03C0652D70E002C06FEF7FEFC5012C8714D12C01E2
+:2007E0002C852068222E830123FC19C0832D90E048165906A0F4B70180E290E01AD13A9440
+:20080000F5CFF50127FC859127FE81915F01B70190E00FD131103A94F1E04F1A510841144F
+:20082000510479F7DEC0843611F0893631F5F80127FF07C060817181828193810C5F1F4F0C
+:2008400008C060817181072E000C880B990B0E5F1F4F2F76722E97FF09C0909580957095C7
+:2008600061957F4F8F4F9F4F2068722E2AE030E0A40117D1A82EA81843C0853729F42F7EFA
+:20088000B22E2AE030E025C0F22FF97FBF2E8F36C1F018F4883579F0ADC0803719F088375F
+:2008A00021F0A8C02F2F2061B22EB4FE0DC08B2D8460B82E09C024FF0AC09F2F9660B92E9E
+:2008C00006C028E030E005C020E130E002C020E132E0F801B7FE07C0608171818281938130
+:2008E0000C5F1F4F06C06081718180E090E00E5F1F4FA401D6D0A82EA818FB2DFF777F2EAF
+:2009000076FE0BC0372D3E7FA51450F474FE0AC072FC08C0372D3E7E05C0BA2C372D03C016
+:20092000BA2C01C0B52C34FF0DC0FE01EA0DF11D8081803311F4397E09C032FF06C0B394B4
+:20094000B39404C0832F867809F0B39433FD12C030FF06C05A2CB31418F4530C5B18B32C9B
+:20096000B31460F4B70180E290E03C8762D0B3943C85F6CFB31410F43B1801C0312C34FFA1
+:2009800011C0B70180E390E03C8753D03C8532FF16C031FD03C088E790E002C088E590E0DE
+:2009A000B7010CC0832F867851F031FF02C08BE201C080E237FD8DE2B70190E03AD0A514B2
+:2009C00030F4B70180E390E034D05A94F8CFAA94F401EA0DF11D8081B70190E02AD0A110A3
+:2009E000F6CF332009F45DCEB70180E290E021D03A94F7CFF7018681978102C08FEF9FEFC3
+:200A00002C96E2E1DBCDFC010590615070400110D8F7809590958E0F9F1F0895FC016150F6
+:200A2000704001900110D8F7809590958E0F9F1F08950F931F93CF93DF93FB01238121FD7D
+:200A400003C08FEF9FEF28C022FF16C046815781248135814217530744F4A081B1819D0112
+:200A60002F5F3F4F318320838C93268137812F5F3F4F3783268310C0EB01092F182F008447
+:200A8000F185E02D0995892BE1F68E819F8101969F838E83812F902FDF91CF911F910F9122
+:200AA0000895FA01AA27283061F1203191F1E8946F936E7F6E5F7F4F8F4F9F4FAF4FB1E0EF
+:200AC00040D0B4E03ED0670F781F891F9A1FA11D680F791F8A1F911DA11D6A0F711D811D6F
+:200AE000911DA11D22D009F468943F91062E000C3019000C000C3019305D3193CEF6CF0100
+:200B00000895462F4770405D4193B3E00FD0C9F7F6CF462F4F70405D4A3318F0495D31FD7A
+:200B20004052419302D0A9F7EACFB4E0A6959795879577956795BA95C9F700976105710583
+:200B400008959B01AC010A2E06945795479537952795BA95C9F7620F731F841F951FA01D67
+:200B60000895002480FD060E660F11F08695D1F7802D0895F894FFCF000000020000000024
+:200B80007F0200000000252E386C75090025356C752E252E336C750900252E32583A252E1C
+:200BA00032583A252E325800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC
+:200BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35
+:200BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15
+:200C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4
+:200C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4
+:200C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4
+:200C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94
+:200C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74
+:200CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54
+:200CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34
+:200CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14
+:200D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3
+:200D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3
+:200D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3
+:200D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93
+:200D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73
+:200DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53
+:200DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33
+:200DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13
+:200E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2
+:200E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2
+:200E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2
+:200E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92
+:200E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72
+:200EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52
+:200EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32
+:200EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12
+:200F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1
+:200F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1
+:200F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1
+:200F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91
+:200F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71
+:200FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51
+:200FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31
+:200FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11
+:20100000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0
+:20102000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0
+:20104000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0
+:20106000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90
+:20108000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70
+:2010A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50
+:2010C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30
+:2010E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10
+:20110000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+:20112000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF
+:20114000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF
+:20116000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F
+:20118000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F
+:2011A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F
+:2011C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F
+:2011E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F
+:20120000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE
+:20122000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE
+:20124000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE
+:20126000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E
+:20128000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E
+:2012A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E
+:2012C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E
+:2012E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E
+:20130000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED
+:20132000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD
+:20134000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD
+:20136000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D
+:20138000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D
+:2013A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D
+:2013C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D
+:2013E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D
+:20140000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC
+:20142000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC
+:20144000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC
+:20146000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C
+:20148000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C
+:2014A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C
+:2014C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C
+:2014E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C
+:20150000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB
+:20152000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB
+:20154000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB
+:20156000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B
+:20158000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B
+:2015A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B
+:2015C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B
+:2015E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B
+:20160000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA
+:20162000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA
+:20164000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA
+:20166000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A
+:20168000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A
+:2016A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A
+:2016C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A
+:2016E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A
+:20170000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9
+:20172000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9
+:20174000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9
+:20176000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89
+:20178000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69
+:2017A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49
+:2017C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29
+:2017E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09
+:20180000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8
+:20182000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8
+:20184000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8
+:20186000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88
+:20188000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68
+:2018A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48
+:2018C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28
+:2018E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08
+:20190000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+:20192000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+:20194000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7
+:20196000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98005FC3FFFFC9
+:2019800017C0197A1085931509021200010100803209040000000000000012011001FF009F
+:2019A0000008D01653070002000000010403090411241FBECFEFD2E0CDBFDEBF21E0A0E09C
+:2019C000B1E001C01D92AC32B207E1F78FC1A82FB92F80E090E041E050EA609530E009C08F
+:2019E0002D9182279795879510F084279527305EC8F36F5FA8F30895EADF8D939D930895CC
+:201A0000CF93CFB7CF93C395B19BE9F7B19B09C0B19B07C0B19B05C0B19B03C0B19B01C0A3
+:201A2000A7C0DF93C0910E01DD27CA5EDE4FB19B02C0DF91EBCF2F930F931F9306B32FEFEF
+:201A400001FB20F94F933F9316B34FEF012701FB21F93BE031C04E7F012F16B3216028C03D
+:201A6000102F4D7F2260000006B329C04B7F2460012F000016B32BC016B3477F28602AC004
+:201A80004F7E06B320612CC04F7D16B320622FC04F7B06B3206432C0422706B349934FEF18
+:201AA0000000102711FB20F916B31370C9F1297F91F2012701FB21F906B3237F89F2315004
+:201AC00058F1102711FB22F916B3277E79F2012701FB23F92F7C81F206B3102711FB24F90F
+:201AE0002F7971F200C016B3012701FB25F92F7359F200C006B3102711FB26F9223040F2C4
+:201B000000C016B3012701FB27F9243028F64F77206816B30000F9CF10E21ABF00271DC0D8
+:201B20003B503195C31BD04010E21ABF0881033C19F10B3409F120910C011981110F1213F3
+:201B4000EDCF093641F10D3211F0013E39F7CAE01AB715FD02C0CA95D9F7009314013F91B3
+:201B60004F911F910F912F91DF91CAB7C5FD4BCFCF91CFBFCF91089520911401222379F346
+:201B8000109112011123E1F43430E2F03093120120930D0117C00091120101308CF40AE5A0
+:201BA00030910F0134FD10C000930F01C1E0D1E00FC02795A8F45150A9F4220F0000F9CF00
+:201BC0004AE503C042ED01C0432FC4E1D0E032E017B31360C19A17BB08B320E413E05F933C
+:201BE000012756E008BB279520F4515021F4220FF9CF012756E000003B5A08BBD0F2279511
+:201C000028F4515029F4220F0000F9CF012756E0279508BB20F4515021F4220FF9CF012729
+:201C200056E02991332308BB21F60C7F10911301110FC651D04008BB11F010930C0110E297
+:201C40001ABF026017B31C7F402F4C7F5F9100C000C008BB17BB48BB82CF2FEFB0E8A0E01B
+:201C60004BE0B093740000008EE599E0B199FECFB19BFECF0197B199FDCFB09B09C096B35B
+:201C80009370E9F796B39370D1F7B19BFECFECCF97FF03C0BA1B819501C0BA0FA69541F43B
+:201CA000A0E430F4281718F030917400282FA1E04150B9F63093740000000895F20130975A
+:201CC00049F02AE7421629E1520631F48091740090E002C08FEB9CEC21E00C01209357000A
+:201CE000E8951124CF0102962C01089580917400282EEAE7F9E1E491EF3F19F0E0937400E7
+:201D0000000004B601FC06C0EDE7F9E1E491EF3F09F055C114BE88ED8093710087E081BD76
+:201D2000B99A2FE78CEF9AE0215080409040E1F700C00000B9988AE580930F018FEF809338
+:201D4000000180B5816080BD8BB780628BBFC298712C312C412C512C14E1C0EADFE086B3EC
+:201D6000837009F014E1115029F41092130110920C0173DF0AB605FE03C042DE712C03C047
+:201D80002197209761F7A895809174002092740022E032120CC0E0E8F9E1E054F10993E03F
+:201DA00090935700E8953097C1F7412C512C90E439120AC0F2013297E03829E1F20720F44F
+:201DC00095E090935700E8958093740084E0381203C0CD2B11F4EFC0312C8091120183509F
+:201DE00087FD98C090910D019D3209F091C0883009F08EC083EC809301018AE580930F01AA
+:201E000090911701907680911801992361F1811108C082E899E1909311018093100126E0AE
+:201E20006CC0813059F44114510409F44CC080911B01807F482E50901C0145C0833081F4F9
+:201E40008091190190911A0139DF80911B0190911C0134DF842D8F70B1F580E4382E33C072
+:201E60008F73382E30C09091190110920A01811106C010920B018AE091E022E03AC0853090
+:201E800019F49093130127C08630F9F480911A01813019F48AE999E104C0823041F488E882
+:201EA00099E1909311018093100122E126C0833051F4911108C08CEA99E1909311018093CC
+:201EC000100124E01AC020E018C0883079F0893031F4909315018AE091E020E00AC021E05D
+:201EE0008A3009F020E08AE091E003C085E191E021E0909311018093100180911E0181119E
+:201F000005C080911D01821708F4282F209300011092120180910F0184FF31C080910001D1
+:201F20008F3F69F1C82F893008F0C8E08C1B809300018091010198E8892780930101CC2327
+:201F400091F0E0911001F091110182E091E0DC0124912D9331962C2F280F2A13F9CFF093E5
+:201F60001101E09310016C2F82E091E045DDCC5FCC3019F08FEF80930001C0930F01C30152
+:201F800001963C01803B944029F4EDE7F9E1E491EF3F89F4862D8C7411F0BA9801C0BA9AD8
+:201FA0000AB605FED9CE88E1B09988E18150E1F780E28ABFD1CEBA98B99A1BBE10BC2092AD
+:081FC00074000000DBCCFFCF30
+:00000001FF
diff --git a/firmware/releases/Nanite841.hex b/firmware/releases/Nanite841.hex
index c9a0475..48bdfc8 100644
--- a/firmware/releases/Nanite841.hex
+++ b/firmware/releases/Nanite841.hex
@@ -1,6 +1,6 @@
:1019800017C0197A10859315090212000101008011
:101990003209040000000000000012011001FF00E5
-:1019A0000008D016530702020000000104030904D6
+:1019A0000008D016530703020000000104030904D5
:1019B00011241FBECFEFD2E0CDBFDEBF21E0A0E0FB
:1019C000B1E001C01D92AC32B207E1F7ACC1DC015D
:1019D0008FEF9FEF332715C02D912827722F229567
@@ -58,7 +58,7 @@
:101D10000F018FEF8093000180B5816080BD8BB78C
:101D200080628BBF089580917400282EEAE7F9E164
:101D3000E491EF3F19F0E0937400000004B601FC59
-:101D400006C0EDE7F9E1E491EF3F09F03BC1CDDFDB
+:101D400006C0EDE7F9E1E491EF3F09F03EC1CDDFD8
:101D5000C298712C312C412C512C14E6C0EADFE0E2
:101D600086B3837009F014E6115029F41092130120
:101D700010920C017CDF0AB605FE05C04BDE80E246
@@ -67,37 +67,38 @@
:101DA000E054F10993E090935700E8953097C1F71C
:101DB000412C512C90E439120AC0F2013297E038DC
:101DC00029E1F20720F495E090935700E89580937D
-:101DD000740084E0381203C0CD2B11F4EFC0312C15
-:101DE00080911201835087FD98C090910D019D3222
-:101DF00009F091C0883009F08EC083EC8093010116
+:101DD000740084E0381203C0CD2B11F4F2C0312C12
+:101DE00080911201835087FD9BC090910D019D321F
+:101DF00009F094C0883009F091C083EC8093010110
:101E00008AE580930F0190911701907680911801D7
-:101E1000992361F1811108C082E899E19093110141
-:101E20008093100126E06CC0813059F441145104B4
-:101E300009F44CC080911B01807F482E50901C01FA
-:101E400045C0833081F48091190190911A0135DFEA
-:101E500080911B0190911C0130DF842D8F70B1F5B2
-:101E600080E4382E33C08F73382E30C09091190122
-:101E700010920A01811106C010920B018AE091E0D4
-:101E800022E03AC0853019F49093130127C08630C0
-:101E9000F9F480911A01813019F48AE999E104C0BA
-:101EA000823041F488E899E1909311018093100108
-:101EB00022E126C0833051F4911108C08CEA99E1E7
-:101EC000909311018093100124E01AC020E018C003
-:101ED000883079F0893031F4909315018AE091E0EF
-:101EE00020E00AC021E08A3009F020E08AE091E099
-:101EF00003C085E191E021E09093110180931001EE
-:101F000080911E01811105C080911D01821708F486
-:101F1000282F209300011092120180910F0184FF5D
-:101F200031C0809100018F3F69F1C82F893008F0DE
-:101F3000C8E08C1B809300018091010198E88927FB
-:101F400080930101CC2391F0E0911001F0911101F7
-:101F500082E091E0DC0124912D9331962C2F280F03
-:101F60002A13F9CFF0931101E09310016C2F82E056
-:101F700091E04CDDCC5FCC3019F08FEF8093000105
-:101F8000C0930F01C30101963C01803B944029F4AA
-:101F9000EDE7F9E1E491EF3F89F4862D8C7411F0BF
-:101FA000BA9801C0BA9A0AB605FED7CE85E1B19BB0
-:101FB00085E18150E1F780E28ABFCFCEBA9895DE05
-:0E1FC0001BBE10BC209274000000D8CCFFCFD6
+:101E1000992379F1811108C082E899E19093110129
+:101E20008093100126E06FC0813071F44114510499
+:101E300009F44FC080911B01807F482E50901C01F7
+:101E400081E187BFE89545C0833081F48091190115
+:101E500090911A0132DF80911B0190911C012DDFBE
+:101E6000842D8F70B1F580E4382E33C08F73382EF7
+:101E700030C09091190110920A01811106C0109290
+:101E80000B018AE091E022E03AC0853019F490938A
+:101E9000130127C08630F9F480911A01813019F4BA
+:101EA0008AE999E104C0823041F488E899E190938D
+:101EB00011018093100122E126C0833051F4911169
+:101EC00008C08CEA99E1909311018093100124E0FD
+:101ED0001AC020E018C0883079F0893031F490932E
+:101EE00015018AE091E020E00AC021E08A3009F083
+:101EF00020E08AE091E003C085E191E021E0909349
+:101F000011018093100180911E01811105C0809103
+:101F10001D01821708F4282F20930001109212014E
+:101F200080910F0184FF31C0809100018F3F69F1E2
+:101F3000C82F893008F0C8E08C1B80930001809185
+:101F4000010198E8892780930101CC2391F0E09169
+:101F50001001F091110182E091E0DC0124912D93B8
+:101F600031962C2F280F2A13F9CFF0931101E0930B
+:101F700010016C2F82E091E049DDCC5FCC3019F08C
+:101F80008FEF80930001C0930F01C30101963C01C4
+:101F9000803B944029F4EDE7F9E1E491EF3F89F4C7
+:101FA000862D8C7411F0BA9801C0BA9A0AB605FE53
+:101FB000D4CE85E1B19B85E18150E1F780E28ABF13
+:101FC000CCCEBA9892DE1BBE10BC209274000000EA
+:041FD000D5CCFFCF9E
:040000030000198060
:00000001FF
diff --git a/firmware/releases/t167_default.hex b/firmware/releases/t167_default.hex
index 57d0e1d..a664128 100644
--- a/firmware/releases/t167_default.hex
+++ b/firmware/releases/t167_default.hex
@@ -1,6 +1,6 @@
:103A000018C0000039FA80059487090212000101EC
:103A100000803209040000000000000012011001C3
-:103A2000FF000008D0165307020200000001040343
+:103A2000FF000008D0165307030200000001040342
:103A3000090411241FBECEEFD2E0CDBFDEBF21E0CE
:103A4000A0E0B1E001C01D92AC32B207E1F765C160
:103A5000A82FB92F80E090E041E050EA609530E077
@@ -55,37 +55,37 @@
:103D6000FAE3E058F10983E080935700E895309733
:103D7000C1F7412C512C832D803459F4F201329734
:103D8000E1158AE3F80750F485E080935700E89541
-:103D900005C0843019F4CD2B11F4EEC0312C809184
-:103DA0001201835087FD98C090910D019D3209F05A
-:103DB00091C0883009F08EC083EC809301018AE5C0
+:103D900005C0843019F4CD2B11F4F1C0312C809181
+:103DA0001201835087FD9BC090910D019D3209F057
+:103DB00094C0883009F091C083EC809301018AE5BA
:103DC00080930F01909117019076809118019923AB
-:103DD00061F1811108C084E09AE39093110180930E
-:103DE000100126E06CC0813059F44114510409F4EB
-:103DF0004CC080911B018078482E50901C0145C01A
-:103E0000833081F48091190190911A014EDF8091E5
-:103E10001B0190911C0149DF842D8F77B1F580E45F
-:103E2000382E33C08F73382E30C090911901109204
-:103E30000A01811106C010920B018AE091E022E094
-:103E40003AC0853019F49093130127C08630F9F4F5
-:103E500080911A01813019F48CE19AE304C0823018
-:103E600041F48AE09AE3909311018093100122E1DA
-:103E700026C0833051F4911108C08EE29AE39093EA
-:103E800011018093100124E01AC020E018C088308E
-:103E900079F0893031F4909315018AE091E020E0C7
-:103EA0000AC021E08A3009F020E08AE091E003C0F6
-:103EB00085E191E021E090931101809310018091C0
-:103EC0001E01811105C080911D01821708F4282F61
-:103ED000209300011092120180910F0184FF31C0E4
-:103EE000809100018F3F69F1C82F893008F0C8E048
-:103EF0008C1B809300018091010198E889278093B1
-:103F00000101CC2391F0E0911001F091110182E0C8
-:103F100091E0DC0124912D9331962C2F280F2A1348
-:103F2000F9CFF0931101E09310016C2F82E091E042
-:103F3000A4DDCC5FCC3019F08FEF80930001C093EB
-:103F40000F01C30101963C01803B944029F4EDEF41
-:103F5000F9E3E491EF3F81F4862D8C7411F02998F8
-:103F600001C0299AD99BE0CE8CE11B9B8CE181504A
-:103F7000E1F782E08BBBD8CE21982998ABDE109276
-:0A3F8000680010926C003ACDFFCFEC
+:103DD00079F1811108C084E09AE3909311018093F6
+:103DE000100126E06FC0813071F44114510409F4D0
+:103DF0004FC080911B018078482E50901C0181E1BA
+:103E000087BFE89545C0833081F480911901909176
+:103E10001A014BDF80911B0190911C0146DF842D1C
+:103E20008F77B1F580E4382E33C08F73382E30C0D1
+:103E30009091190110920A01811106C010920B0194
+:103E40008AE091E022E03AC0853019F490931301A2
+:103E500027C08630F9F480911A01813019F48CE181
+:103E60009AE304C0823041F48AE09AE3909311010E
+:103E70008093100122E126C0833051F4911108C0D3
+:103E80008EE29AE3909311018093100124E01AC00E
+:103E900020E018C0883079F0893031F49093150112
+:103EA0008AE091E020E00AC021E08A3009F020E0B9
+:103EB0008AE091E003C085E191E021E09093110157
+:103EC0008093100180911E01811105C080911D0118
+:103ED000821708F4282F209300011092120180917C
+:103EE0000F0184FF31C0809100018F3F69F1C82F1D
+:103EF000893008F0C8E08C1B80930001809101019B
+:103F000098E8892780930101CC2391F0E09110017A
+:103F1000F091110182E091E0DC0124912D93319622
+:103F20002C2F280F2A13F9CFF0931101E0931001E1
+:103F30006C2F82E091E0A1DDCC5FCC3019F08FEFE7
+:103F400080930001C0930F01C30101963C01803BA7
+:103F5000944029F4EDEFF9E3E491EF3F81F4862DED
+:103F60008C7411F0299801C0299AD99BDDCE8CE17F
+:103F70001B9B8CE18150E1F782E08BBBD5CE219871
+:103F80002998A8DE1092680010926C0037CDFFCF00
:0400000300003A00BF
:00000001FF
diff --git a/firmware/releases/t45_default.hex b/firmware/releases/t45_default.hex
index d24cfb4..07c497e 100644
--- a/firmware/releases/t45_default.hex
+++ b/firmware/releases/t45_default.hex
@@ -1,6 +1,6 @@
:1009800017C0097A40059206090212000101008091
:100990003209040000000000000012011001FF00F5
-:1009A0000008D016530702020000000104030904E6
+:1009A0000008D016530703020000000104030904E5
:1009B00011241FBECFE5D1E0CDBFDEBF20E0A0E611
:1009C000B0E001C01D92AC38B207E1F7BFC1A82F5B
:1009D000B92F80E090E041E050EA609530E009C036
@@ -67,36 +67,36 @@
:100DA000F9E0E054F10983E080935700E89530972B
:100DB000C1F7412C512C832D803459F4F201329724
:100DC000E03889E0F80750F485E080935700E89513
-:100DD00005C0843019F4CD2B11F4E9C0312C809179
-:100DE0007200835087FD98C090916D009D3209F08C
-:100DF00091C0883009F08EC083EC809361008AE551
+:100DD00005C0843019F4CD2B11F4ECC0312C809176
+:100DE0007200835087FD9BC090916D009D3209F089
+:100DF00094C0883009F091C083EC809361008AE54B
:100E000080936F009091770090768091780099237D
-:100E100061F1811108C082E899E09093710080939C
-:100E2000700026E06CC0813059F44114510409F47B
-:100E30004CC080917B00807C482E50907C0045C047
-:100E4000833081F48091790090917A004DDF809118
-:100E50007B0090917C0048DF842D8F73B1F580E496
-:100E6000382E33C08F73382E30C090917900109295
-:100E70006A00811106C010926B008AE690E022E0C1
-:100E80003AC0853019F49093730027C08630F9F486
-:100E900080917A00813019F48AE999E004C08230A7
-:100EA00041F488E899E0909371008093700022E10A
-:100EB00026C0833051F4911108C08CEA99E09093D8
-:100EC00071008093700024E01AC020E018C08830C0
-:100ED00079F0893031F4909375008AE690E020E053
-:100EE0000AC021E08A3009F020E08AE690E003C0E1
-:100EF00085E790E021E090937100809370008091ED
-:100F00007E00811105C080917D00821708F4282F92
-:100F1000209360001092720080916F0084FF31C0B6
-:100F2000809160008F3F69F1C82F893008F0C8E0D8
-:100F30008C1B809360008091610098E889278093E2
-:100F40006100CC2391F0E0917000F091710082E695
-:100F500090E0DC0124912D9331962C2F280F2A1339
-:100F6000F9CFF0937100E09370006C2F82E690E06F
-:100F700043DDCC5FCC3019F08FEF80936000C093DD
-:100F80006F00C30101963C01803B944029F4EDE7DA
-:100F9000F9E0E491EF3F59F40AB605FEE3CE8DE1A6
-:100FA000B39B8DE18150E1F780E28ABFDBCEB3DEF7
-:080FB0001BBE15BAE3CCFFCF14
+:100E100079F1811108C082E899E090937100809384
+:100E2000700026E06FC0813071F44114510409F460
+:100E30004FC080917B00807C482E50907C0081E1E7
+:100E400087BFE89545C0833081F480917900909107
+:100E50007A004ADF80917B0090917C0045DF842DF1
+:100E60008F73B1F580E4382E33C08F73382E30C0C5
+:100E70009091790010926A00811106C010926B0067
+:100E80008AE690E022E03AC0853019F4909373002E
+:100E900027C08630F9F480917A00813019F48AE90C
+:100EA00099E004C0823041F488E899E090937100A1
+:100EB0008093700022E126C0833051F4911108C064
+:100EC0008CEA99E0909371008093700024E01AC03E
+:100ED00020E018C0883079F0893031F490937500A3
+:100EE0008AE690E020E00AC021E08A3009F020E0A4
+:100EF0008AE690E003C085E790E021E090937100DE
+:100F00008093700080917E00811105C080917D00EA
+:100F1000821708F4282F20936000109272008091AD
+:100F20006F0084FF31C0809160008F3F69F1C82F4E
+:100F3000893008F0C8E08C1B8093600080916100CC
+:100F400098E8892780936100CC2391F0E0917000AC
+:100F5000F091710082E690E0DC0124912D933196AE
+:100F60002C2F280F2A13F9CFF0937100E093700013
+:100F70006C2F82E690E040DDCC5FCC3019F08FEF33
+:100F800080936000C0936F00C30101963C01803BD9
+:100F9000944029F4EDE7F9E0E491EF3F59F40AB603
+:100FA00005FEE0CE8DE1B39B8DE18150E1F780E25B
+:0E0FB0008ABFD8CEB0DE1BBE15BAE0CCFFCF94
:040000030000098070
:00000001FF
diff --git a/firmware/releases/t841_default.hex b/firmware/releases/t841_default.hex
index 92ef227..c9cd4b0 100644
--- a/firmware/releases/t841_default.hex
+++ b/firmware/releases/t841_default.hex
@@ -1,6 +1,6 @@
:1019800017C0197A10859315090212000101008011
:101990003209040000000000000012011001FF00E5
-:1019A0000008D016530702020000000104030904D6
+:1019A0000008D016530703020000000104030904D5
:1019B00011241FBECFEFD2E0CDBFDEBF21E0A0E0FB
:1019C000B1E001C01D92AC32B207E1F7ACC1DC015D
:1019D0008FEF9FEF332715C02D912827722F229567
@@ -58,7 +58,7 @@
:101D10000F018FEF8093000180B5826080BD8BB78B
:101D200080628BBF0895EAE7F9E1E491EF3F19F093
:101D3000E0937400000004B601FC06C0EDE7F9E191
-:101D4000E491EF3F09F035C1D0DFC298712C312CFE
+:101D4000E491EF3F09F038C1D0DFC298712C312CFB
:101D5000412C512C14E6C0EADFE086B3837009F011
:101D600014E6115029F41092130110920C017FDF38
:101D70000AB605FE05C04EDE80E28ABF712C03C0A4
@@ -66,37 +66,37 @@
:101D9000F9E1E054F10983E080935700E89530972A
:101DA000C1F7412C512C832D803459F4F201329724
:101DB000E03889E1F80750F485E080935700E89512
-:101DC00005C0843019F4CD2B11F4EFC0312C809173
-:101DD0001201835087FD98C090910D019D3209F04A
-:101DE00091C0883009F08EC083EC809301018AE5B0
+:101DC00005C0843019F4CD2B11F4F2C0312C809170
+:101DD0001201835087FD9BC090910D019D3209F047
+:101DE00094C0883009F091C083EC809301018AE5AA
:101DF00080930F019091170190768091180199239B
-:101E000061F1811108C082E899E1909311018093FA
-:101E1000100126E06CC0813059F44114510409F4DA
-:101E20004CC080911B01807F482E50901C0145C002
-:101E3000833081F48091190190911A013EDF8091E5
-:101E40001B0190911C0139DF842D8F70B1F580E466
-:101E5000382E33C08F73382E30C0909119011092F4
-:101E60000A01811106C010920B018AE091E022E084
-:101E70003AC0853019F49093130127C08630F9F4E5
-:101E800080911A01813019F48AE999E104C0823005
-:101E900041F488E899E1909311018093100122E1C7
-:101EA00026C0833051F4911108C08CEA99E19093D7
-:101EB00011018093100124E01AC020E018C088307E
-:101EC00079F0893031F4909315018AE091E020E0B7
-:101ED0000AC021E08A3009F020E08AE091E003C0E6
-:101EE00085E191E021E090931101809310018091B0
-:101EF0001E01811105C080911D01821708F4282F51
-:101F0000209300011092120180910F0184FF31C0D3
-:101F1000809100018F3F69F1C82F893008F0C8E037
-:101F20008C1B809300018091010198E889278093A0
-:101F30000101CC2391F0E0911001F091110182E0B8
-:101F400091E0DC0124912D9331962C2F280F2A1338
-:101F5000F9CFF0931101E09310016C2F82E091E032
-:101F600055DDCC5FCC3019F08FEF80930001C0932A
-:101F70000F01C30101963C01803B944029F4EDE739
-:101F8000F9E1E491EF3F89F4862D8C7411F0BA9851
-:101F900001C0BA9A0AB605FEDDCE85E1B09B85E1A7
-:101FA0008150E1F780E28ABFD5CEBA989EDE1BBE93
-:061FB00010BCE4CCFFCFE1
+:101E000079F1811108C082E899E1909311018093E2
+:101E1000100126E06FC0813071F44114510409F4BF
+:101E20004FC080911B01807F482E50901C0181E1A2
+:101E300087BFE89545C0833081F480911901909166
+:101E40001A013BDF80911B0190911C0136DF842D2C
+:101E50008F70B1F580E4382E33C08F73382E30C0C8
+:101E60009091190110920A01811106C010920B0184
+:101E70008AE091E022E03AC0853019F49093130192
+:101E800027C08630F9F480911A01813019F48AE96B
+:101E900099E104C0823041F488E899E190931101FE
+:101EA0008093100122E126C0833051F4911108C0C3
+:101EB0008CEA99E1909311018093100124E01AC0FB
+:101EC00020E018C0883079F0893031F49093150102
+:101ED0008AE091E020E00AC021E08A3009F020E0A9
+:101EE0008AE091E003C085E191E021E09093110147
+:101EF0008093100180911E01811105C080911D0108
+:101F0000821708F4282F209300011092120180916B
+:101F10000F0184FF31C0809100018F3F69F1C82F0C
+:101F2000893008F0C8E08C1B80930001809101018A
+:101F300098E8892780930101CC2391F0E09110016A
+:101F4000F091110182E091E0DC0124912D93319612
+:101F50002C2F280F2A13F9CFF0931101E0931001D1
+:101F60006C2F82E091E052DDCC5FCC3019F08FEF26
+:101F700080930001C0930F01C30101963C01803B97
+:101F8000944029F4EDE7F9E1E491EF3F89F4862DDF
+:101F90008C7411F0BA9801C0BA9A0AB605FEDACE6E
+:101FA00085E1B09B85E18150E1F780E28ABFD2CE26
+:0C1FB000BA989BDE1BBE10BCE1CCFFCF3A
:040000030000198060
:00000001FF
diff --git a/firmware/releases/t84_default.hex b/firmware/releases/t84_default.hex
index dc3534c..d8cfd3f 100644
--- a/firmware/releases/t84_default.hex
+++ b/firmware/releases/t84_default.hex
@@ -1,6 +1,6 @@
:1019800017C0197A4005930C09021200010100806A
:101990003209040000000000000012011001FF00E5
-:1019A0000008D016530702020000000104030904D6
+:1019A0000008D016530703020000000104030904D5
:1019B00011241FBECFE5D2E0CDBFDEBF20E0A0E600
:1019C000B0E001C01D92AC38B207E1F79FC1DC0165
:1019D0008FEF9FEF332715C02D912827722F229567
@@ -63,37 +63,37 @@
:101D600080935700E8953097C1F7412C512C832D73
:101D7000803459F4F2013297E03889E1F80750F4E1
:101D800085E080935700E89505C0843019F4CD2B89
-:101D900011F4EFC0312C80917200835087FD98C000
-:101DA00090916D009D3209F091C0883009F08EC08D
+:101D900011F4F2C0312C80917200835087FD9BC0FA
+:101DA00090916D009D3209F094C0883009F091C087
:101DB00083EC809361008AE580936F0090917700B7
-:101DC000907680917800992361F1811108C082E8B2
-:101DD00099E1909371008093700026E06CC081308F
-:101DE00059F44114510409F44CC080917B00807C6B
-:101DF000482E50907C0045C0833081F4809179005A
-:101E000090917A0057DF80917B0090917C0052DFA7
-:101E1000842D8F73B1F580E4382E33C08F73382E44
-:101E200030C09091790010926A00811106C0109222
-:101E30006B008AE690E022E03AC0853019F4909376
-:101E4000730027C08630F9F480917A00813019F44C
-:101E50008AE999E104C0823041F488E899E19093DD
-:101E600071008093700022E126C0833051F49111FB
-:101E700008C08CEA99E1909371008093700024E08F
-:101E80001AC020E018C0883079F0893031F490937E
-:101E900075008AE690E020E00AC021E08A3009F06F
-:101EA00020E08AE690E003C085E790E021E090938F
-:101EB00071008093700080917E00811105C0809137
-:101EC0007D00821708F4282F209360001092720082
-:101ED00080916F0084FF31C0809160008F3F69F175
-:101EE000C82F893008F0C8E08C1B80936000809177
-:101EF000610098E8892780936100CC2391F0E091FC
-:101F00007000F091710082E690E0DC0124912D9345
-:101F100031962C2F280F2A13F9CFF0937100E093FC
-:101F200070006C2F82E690E071DDCC5FCC3019F050
-:101F30008FEF80936000C0936F00C30101963C0156
-:101F4000803B944029F4EDE7F9E1E491EF3F89F417
-:101F5000862D8C7411F0BA9801C0BA9A0AB605FEA3
-:101F6000DDCE85E1B09B85E18150E1F780E28ABF5B
-:101F7000D5CEBA98AEDE1BBE10BC21BE0000FECC92
-:021F8000FFCF91
+:101DC000907680917800992379F1811108C082E89A
+:101DD00099E1909371008093700026E06FC081308C
+:101DE00071F44114510409F44FC080917B00807C50
+:101DF000482E50907C0081E187BFE89545C0833034
+:101E000081F48091790090917A0054DF80917B0079
+:101E100090917C004FDF842D8F73B1F580E4382ED4
+:101E200033C08F73382E30C09091790010926A00C1
+:101E3000811106C010926B008AE690E022E03AC061
+:101E4000853019F49093730027C08630F9F480919F
+:101E50007A00813019F48AE999E104C0823041F4B2
+:101E600088E899E1909371008093700022E126C088
+:101E7000833051F4911108C08CEA99E1909371007C
+:101E80008093700024E01AC020E018C0883079F0F8
+:101E9000893031F4909375008AE690E020E00AC022
+:101EA00021E08A3009F020E08AE690E003C085E76F
+:101EB00090E021E0909371008093700080917E000B
+:101EC000811105C080917D00821708F4282F20938E
+:101ED00060001092720080916F0084FF31C0809189
+:101EE00060008F3F69F1C82F893008F0C8E08C1B73
+:101EF000809360008091610098E889278093610059
+:101F0000CC2391F0E0917000F091710082E690E0B6
+:101F1000DC0124912D9331962C2F280F2A13F9CF11
+:101F2000F0937100E09370006C2F82E690E06EDD1C
+:101F3000CC5FCC3019F08FEF80936000C0936F00BE
+:101F4000C30101963C01803B944029F4EDE7F9E19F
+:101F5000E491EF3F89F4862D8C7411F0BA9801C09A
+:101F6000BA9A0AB605FEDACE85E1B09B85E18150CA
+:101F7000E1F780E28ABFD2CEBA98ABDE1BBE10BCBE
+:081F800021BE0000FBCCFFCFE5
:040000030000198060
:00000001FF
diff --git a/firmware/releases/t85_aggressive.hex b/firmware/releases/t85_aggressive.hex
index 5373ae9..d918965 100644
--- a/firmware/releases/t85_aggressive.hex
+++ b/firmware/releases/t85_aggressive.hex
@@ -1,6 +1,6 @@
:101A400017C01A3A4005930B0902120001010080E9
:101A50003209040000000000000012011001FF0024
-:101A60000008D01653070202000000010403090415
+:101A60000008D01653070302000000010403090414
:101A7000112420E0A0E6B0E001C01D92AC38B2070E
:101A8000E1F776C1A82FB92F80E090E041E050EA5D
:101A9000609530E009C02D9182279795879510F0C9
@@ -57,35 +57,36 @@
:101DC0005700E8953097C1F7412C512C832D803472
:101DD00059F4F2013297E0348AE1F80750F485E0D3
:101DE00080935700E89505C0843019F4CD2B11F489
-:101DF000E9C0312C80917200835087FD98C090918A
-:101E00006D009D3209F091C0883009F08EC083ECDE
+:101DF000ECC0312C80917200835087FD9BC0909184
+:101E00006D009D3209F094C0883009F091C083ECD8
:101E1000809361008AE580936F00909177009076BF
-:101E200080917800992361F1811108C082E49AE1E0
-:101E3000909371008093700026E06CC0813059F45B
-:101E40004114510409F44CC080917B00807C482EE1
-:101E500050907C0045C0833081F48091790090914E
-:101E60007A0060DF80917B0090917C005BDF842DA5
-:101E70008F73B1F580E4382E33C08F73382E30C0A5
-:101E80009091790010926A00811106C010926B0047
-:101E90008AE690E022E03AC0853019F4909373000E
-:101EA00027C08630F9F480917A00813019F48AE5F0
-:101EB0009AE104C0823041F488E49AE19093710081
-:101EC0008093700022E126C0833051F4911108C044
-:101ED0008CE69AE1909371008093700024E01AC020
-:101EE00020E018C0883079F0893031F49093750083
-:101EF0008AE690E020E00AC021E08A3009F020E084
-:101F00008AE690E003C085E790E021E090937100BD
-:101F10008093700080917E00811105C080917D00CA
-:101F2000821708F4282F209360001092720080918D
-:101F30006F0084FF31C0809160008F3F69F1C82F2E
-:101F4000893008F0C8E08C1B8093600080916100AC
-:101F500098E8892780936100CC2391F0E09170008C
-:101F6000F091710082E690E0DC0124912D9331968E
-:101F70002C2F280F2A13F9CFF0937100E0937000F3
-:101F80006C2F82E690E093DDCC5FCC3019F08FEFC0
-:101F900080936000C0936F00C30101963C01803BB9
-:101FA000944029F4EDE3FAE1E491EF3F59F40AB6E5
-:101FB00005FEE3CE8CE1B39B8CE18150E1F780E23A
-:0E1FC0008ABFDBCEBADE1BBE15BA38CDFFCF0E
+:101E200080917800992379F1811108C082E49AE1C8
+:101E3000909371008093700026E06FC0813071F440
+:101E40004114510409F44FC080917B00807C482EDE
+:101E500050907C0081E187BFE89545C0833081F4D4
+:101E60008091790090917A005DDF80917B00909164
+:101E70007C0058DF842D8F73B1F580E4382E33C099
+:101E80008F73382E30C09091790010926A008111C2
+:101E900006C010926B008AE690E022E03AC08530DE
+:101EA00019F49093730027C08630F9F480917A007A
+:101EB000813019F48AE59AE104C0823041F488E463
+:101EC0009AE1909371008093700022E126C08330E4
+:101ED00051F4911108C08CE69AE1909371008093BF
+:101EE000700024E01AC020E018C0883079F08930F2
+:101EF00031F4909375008AE690E020E00AC021E07A
+:101F00008A3009F020E08AE690E003C085E790E09F
+:101F100021E0909371008093700080917E00811188
+:101F200005C080917D00821708F4282F209360005F
+:101F30001092720080916F0084FF31C08091600028
+:101F40008F3F69F1C82F893008F0C8E08C1B80935F
+:101F500060008091610098E8892780936100CC231C
+:101F600091F0E0917000F091710082E690E0DC0168
+:101F700024912D9331962C2F280F2A13F9CFF0930B
+:101F80007100E09370006C2F82E690E090DDCC5FF2
+:101F9000CC3019F08FEF80936000C0936F00C301C5
+:101FA00001963C01803B944029F4EDE3FAE1E49191
+:101FB000EF3F59F40AB605FEE0CE8CE1B39B8CE10D
+:101FC0008150E1F780E28ABFD8CEB7DE1BBE15BADA
+:041FD00035CDFFCF3D
:0400000300001A409F
:00000001FF
diff --git a/firmware/releases/t85_default.hex b/firmware/releases/t85_default.hex
index b16e589..5c1544b 100644
--- a/firmware/releases/t85_default.hex
+++ b/firmware/releases/t85_default.hex
@@ -1,6 +1,6 @@
:1019800017C0197A4005930B09021200010100806B
:101990003209040000000000000012011001FF00E5
-:1019A0000008D016530702020000000104030904D6
+:1019A0000008D016530703020000000104030904D5
:1019B00011241FBECFE5D2E0CDBFDEBF20E0A0E600
:1019C000B0E001C01D92AC38B207E1F7BFC1A82F4B
:1019D000B92F80E090E041E050EA609530E009C026
@@ -67,36 +67,36 @@
:101DA000F9E1E054F10983E080935700E89530971A
:101DB000C1F7412C512C832D803459F4F201329714
:101DC000E03889E1F80750F485E080935700E89502
-:101DD00005C0843019F4CD2B11F4E9C0312C809169
-:101DE0007200835087FD98C090916D009D3209F07C
-:101DF00091C0883009F08EC083EC809361008AE541
+:101DD00005C0843019F4CD2B11F4ECC0312C809166
+:101DE0007200835087FD9BC090916D009D3209F079
+:101DF00094C0883009F091C083EC809361008AE53B
:101E000080936F009091770090768091780099236D
-:101E100061F1811108C082E899E19093710080938B
-:101E2000700026E06CC0813059F44114510409F46B
-:101E30004CC080917B00807C482E50907C0045C037
-:101E4000833081F48091790090917A004DDF809108
-:101E50007B0090917C0048DF842D8F73B1F580E486
-:101E6000382E33C08F73382E30C090917900109285
-:101E70006A00811106C010926B008AE690E022E0B1
-:101E80003AC0853019F49093730027C08630F9F476
-:101E900080917A00813019F48AE999E104C0823096
-:101EA00041F488E899E1909371008093700022E1F9
-:101EB00026C0833051F4911108C08CEA99E19093C7
-:101EC00071008093700024E01AC020E018C08830B0
-:101ED00079F0893031F4909375008AE690E020E043
-:101EE0000AC021E08A3009F020E08AE690E003C0D1
-:101EF00085E790E021E090937100809370008091DD
-:101F00007E00811105C080917D00821708F4282F82
-:101F1000209360001092720080916F0084FF31C0A6
-:101F2000809160008F3F69F1C82F893008F0C8E0C8
-:101F30008C1B809360008091610098E889278093D2
-:101F40006100CC2391F0E0917000F091710082E685
-:101F500090E0DC0124912D9331962C2F280F2A1329
-:101F6000F9CFF0937100E09370006C2F82E690E05F
-:101F700043DDCC5FCC3019F08FEF80936000C093CD
-:101F80006F00C30101963C01803B944029F4EDE7CA
-:101F9000F9E1E491EF3F59F40AB605FEE3CE8DE195
-:101FA000B39B8DE18150E1F780E28ABFDBCEB3DEE7
-:081FB0001BBE15BAE3CCFFCF04
+:101E100079F1811108C082E899E190937100809373
+:101E2000700026E06FC0813071F44114510409F450
+:101E30004FC080917B00807C482E50907C0081E1D7
+:101E400087BFE89545C0833081F4809179009091F7
+:101E50007A004ADF80917B0090917C0045DF842DE1
+:101E60008F73B1F580E4382E33C08F73382E30C0B5
+:101E70009091790010926A00811106C010926B0057
+:101E80008AE690E022E03AC0853019F4909373001E
+:101E900027C08630F9F480917A00813019F48AE9FC
+:101EA00099E104C0823041F488E899E1909371008F
+:101EB0008093700022E126C0833051F4911108C054
+:101EC0008CEA99E1909371008093700024E01AC02D
+:101ED00020E018C0883079F0893031F49093750093
+:101EE0008AE690E020E00AC021E08A3009F020E094
+:101EF0008AE690E003C085E790E021E090937100CE
+:101F00008093700080917E00811105C080917D00DA
+:101F1000821708F4282F209360001092720080919D
+:101F20006F0084FF31C0809160008F3F69F1C82F3E
+:101F3000893008F0C8E08C1B8093600080916100BC
+:101F400098E8892780936100CC2391F0E09170009C
+:101F5000F091710082E690E0DC0124912D9331969E
+:101F60002C2F280F2A13F9CFF0937100E093700003
+:101F70006C2F82E690E040DDCC5FCC3019F08FEF23
+:101F800080936000C0936F00C30101963C01803BC9
+:101F9000944029F4EDE7F9E1E491EF3F59F40AB6F2
+:101FA00005FEE0CE8DE1B39B8DE18150E1F780E24B
+:0E1FB0008ABFD8CEB0DE1BBE15BAE0CCFFCF84
:040000030000198060
:00000001FF