summaryrefslogtreecommitdiffstats
path: root/firmware
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 /firmware
parenta84f9b262f0b9218356f261277f19208eea60904 (diff)
downloadmicronucleus-24d371d5e75bf55a70a412a9f544a19614ff56f4.tar.gz
micronucleus-24d371d5e75bf55a70a412a9f544a19614ff56f4.tar.bz2
micronucleus-24d371d5e75bf55a70a412a9f544a19614ff56f4.zip
firmware: v2.03 release
Diffstat (limited to 'firmware')
-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
12 files changed, 1072 insertions, 225 deletions
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