diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 436221a..0000000 --- a/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -dev/* -*.zip \ No newline at end of file diff --git a/Board/Board.h b/Board/Board.h deleted file mode 100644 index dffeea9..0000000 --- a/Board/Board.h +++ /dev/null @@ -1,127 +0,0 @@ -/* -LUFA Library -Copyright (C) Dean Camera, 2014. - -dean [at] fourwalledcubicle [dot] com -www.lufa-lib.org -*/ - -/* -Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) - -Permission to use, copy, modify, distribute, and sell this -software and its documentation for any purpose is hereby granted -without fee, provided that the above copyright notice appear in -all copies and that both that the copyright notice and this -permission notice and warranty disclaimer appear in supporting -documentation, and that the name of the author not be used in -advertising or publicity pertaining to distribution of the -software without specific, written prior permission. - -The author disclaims all warranties with regard to this -software, including all implied warranties of merchantability -and fitness. In no event shall the author be liable for any -special, indirect or consequential damages or any damages -whatsoever resulting from loss of use, data or profits, whether -in an action of contract, negligence or other tortious action, -arising out of or in connection with the use or performance of -this software. -*/ - -/* -Copyright(c) 2014-2015 NicoHood -See the readme for credit to other people. - -This file is part of Hoodloader2. - -Hoodloader2 is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -Hoodloader2 is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Hoodloader2. If not, see . -*/ - -/** \file -* \brief Board specific information header for the Arduino Leonardo board. -* \copydetails Group_BoardInfo_LEONARDO -* -* \note This file should not be included directly. It is automatically included as needed by the Board driver -* dispatch header located in LUFA/Drivers/Board/Board.h. -*/ - -/** \ingroup Group_BoardInfo -* \defgroup Group_BoardInfo_LEONARDO LEONARDO -* \brief Board specific information header for the Arduino Leonardo board. -* -* Board specific information header for the Arduino Leonardo board (http://arduino.cc/en/Main/arduinoBoardLeonardo). -* -* @{ -*/ - -#ifndef __BOARD_HOODLOADER_H__ -#define __BOARD_HOODLOADER_H__ - -/* Includes: */ -//#include "../../../../Common/Common.h" -//#include "../../LEDs.h" - -/* Enable C linkage for C++ Compilers: */ -#if defined(__cplusplus) -extern "C" { -#endif - - /* Preprocessor Checks: */ -#if !defined(__INCLUDE_FROM_BOARD_H) -#error Do not include this file directly. Include LUFA/Drivers/Board/Board.h instead. -#endif - - /* Public Interface - May be used in end-application: */ - /* Macros: */ - /** Indicates the board has hardware LEDs mounted. */ -#define BOARD_HAS_LEDS - -// 1200 is the baud to load the Bootloader from an Arduino sketch, 57600 turns out to be the actual baud rate for uploading -//TODO change baud rate to something people wont normally use -//#define BAUDRATE_CDC_BOOTLOADER 1200 -#define BAUDRATE_CDC_BOOTLOADER 57600 - -#define ARDUINO_PORT PORTD -#define ARDUINO_DDR DDRD - -#define AVR_RESET_LINE_PORT PORTD -#define AVR_RESET_LINE_DDR DDRD -#define AVR_RESET_LINE_PIN PIND -#define AVR_RESET_LINE_MASK (1 << PD7) - - // hardware configuration -#define AVR_SPI_PIN PINB -#define AVR_SPI_PORT PORTB -#define AVR_SPI_DDR DDRB -#define AVR_MOSI PB2 -#define AVR_MISO PB3 -#define AVR_SCK PB1 - // The "real", hardware SS pin is not connected on an Arduino R3 so we use another pin as SS. - // The hardware SS pin still needs to be in output mode to enable SPI master mode. - // SS is the pin thats close to the TX Led (bottom right) -#define AVR_SS PB4 -#define AVR_HARDWARE_SS PB0 - -#define LOW 0 -#define HIGH 1 - - /* Disable C linkage for C++ Compilers: */ -#if defined(__cplusplus) -} -#endif - -#endif - -/** @} */ - diff --git a/Board/Buttons.h b/Board/Buttons.h deleted file mode 100644 index b30ee0f..0000000 --- a/Board/Buttons.h +++ /dev/null @@ -1,165 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2014. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org - */ - -/* - Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaims all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. - */ - -/* -Copyright(c) 2014-2015 NicoHood -See the readme for credit to other people. - -This file is part of Hoodloader2. - -Hoodloader2 is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -Hoodloader2 is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Hoodloader2. If not, see . -*/ - -/** \file - * \brief Digital button board hardware driver. - * - * This file is the master dispatch header file for the board-specific Buttons driver, for boards containing - * physical pushbuttons connected to the microcontroller's GPIO pins. - * - * User code should include this file, which will in turn include the correct Button driver header file for the - * currently selected board. - * - * If the \c BOARD value is set to \c BOARD_USER, this will include the \c /Board/Buttons.h file in the user project - * directory. - * - * For possible \c BOARD makefile values, see \ref Group_BoardTypes. - */ - -/** \ingroup Group_BoardDrivers - * \defgroup Group_Buttons Buttons Driver - LUFA/Drivers/Board/Buttons.h - * \brief Digital button board hardware driver. - * - * \section Sec_Buttons_Dependencies Module Source Dependencies - * The following files must be built with any user project that uses this module: - * - None - * - * \section Sec_Buttons_ModDescription Module Description - * Hardware buttons driver. This provides an easy to use driver for the hardware buttons present on many boards. - * It provides a way to easily configure and check the status of all the buttons on the board so that appropriate - * actions can be taken. - * - * If the \c BOARD value is set to \c BOARD_USER, this will include the \c /Board/Buttons.h file in the user project - * directory. Otherwise, it will include the appropriate built-in board driver header file. - * - * For possible \c BOARD makefile values, see \ref Group_BoardTypes. - * - * \section Sec_Buttons_ExampleUsage Example Usage - * The following snippet is an example of how this module may be used within a typical - * application. - * - * \code - * // Initialize the button driver before first use - * Buttons_Init(); - * - * printf("Waiting for button press...\r\n"); - * - * // Loop until a board button has been pressed - * uint8_t ButtonPress; - * while (!(ButtonPress = Buttons_GetStatus())) {}; - * - * // Display which button was pressed (assuming two board buttons) - * printf("Button pressed: %s\r\n", (ButtonPress == BUTTONS_BUTTON1) ? "Button 1" : "Button 2"); - * \endcode - * - * @{ - */ - -#ifndef __BUTTONS_ARDUINO_H__ -#define __BUTTONS_ARDUINO_H__ - -/* Includes: */ -#include - -/* Enable C linkage for C++ Compilers: */ -#if defined(__cplusplus) -extern "C" { -#endif - - /* Preprocessor Checks: */ -#if !defined(__INCLUDE_FROM_BUTTONS_H) -#error Do not include this file directly. Include LUFA/Drivers/Board/Buttons.h instead. -#endif - -#define BUTTONS_BUTTON1 (1 << PB5) -#define BUTTONS_BUTTON2 (1 << PB6) -#define BUTTONS_BUTTON3 (1 << PB7) // unused -#define BUTTONS_ALL_BUTTONS (BUTTONS_BUTTON1 | BUTTONS_BUTTON2 | BUTTONS_BUTTON3) - - // Hoodloader defined button usage -#define BUTTON_HID BUTTONS_BUTTON1 -#define BUTTON_AUTORESET BUTTONS_BUTTON2 - - /* Pseudo-Functions for Doxygen: */ -#if !defined(__DOXYGEN__) - /** Initializes the buttons driver, so that the current button position can be read. This sets the appropriate - * I/O pins to an inputs with pull-ups enabled. - * - * This must be called before any Button driver functions are used. - */ - static inline void Buttons_Init(void){ - DDRB &= ~BUTTONS_ALL_BUTTONS; - PORTB |= BUTTONS_ALL_BUTTONS; - } - - /** Disables the buttons driver, releasing the I/O pins back to their default high-impedance input mode. */ - static inline void Buttons_Disable(void){ - PORTB &= ~BUTTONS_ALL_BUTTONS; - } - - /** Returns a mask indicating which board buttons are currently pressed. - * - * \return Mask of \c BUTTONS_BUTTON* constants indicating which board buttons are currently pressed. - */ - static inline uint_reg_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT; - static inline uint_reg_t Buttons_GetStatus(void){ - return (PINB & (BUTTONS_ALL_BUTTONS)); - } -#endif - - /* Disable C linkage for C++ Compilers: */ -#if defined(__cplusplus) -} -#endif - -#endif - -/** @} */ - diff --git a/Board/LEDs.h b/Board/LEDs.h deleted file mode 100644 index b27c6e4..0000000 --- a/Board/LEDs.h +++ /dev/null @@ -1,145 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2014. - - dean [at] fourwalledcubicle [dot] com - www.fourwalledcubicle.com - */ - -/* - Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaim all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. - */ - -/* -Copyright(c) 2014-2015 NicoHood -See the readme for credit to other people. - -This file is part of Hoodloader2. - -Hoodloader2 is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -Hoodloader2 is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Hoodloader2. If not, see . -*/ - -#ifndef __LEDS_ARDUINOUNO_H__ -#define __LEDS_ARDUINOUNO_H__ - -/* Includes: */ -#include - -/* Enable C linkage for C++ Compilers: */ -#if defined(__cplusplus) -extern "C" { -#endif - - /* Preprocessor Checks: */ -#if !defined(__INCLUDE_FROM_LEDS_H) -#error Do not include this file directly. Include LUFA/Drivers/Board/LEDS.h instead. -#endif - - // Pulse generation counters to keep track of the number of milliseconds remaining for each pulse type -#define TX_RX_LED_PULSE_MS 3 - - /* Public Interface - May be used in end-application: */ - /* Macros: */ - /** LED mask for the first LED on the board. */ -#define LEDS_LED1 (1 << 5) - - /** LED mask for the second LED on the board. */ -#define LEDS_LED2 (1 << 4) - - /** LED mask for all the LEDs on the board. */ -#define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2) - - /** LED mask for the none of the board LEDs */ -#define LEDS_NO_LEDS 0 - - // LED mask for the library LED driver, to indicate TX activity. -#define LEDMASK_TX LEDS_LED1 - - // LED mask for the library LED driver, to indicate RX activity. -#define LEDMASK_RX LEDS_LED2 - - // AVRISP Leds -#define LEDS_PMODE LEDS_LED1 -#define LEDS_ERR LEDS_LED2 - - /* Inline Functions: */ -#if !defined(__DOXYGEN__) - static inline void LEDs_Init(void) - { - DDRD |= LEDS_ALL_LEDS; - PORTD |= LEDS_ALL_LEDS; - } - - static inline void LEDs_Disable(void) - { - DDRD &= ~LEDS_ALL_LEDS; - PORTD |= LEDS_ALL_LEDS; - } - - static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask) - { - PORTD &= ~LEDMask; - } - - static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask) - { - PORTD |= LEDMask; - } - - static inline void LEDs_SetAllLEDs(const uint8_t LEDMask) - { - PORTD = ((PORTD | LEDS_ALL_LEDS) & ~LEDMask); - } - - static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask) - { - PORTD = ((PORTD | ActiveMask) & ~LEDMask); - } - - static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) - { - PORTD ^= LEDMask; - } - - static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT; - static inline uint8_t LEDs_GetLEDs(void) - { - return (PORTD & LEDS_ALL_LEDS); - } -#endif - - /* Disable C linkage for C++ Compilers: */ -#if defined(__cplusplus) -} -#endif - -#endif diff --git a/HoodLoader2.inf b/HoodLoader2.inf deleted file mode 100644 index 16eabc6..0000000 --- a/HoodLoader2.inf +++ /dev/null @@ -1,81 +0,0 @@ -;************************************************************ -; Windows USB CDC ACM Setup File -; Copyright (c) 2000 Microsoft Corporation -;************************************************************ - -[DefaultInstall] -CopyINF="HoodLoader2.inf" - -[Version] -Signature="$Windows NT$" -Class=Ports -ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} -Provider=%MFGNAME% -DriverVer=7/1/2012,10.0.0.0 - -[Manufacturer] -%MFGNAME%=DeviceList, NTx86, NTamd64, NTia64 - -[SourceDisksNames] - -[SourceDisksFiles] - -[DestinationDirs] -DefaultDestDir=12 - -[DriverInstall] -Include=mdmcpq.inf -CopyFiles=FakeModemCopyFileSection -AddReg=DriverInstall.AddReg - -[DriverInstall.Services] -Include=mdmcpq.inf -AddService=usbser, 0x00000002, LowerFilter_Service_Inst - -[DriverInstall.AddReg] -HKR,,EnumPropPages32,,"msports.dll,SerialPortPropPageProvider" - -;------------------------------------------------------------------------------ -; Vendor and Product ID Definitions -;------------------------------------------------------------------------------ -; When developing your USB device, the VID and PID used in the PC side -; application program and the firmware on the microcontroller must match. -; Modify the below line to use your VID and PID. Use the format as shown below. -; Note: One INF file can be used for multiple devices with different VID and PIDs. -; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line. -;------------------------------------------------------------------------------ -[DeviceList] -%hoodloader2_16u2.name%=DriverInstall, USB\VID_2341&PID_484C&MI_00 -%hoodloader2_32u2.name%=DriverInstall, USB\VID_2341&PID_484D&MI_00 -%hoodloader2_8u2.name%=DriverInstall, USB\VID_2341&PID_484E&MI_00 -%hoodloader2_at90usb1622.name%=DriverInstall, USB\VID_2341&PID_484F&MI_00 - -[DeviceList.NTx86] -%hoodloader2_16u2.name%=DriverInstall, USB\VID_2341&PID_484C&MI_00 -%hoodloader2_32u2.name%=DriverInstall, USB\VID_2341&PID_484D&MI_00 -%hoodloader2_8u2.name%=DriverInstall, USB\VID_2341&PID_484E&MI_00 -%hoodloader2_at90usb1622.name%=DriverInstall, USB\VID_2341&PID_484F&MI_00 - -[DeviceList.NTamd64] -%hoodloader2_16u2.name%=DriverInstall, USB\VID_2341&PID_484C&MI_00 -%hoodloader2_32u2.name%=DriverInstall, USB\VID_2341&PID_484D&MI_00 -%hoodloader2_8u2.name%=DriverInstall, USB\VID_2341&PID_484E&MI_00 -%hoodloader2_at90usb1622.name%=DriverInstall, USB\VID_2341&PID_484F&MI_00 - -[DeviceList.NTia64] -%hoodloader2_16u2.name%=DriverInstall, USB\VID_2341&PID_484C&MI_00 -%hoodloader2_32u2.name%=DriverInstall, USB\VID_2341&PID_484D&MI_00 -%hoodloader2_8u2.name%=DriverInstall, USB\VID_2341&PID_484E&MI_00 -%hoodloader2_at90usb1622.name%=DriverInstall, USB\VID_2341&PID_484F&MI_00 - -;------------------------------------------------------------------------------ -; String Definitions -;------------------------------------------------------------------------------ -;Modify these strings to customize your device -;------------------------------------------------------------------------------ -[Strings] -MFGNAME="NicoHood" -hoodloader2_16u2.name="Arduino HoodLoader2 16u2" -hoodloader2_32u2.name="Arduino HoodLoader2 32u2" -hoodloader2_8u2.name="Arduino HoodLoader2 8u2" -hoodloader2_at90usb162.name="Arduino HoodLoader2 at90usb162" diff --git a/Readme.md b/Readme.md index 9916c37..cca410e 100644 --- a/Readme.md +++ b/Readme.md @@ -1,4 +1,4 @@ -HoodLoader2.0.3 +HoodLoader2.0.4 =============== ![header](header.jpg) @@ -29,11 +29,14 @@ Download You have 3 versions you can download: * The master includes all fixes to the current stable release. Download it by clicking download at the right. -Use the [online Wiki](https://github.com/NicoHood/HoodLoader2/wiki) to get the newest documentation. +The [online Wiki](https://github.com/NicoHood/HoodLoader2/wiki) should have the newest documentation +but might have some updated stuff which is only available in the dev tree. * Download an offline version in [releases](https://github.com/NicoHood/HoodLoader2/releases). It's a snapshot of the current stable release but might have missed some updates that the current master branch has included. This also includes an offline version of the wiki. Offline versions will be available after some time when the official release is out. -* Select [branch 'dev'](https://github.com/NicoHood/HoodLoader2/tree/dev) to test the bleeding edge of this software. It might now work at all or has a lot of debugging stuff in it. +* Select [branch 'dev'](https://github.com/NicoHood/HoodLoader2/tree/dev) to test the bleeding edge of this software. +It might not work at all or has a lot of debugging stuff in it. +Use the [online Wiki](https://github.com/NicoHood/HoodLoader2/wiki) to get the newest documentation. If the dev version gets near to a new release a note will be placed here, that you can test the new dev beta. Currently there is no beta available. @@ -57,10 +60,23 @@ www.nicohood.de Version History =============== ``` +2.0.4 Release (20.03.2015) +* HoodLoader2.0.4 + * Upload verification on USB hubs fix in bootloader + * Fixed 1 byte buffer overflow + * Improved installation sketch + * Moved to Lufa Board definition (with a fix) +* Added HID-Project 2.2 compatibility + * Added boards.txt for Uno/Mega + HID-Bridge + * Improved Uno/Mega uploading (no double tab needed any more) + * Updated USB drivers for better PC side recognition + (Each USB core has a different PID + Windows driver) + * Fixed wrong PIDs in boards.txt + 2.0.3 Release (28.01.2015) -* added HID Project 2.1 board definition compatibility -* fixed usb flag pass via boards.txt (instead of pins_arduino.h) -* fixed 16u2 4 pin header pinout picture +* Added HID Project 2.1 board definition compatibility +* Fixed usb flag pass via boards.txt (instead of pins_arduino.h) +* Fixed 16u2 4 pin header pinout picture * DFU burn bootloader fix * HoodLoader2.0.3 released (minor firmware CDC identifier fix) * Added 32u2 bootloader to the installation sketch as well @@ -118,7 +134,7 @@ Version History ``` -Licence and Copyright +License and Copyright ===================== If you use this library for any cool project let me know! diff --git a/avr/boards.txt b/avr/boards.txt index 6387ba0..4ffc8b4 100644 --- a/avr/boards.txt +++ b/avr/boards.txt @@ -21,6 +21,12 @@ HoodLoader2atmega16u2.build.board=HOODLOADER2 HoodLoader2atmega16u2.build.f_cpu=16000000L HoodLoader2atmega16u2.vid.0=0x2341 HoodLoader2atmega16u2.pid.0=0x484C +HoodLoader2atmega16u2.vid.1=0x2341 +HoodLoader2atmega16u2.pid.1=0x485C +HoodLoader2atmega16u2.vid.2=0x2341 +HoodLoader2atmega16u2.pid.2=0x486C +HoodLoader2atmega16u2.vid.3=0x2341 +HoodLoader2atmega16u2.pid.3=0x487C #uploading settings HoodLoader2atmega16u2.upload.speed=57600 @@ -30,15 +36,14 @@ HoodLoader2atmega16u2.upload.use_1200bps_touch=true HoodLoader2atmega16u2.upload.wait_for_upload_port=true #fuses (HoodLoader2 only, not suitable for DFU) -HoodLoader2atmega16u2.bootloader.low_fuses=0xFF +HoodLoader2atmega16u2.bootloader.low_fuses=0xEF HoodLoader2atmega16u2.bootloader.high_fuses=0xD8 HoodLoader2atmega16u2.bootloader.extended_fuses=0xFC HoodLoader2atmega16u2.bootloader.unlock_bits=0x3F -HoodLoader2atmega16u2.bootloader.lock_bits=0x2F +HoodLoader2atmega16u2.bootloader.lock_bits=0x0F #usb settings, manufacturer overwritten by the IDE because of the VID HoodLoader2atmega16u2.build.vid=0x2341 -HoodLoader2atmega16u2.build.pid=0x484C HoodLoader2atmega16u2.build.usb_product="HoodLoader2 16u2" HoodLoader2atmega16u2.build.usb_manufacturer="Nico Hood" HoodLoader2atmega16u2.build.extra_flags={build.usb_flags} @@ -48,85 +53,28 @@ HoodLoader2atmega16u2.build.extra_flags={build.usb_flags} #HID Project needs to be installed https://github.com/NicoHood/HID HoodLoader2atmega16u2.menu.usbcore.hid=Serial + Extended HID HoodLoader2atmega16u2.menu.usbcore.hid.build.variant=HoodLoader2_hid +HoodLoader2atmega16u2.menu.usbcore.hid.build.pid=0x484C HoodLoader2atmega16u2.menu.usbcore.gamepad=Serial + Gamepad HID HoodLoader2atmega16u2.menu.usbcore.gamepad.build.variant=HoodLoader2_gamepad +HoodLoader2atmega16u2.menu.usbcore.gamepad.build.pid=0x486C HoodLoader2atmega16u2.menu.usbcore.custom=Serial + Custom HID HoodLoader2atmega16u2.menu.usbcore.custom.build.variant=HoodLoader2_custom +HoodLoader2atmega16u2.menu.usbcore.custom.build.pid=0x485C HoodLoader2atmega16u2.menu.usbcore.USB_CORE=Default HID Project Core HoodLoader2atmega16u2.menu.usbcore.USB_CORE.build.variant=HoodLoader2 +HoodLoader2atmega16u2.menu.usbcore.USB_CORE.build.pid=0x487C HoodLoader2atmega16u2.menu.usbcore.NO_USB=No USB functions HoodLoader2atmega16u2.menu.usbcore.NO_USB.build.variant=HoodLoader2_NoUSB +HoodLoader2atmega16u2.menu.usbcore.NO_USB.build.pid=0x484C #Board selection (only important for burning bootloaders) HoodLoader2atmega16u2.menu.board.uno=HoodLoader2 Uno -HoodLoader2atmega16u2.menu.board.uno.bootloader.file=HoodLoader2_0_3_Uno_16u2.hex +HoodLoader2atmega16u2.menu.board.uno.bootloader.file=HoodLoader2/HoodLoader2_0_4_Uno_16u2.hex HoodLoader2atmega16u2.menu.board.mega2560=HoodLoader2 Mega -HoodLoader2atmega16u2.menu.board.mega2560.bootloader.file=HoodLoader2_0_3_Mega_16u2.hex +HoodLoader2atmega16u2.menu.board.mega2560.bootloader.file=HoodLoader2/HoodLoader2_0_4_Mega_16u2.hex HoodLoader2atmega16u2.menu.board.dev=HoodLoader2 Dev -HoodLoader2atmega16u2.menu.board.dev.bootloader.file=../../HoodLoader2.hex - - -############################################################## - - -HoodLoader2at90usb162.name=HoodLoader2 at90usb162 -HoodLoader2at90usb162.build.core=HID:hid -HoodLoader2at90usb162.bootloader.tool=arduino:avrdude -HoodLoader2at90usb162.upload.tool=arduino:avrdude - -# MCU properties -HoodLoader2at90usb162.upload.maximum_size=12288 -HoodLoader2at90usb162.upload.maximum_data_size=512 -HoodLoader2at90usb162.build.mcu=at90usb162 - -#general settings for all boards: -HoodLoader2at90usb162.build.board=HOODLOADER2 -HoodLoader2at90usb162.build.f_cpu=16000000L -HoodLoader2at90usb162.vid.0=0x2341 -HoodLoader2at90usb162.pid.0=0x484F - -#uploading settings -HoodLoader2at90usb162.upload.speed=57600 -HoodLoader2at90usb162.upload.protocol=avr109 -HoodLoader2at90usb162.upload.disable_flushing=true -HoodLoader2at90usb162.upload.use_1200bps_touch=true -HoodLoader2at90usb162.upload.wait_for_upload_port=true - -#fuses (HoodLoader2 only, not suitable for DFU) -HoodLoader2at90usb162.bootloader.low_fuses=0xFF -HoodLoader2at90usb162.bootloader.high_fuses=0xD8 -HoodLoader2at90usb162.bootloader.extended_fuses=0xFC -HoodLoader2at90usb162.bootloader.unlock_bits=0x3F -HoodLoader2at90usb162.bootloader.lock_bits=0x2F - -#usb settings, manufacturer overwritten by the IDE because of the VID -HoodLoader2at90usb162.build.vid=0x2341 -HoodLoader2at90usb162.build.pid=0x484C -HoodLoader2at90usb162.build.usb_product="HoodLoader2 at90usb162" -HoodLoader2at90usb162.build.usb_manufacturer="Nico Hood" -HoodLoader2at90usb162.build.extra_flags={build.usb_flags} - - -#USB core selection -#HID Project needs to be installed https://github.com/NicoHood/HID -HoodLoader2at90usb162.menu.usbcore.hid=Serial + Extended HID -HoodLoader2at90usb162.menu.usbcore.hid.build.variant=HoodLoader2_hid -HoodLoader2at90usb162.menu.usbcore.gamepad=Serial + Gamepad HID -HoodLoader2at90usb162.menu.usbcore.gamepad.build.variant=HoodLoader2_gamepad -HoodLoader2at90usb162.menu.usbcore.custom=Serial + Custom HID -HoodLoader2at90usb162.menu.usbcore.custom.build.variant=HoodLoader2_custom -HoodLoader2at90usb162.menu.usbcore.USB_CORE=Default HID Project Core -HoodLoader2at90usb162.menu.usbcore.USB_CORE.build.variant=HoodLoader2 -HoodLoader2at90usb162.menu.usbcore.NO_USB=No USB functions -HoodLoader2at90usb162.menu.usbcore.NO_USB.build.variant=HoodLoader2_NoUSB - - -#Board selection (only important for burning bootloaders) -HoodLoader2at90usb162.menu.board.uno=HoodLoader2 Uno -HoodLoader2at90usb162.menu.board.uno.bootloader.file=HoodLoader2_0_1_Uno_at90usb162.hex -HoodLoader2at90usb162.menu.board.mega2560=HoodLoader2 Mega -HoodLoader2at90usb162.menu.board.mega2560.bootloader.file=HoodLoader2_0_1_Mega_at90usb162.hex +HoodLoader2atmega16u2.menu.board.dev.bootloader.file=HoodLoader2/HoodLoader2.hex ############################################################## @@ -147,6 +95,12 @@ HoodLoader2atmega32u2.build.board=HOODLOADER2 HoodLoader2atmega32u2.build.f_cpu=16000000L HoodLoader2atmega32u2.vid.0=0x2341 HoodLoader2atmega32u2.pid.0=0x484D +HoodLoader2atmega32u2.vid.1=0x2341 +HoodLoader2atmega32u2.pid.1=0x485D +HoodLoader2atmega32u2.vid.2=0x2341 +HoodLoader2atmega32u2.pid.2=0x486D +HoodLoader2atmega32u2.vid.3=0x2341 +HoodLoader2atmega32u2.pid.3=0x487D #uploading settings HoodLoader2atmega32u2.upload.speed=57600 @@ -156,15 +110,14 @@ HoodLoader2atmega32u2.upload.use_1200bps_touch=true HoodLoader2atmega32u2.upload.wait_for_upload_port=true #fuses (HoodLoader2 only, not suitable for DFU) -HoodLoader2atmega32u2.bootloader.low_fuses=0xFF +HoodLoader2atmega32u2.bootloader.low_fuses=0xEF HoodLoader2atmega32u2.bootloader.high_fuses=0xD8 HoodLoader2atmega32u2.bootloader.extended_fuses=0xFC HoodLoader2atmega32u2.bootloader.unlock_bits=0x3F -HoodLoader2atmega32u2.bootloader.lock_bits=0x2F +HoodLoader2atmega32u2.bootloader.lock_bits=0x0F #usb settings, manufacturer overwritten by the IDE because of the VID HoodLoader2atmega32u2.build.vid=0x2341 -HoodLoader2atmega32u2.build.pid=0x484C HoodLoader2atmega32u2.build.usb_product="HoodLoader2 32u2" HoodLoader2atmega32u2.build.usb_manufacturer="Nico Hood" HoodLoader2atmega32u2.build.extra_flags={build.usb_flags} @@ -174,22 +127,28 @@ HoodLoader2atmega32u2.build.extra_flags={build.usb_flags} #HID Project needs to be installed https://github.com/NicoHood/HID HoodLoader2atmega32u2.menu.usbcore.hid=Serial + Extended HID HoodLoader2atmega32u2.menu.usbcore.hid.build.variant=HoodLoader2_hid +HoodLoader2atmega32u2.menu.usbcore.hid.build.pid=0x484D HoodLoader2atmega32u2.menu.usbcore.gamepad=Serial + Gamepad HID HoodLoader2atmega32u2.menu.usbcore.gamepad.build.variant=HoodLoader2_gamepad +HoodLoader2atmega32u2.menu.usbcore.gamepad.build.pid=0x486D HoodLoader2atmega32u2.menu.usbcore.custom=Serial + Custom HID HoodLoader2atmega32u2.menu.usbcore.custom.build.variant=HoodLoader2_custom +HoodLoader2atmega32u2.menu.usbcore.custom.build.pid=0x485D HoodLoader2atmega32u2.menu.usbcore.USB_CORE=Default HID Project Core HoodLoader2atmega32u2.menu.usbcore.USB_CORE.build.variant=HoodLoader2 +HoodLoader2atmega32u2.menu.usbcore.USB_CORE.build.pid=0x487D HoodLoader2atmega32u2.menu.usbcore.NO_USB=No USB functions HoodLoader2atmega32u2.menu.usbcore.NO_USB.build.variant=HoodLoader2_NoUSB +HoodLoader2atmega32u2.menu.usbcore.NO_USB.build.pid=0x484D #Board selection (only important for burning bootloaders) HoodLoader2atmega32u2.menu.board.uno=HoodLoader2 Uno -HoodLoader2atmega32u2.menu.board.uno.bootloader.file=HoodLoader2_0_3_Uno_32u2.hex +HoodLoader2atmega32u2.menu.board.uno.bootloader.file=HoodLoader2/HoodLoader2_0_4_Uno_32u2.hex HoodLoader2atmega32u2.menu.board.mega2560=HoodLoader2 Mega -HoodLoader2atmega32u2.menu.board.mega2560.bootloader.file=HoodLoader2_0_3_Mega_32u2.hex - +HoodLoader2atmega32u2.menu.board.mega2560.bootloader.file=HoodLoader2/HoodLoader2_0_4_Mega_32u2.hex +HoodLoader2atmega32u2.menu.board.dev=HoodLoader2 Dev +HoodLoader2atmega32u2.menu.board.dev.bootloader.file=HoodLoader2/HoodLoader2.hex ############################################################## @@ -209,6 +168,12 @@ HoodLoader2atmega8u2.build.board=HOODLOADER2 HoodLoader2atmega8u2.build.f_cpu=16000000L HoodLoader2atmega8u2.vid.0=0x2341 HoodLoader2atmega8u2.pid.0=0x484E +HoodLoader2atmega8u2.vid.1=0x2341 +HoodLoader2atmega8u2.pid.1=0x485E +HoodLoader2atmega8u2.vid.2=0x2341 +HoodLoader2atmega8u2.pid.2=0x486E +HoodLoader2atmega8u2.vid.3=0x2341 +HoodLoader2atmega8u2.pid.3=0x487E #uploading settings HoodLoader2atmega8u2.upload.speed=57600 @@ -218,15 +183,14 @@ HoodLoader2atmega8u2.upload.use_1200bps_touch=true HoodLoader2atmega8u2.upload.wait_for_upload_port=true #fuses (HoodLoader2 only, not suitable for DFU) -HoodLoader2atmega8u2.bootloader.low_fuses=0xFF +HoodLoader2atmega8u2.bootloader.low_fuses=0xEF HoodLoader2atmega8u2.bootloader.high_fuses=0xD8 HoodLoader2atmega8u2.bootloader.extended_fuses=0xFC HoodLoader2atmega8u2.bootloader.unlock_bits=0x3F -HoodLoader2atmega8u2.bootloader.lock_bits=0x2F +HoodLoader2atmega8u2.bootloader.lock_bits=0x0F #usb settings, manufacturer overwritten by the IDE because of the VID HoodLoader2atmega8u2.build.vid=0x2341 -HoodLoader2atmega8u2.build.pid=0x484C HoodLoader2atmega8u2.build.usb_product="HoodLoader2 8u2" HoodLoader2atmega8u2.build.usb_manufacturer="Nico Hood" HoodLoader2atmega8u2.build.extra_flags={build.usb_flags} @@ -236,21 +200,98 @@ HoodLoader2atmega8u2.build.extra_flags={build.usb_flags} #HID Project needs to be installed https://github.com/NicoHood/HID HoodLoader2atmega8u2.menu.usbcore.hid=Serial + Extended HID HoodLoader2atmega8u2.menu.usbcore.hid.build.variant=HoodLoader2_hid +HoodLoader2atmega8u2.menu.usbcore.hid.build.pid=0x484E HoodLoader2atmega8u2.menu.usbcore.gamepad=Serial + Gamepad HID HoodLoader2atmega8u2.menu.usbcore.gamepad.build.variant=HoodLoader2_gamepad +HoodLoader2atmega8u2.menu.usbcore.gamepad.build.pid=0x486E HoodLoader2atmega8u2.menu.usbcore.custom=Serial + Custom HID HoodLoader2atmega8u2.menu.usbcore.custom.build.variant=HoodLoader2_custom +HoodLoader2atmega8u2.menu.usbcore.custom.build.pid=0x485E HoodLoader2atmega8u2.menu.usbcore.USB_CORE=Default HID Project Core HoodLoader2atmega8u2.menu.usbcore.USB_CORE.build.variant=HoodLoader2 +HoodLoader2atmega8u2.menu.usbcore.USB_CORE.build.pid=0x487E HoodLoader2atmega8u2.menu.usbcore.NO_USB=No USB functions HoodLoader2atmega8u2.menu.usbcore.NO_USB.build.variant=HoodLoader2_NoUSB +HoodLoader2atmega8u2.menu.usbcore.NO_USB.build.pid=0x484E #Board selection (only important for burning bootloaders) HoodLoader2atmega8u2.menu.board.uno=HoodLoader2 Uno -HoodLoader2atmega8u2.menu.board.uno.bootloader.file=HoodLoader2_0_1_Uno_8u2.hex +HoodLoader2atmega8u2.menu.board.uno.bootloader.file=HoodLoader2/HoodLoader2_0_4_Uno_8u2.hex HoodLoader2atmega8u2.menu.board.mega2560=HoodLoader2 Mega -HoodLoader2atmega8u2.menu.board.mega2560.bootloader.file=HoodLoader2_0_1_Mega_8u2.hex +HoodLoader2atmega8u2.menu.board.mega2560.bootloader.file=HoodLoader2/HoodLoader2_0_4_Mega_8u2.hex + + +############################################################## + + +HoodLoader2at90usb162.name=HoodLoader2 at90usb162 +HoodLoader2at90usb162.build.core=HID:hid +HoodLoader2at90usb162.bootloader.tool=arduino:avrdude +HoodLoader2at90usb162.upload.tool=arduino:avrdude + +# MCU properties +HoodLoader2at90usb162.upload.maximum_size=12288 +HoodLoader2at90usb162.upload.maximum_data_size=512 +HoodLoader2at90usb162.build.mcu=at90usb162 + +#general settings for all boards: +HoodLoader2at90usb162.build.board=HOODLOADER2 +HoodLoader2at90usb162.build.f_cpu=16000000L +HoodLoader2at90usb162.vid.0=0x2341 +HoodLoader2at90usb162.pid.0=0x484F +HoodLoader2at90usb162.vid.1=0x2341 +HoodLoader2at90usb162.pid.1=0x485F +HoodLoader2at90usb162.vid.2=0x2341 +HoodLoader2at90usb162.pid.2=0x486F +HoodLoader2at90usb162.vid.3=0x2341 +HoodLoader2at90usb162.pid.3=0x487F + +#uploading settings +HoodLoader2at90usb162.upload.speed=57600 +HoodLoader2at90usb162.upload.protocol=avr109 +HoodLoader2at90usb162.upload.disable_flushing=true +HoodLoader2at90usb162.upload.use_1200bps_touch=true +HoodLoader2at90usb162.upload.wait_for_upload_port=true + +#fuses (HoodLoader2 only, not suitable for DFU) +HoodLoader2at90usb162.bootloader.low_fuses=0xEF +HoodLoader2at90usb162.bootloader.high_fuses=0xD8 +HoodLoader2at90usb162.bootloader.extended_fuses=0xFC +HoodLoader2at90usb162.bootloader.unlock_bits=0x3F +HoodLoader2at90usb162.bootloader.lock_bits=0x0F + +#usb settings, manufacturer overwritten by the IDE because of the VID +HoodLoader2at90usb162.build.vid=0x2341 +HoodLoader2at90usb162.build.usb_product="HoodLoader2 at90usb162" +HoodLoader2at90usb162.build.usb_manufacturer="Nico Hood" +HoodLoader2at90usb162.build.extra_flags={build.usb_flags} + + +#USB core selection +#HID Project needs to be installed https://github.com/NicoHood/HID +HoodLoader2at90usb162.menu.usbcore.hid=Serial + Extended HID +HoodLoader2at90usb162.menu.usbcore.hid.build.variant=HoodLoader2_hid +HoodLoader2at90usb162.menu.usbcore.hid.build.pid=0x484F +HoodLoader2at90usb162.menu.usbcore.gamepad=Serial + Gamepad HID +HoodLoader2at90usb162.menu.usbcore.gamepad.build.variant=HoodLoader2_gamepad +HoodLoader2at90usb162.menu.usbcore.gamepad.build.pid=0x486F +HoodLoader2at90usb162.menu.usbcore.custom=Serial + Custom HID +HoodLoader2at90usb162.menu.usbcore.custom.build.variant=HoodLoader2_custom +HoodLoader2at90usb162.menu.usbcore.custom.build.pid=0x485F +HoodLoader2at90usb162.menu.usbcore.USB_CORE=Default HID Project Core +HoodLoader2at90usb162.menu.usbcore.USB_CORE.build.variant=HoodLoader2 +HoodLoader2at90usb162.menu.usbcore.USB_CORE.build.pid=0x487F +HoodLoader2at90usb162.menu.usbcore.NO_USB=No USB functions +HoodLoader2at90usb162.menu.usbcore.NO_USB.build.variant=HoodLoader2_NoUSB +HoodLoader2at90usb162.menu.usbcore.NO_USB.build.pid=0x484F + + +#Board selection (only important for burning bootloaders) +HoodLoader2at90usb162.menu.board.uno=HoodLoader2 Uno +HoodLoader2at90usb162.menu.board.uno.bootloader.file=HoodLoader2/HoodLoader2_0_4_Uno_at90usb162.hex +HoodLoader2at90usb162.menu.board.mega2560=HoodLoader2 Mega +HoodLoader2at90usb162.menu.board.mega2560.bootloader.file=HoodLoader2/HoodLoader2_0_4_Mega_at90usb162.hex ############################################################## @@ -295,8 +336,93 @@ HoodLoader2atmega16u2DFU.build.variant=HoodLoader2_DFU #Board selection (only important for burning bootloaders) -HoodLoader2atmega16u2DFU.menu.board.uno=HoodLoader2 Uno +HoodLoader2atmega16u2DFU.menu.board.uno=DFU Uno HoodLoader2atmega16u2DFU.menu.board.uno.bootloader.file=Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex -HoodLoader2atmega16u2DFU.menu.board.mega2560=HoodLoader2 Mega +HoodLoader2atmega16u2DFU.menu.board.mega2560=DFU Mega HoodLoader2atmega16u2DFU.menu.board.mega2560.bootloader.file=Arduino-COMBINED-dfu-usbserial-atmega16u2-Mega2560-Rev3.hex + +############################################################## + + +unoHIDBridge.name=Arduino Uno HID-Bridge + +#unoHIDBridge.vid.0=0x2341 +#unoHIDBridge.pid.0=0x0043 +#unoHIDBridge.vid.1=0x2341 +#unoHIDBridge.pid.1=0x0001 + +unoHIDBridge.upload.tool=arduino:avrdude +unoHIDBridge.upload.protocol=arduino +unoHIDBridge.upload.maximum_size=32256 +unoHIDBridge.upload.maximum_data_size=2048 +unoHIDBridge.upload.speed=115200 +unoHIDBridge.upload.use_1200bps_touch=true +unoHIDBridge.upload.wait_for_upload_port=true + +unoHIDBridge.bootloader.tool=arduino:avrdude +unoHIDBridge.bootloader.low_fuses=0xFF +unoHIDBridge.bootloader.high_fuses=0xDE +unoHIDBridge.bootloader.extended_fuses=0x05 +unoHIDBridge.bootloader.unlock_bits=0x3F +unoHIDBridge.bootloader.lock_bits=0x0F +unoHIDBridge.bootloader.file=arduino:optiboot/optiboot_atmega328.hex + +unoHIDBridge.build.mcu=atmega328p +unoHIDBridge.build.f_cpu=16000000L +unoHIDBridge.build.board=AVR_UNO +unoHIDBridge.build.core=HID:hid + +#USB core selection +#HID Project needs to be installed https://github.com/NicoHood/HID +unoHIDBridge.menu.usbcore.hid=Serial + Extended HID +unoHIDBridge.menu.usbcore.hid.build.variant=standard_hid +unoHIDBridge.menu.usbcore.gamepad=Serial + Gamepad HID +unoHIDBridge.menu.usbcore.gamepad.build.variant=standard_gamepad +unoHIDBridge.menu.usbcore.custom=Serial + Custom HID +unoHIDBridge.menu.usbcore.custom.build.variant=standard_custom +unoHIDBridge.menu.usbcore.NO_USB=Default Core +unoHIDBridge.menu.usbcore.NO_USB.build.variant=standard + + +############################################################## + + +megaHIDBridge.name=Arduino Mega 2560 HID-Bridge + +#megaHIDBridge.vid.0=0x2341 +#megaHIDBridge.pid.0=0x0010 +#megaHIDBridge.vid.1=0x2341 +#megaHIDBridge.pid.1=0x0042 + +megaHIDBridge.upload.tool=arduino:avrdude +megaHIDBridge.upload.maximum_data_size=8192 +megaHIDBridge.upload.protocol=wiring +megaHIDBridge.upload.maximum_size=253952 +megaHIDBridge.upload.speed=115200 +megaHIDBridge.upload.use_1200bps_touch=true +megaHIDBridge.upload.wait_for_upload_port=true + +megaHIDBridge.bootloader.tool=arduino:avrdude +megaHIDBridge.bootloader.low_fuses=0xFF +megaHIDBridge.bootloader.unlock_bits=0x3F +megaHIDBridge.bootloader.lock_bits=0x0F +megaHIDBridge.bootloader.high_fuses=0xD8 +megaHIDBridge.bootloader.extended_fuses=0xFD +megaHIDBridge.bootloader.file=arduino:stk500v2/stk500boot_v2_mega2560.hex + +megaHIDBridge.build.f_cpu=16000000L +megaHIDBridge.build.core=HID:hid +megaHIDBridge.build.mcu=atmega2560 +megaHIDBridge.build.board=AVR_MEGA2560 + +#USB core selection +#HID Project needs to be installed https://github.com/NicoHood/HID +megaHIDBridge.menu.usbcore.hid=Serial + Extended HID +megaHIDBridge.menu.usbcore.hid.build.variant=mega_hid +megaHIDBridge.menu.usbcore.gamepad=Serial + Gamepad HID +megaHIDBridge.menu.usbcore.gamepad.build.variant=mega_gamepad +megaHIDBridge.menu.usbcore.custom=Serial + Custom HID +megaHIDBridge.menu.usbcore.custom.build.variant=mega_custom +megaHIDBridge.menu.usbcore.NO_USB=Default Core +megaHIDBridge.menu.usbcore.NO_USB.build.variant=mega diff --git a/avr/bootloaders/HoodLoader2.inf b/avr/bootloaders/HoodLoader2.inf deleted file mode 100644 index 16eabc6..0000000 --- a/avr/bootloaders/HoodLoader2.inf +++ /dev/null @@ -1,81 +0,0 @@ -;************************************************************ -; Windows USB CDC ACM Setup File -; Copyright (c) 2000 Microsoft Corporation -;************************************************************ - -[DefaultInstall] -CopyINF="HoodLoader2.inf" - -[Version] -Signature="$Windows NT$" -Class=Ports -ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} -Provider=%MFGNAME% -DriverVer=7/1/2012,10.0.0.0 - -[Manufacturer] -%MFGNAME%=DeviceList, NTx86, NTamd64, NTia64 - -[SourceDisksNames] - -[SourceDisksFiles] - -[DestinationDirs] -DefaultDestDir=12 - -[DriverInstall] -Include=mdmcpq.inf -CopyFiles=FakeModemCopyFileSection -AddReg=DriverInstall.AddReg - -[DriverInstall.Services] -Include=mdmcpq.inf -AddService=usbser, 0x00000002, LowerFilter_Service_Inst - -[DriverInstall.AddReg] -HKR,,EnumPropPages32,,"msports.dll,SerialPortPropPageProvider" - -;------------------------------------------------------------------------------ -; Vendor and Product ID Definitions -;------------------------------------------------------------------------------ -; When developing your USB device, the VID and PID used in the PC side -; application program and the firmware on the microcontroller must match. -; Modify the below line to use your VID and PID. Use the format as shown below. -; Note: One INF file can be used for multiple devices with different VID and PIDs. -; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line. -;------------------------------------------------------------------------------ -[DeviceList] -%hoodloader2_16u2.name%=DriverInstall, USB\VID_2341&PID_484C&MI_00 -%hoodloader2_32u2.name%=DriverInstall, USB\VID_2341&PID_484D&MI_00 -%hoodloader2_8u2.name%=DriverInstall, USB\VID_2341&PID_484E&MI_00 -%hoodloader2_at90usb1622.name%=DriverInstall, USB\VID_2341&PID_484F&MI_00 - -[DeviceList.NTx86] -%hoodloader2_16u2.name%=DriverInstall, USB\VID_2341&PID_484C&MI_00 -%hoodloader2_32u2.name%=DriverInstall, USB\VID_2341&PID_484D&MI_00 -%hoodloader2_8u2.name%=DriverInstall, USB\VID_2341&PID_484E&MI_00 -%hoodloader2_at90usb1622.name%=DriverInstall, USB\VID_2341&PID_484F&MI_00 - -[DeviceList.NTamd64] -%hoodloader2_16u2.name%=DriverInstall, USB\VID_2341&PID_484C&MI_00 -%hoodloader2_32u2.name%=DriverInstall, USB\VID_2341&PID_484D&MI_00 -%hoodloader2_8u2.name%=DriverInstall, USB\VID_2341&PID_484E&MI_00 -%hoodloader2_at90usb1622.name%=DriverInstall, USB\VID_2341&PID_484F&MI_00 - -[DeviceList.NTia64] -%hoodloader2_16u2.name%=DriverInstall, USB\VID_2341&PID_484C&MI_00 -%hoodloader2_32u2.name%=DriverInstall, USB\VID_2341&PID_484D&MI_00 -%hoodloader2_8u2.name%=DriverInstall, USB\VID_2341&PID_484E&MI_00 -%hoodloader2_at90usb1622.name%=DriverInstall, USB\VID_2341&PID_484F&MI_00 - -;------------------------------------------------------------------------------ -; String Definitions -;------------------------------------------------------------------------------ -;Modify these strings to customize your device -;------------------------------------------------------------------------------ -[Strings] -MFGNAME="NicoHood" -hoodloader2_16u2.name="Arduino HoodLoader2 16u2" -hoodloader2_32u2.name="Arduino HoodLoader2 32u2" -hoodloader2_8u2.name="Arduino HoodLoader2 8u2" -hoodloader2_at90usb162.name="Arduino HoodLoader2 at90usb162" diff --git a/BootloaderAPI.c b/avr/bootloaders/HoodLoader2/BootloaderAPI.c similarity index 100% rename from BootloaderAPI.c rename to avr/bootloaders/HoodLoader2/BootloaderAPI.c diff --git a/BootloaderAPI.h b/avr/bootloaders/HoodLoader2/BootloaderAPI.h similarity index 100% rename from BootloaderAPI.h rename to avr/bootloaders/HoodLoader2/BootloaderAPI.h diff --git a/BootloaderAPITable.S b/avr/bootloaders/HoodLoader2/BootloaderAPITable.S similarity index 100% rename from BootloaderAPITable.S rename to avr/bootloaders/HoodLoader2/BootloaderAPITable.S diff --git a/Config/AppConfig.h b/avr/bootloaders/HoodLoader2/Config/AppConfig.h similarity index 100% rename from Config/AppConfig.h rename to avr/bootloaders/HoodLoader2/Config/AppConfig.h diff --git a/Config/LUFAConfig.h b/avr/bootloaders/HoodLoader2/Config/LUFAConfig.h similarity index 100% rename from Config/LUFAConfig.h rename to avr/bootloaders/HoodLoader2/Config/LUFAConfig.h diff --git a/Descriptors.c b/avr/bootloaders/HoodLoader2/Descriptors.c similarity index 99% rename from Descriptors.c rename to avr/bootloaders/HoodLoader2/Descriptors.c index 04d10be..b195f91 100644 --- a/Descriptors.c +++ b/avr/bootloaders/HoodLoader2/Descriptors.c @@ -84,7 +84,7 @@ const USB_Descriptor_Device_t DeviceDescriptor = // passed through makefile .VendorID = VENDORID, .ProductID = PRODUCTID, - .ReleaseNumber = VERSION_BCD(2,0,3), + .ReleaseNumber = VERSION_BCD(2,0,4), .ManufacturerStrIndex = STRING_ID_Manufacturer, .ProductStrIndex = STRING_ID_Product, diff --git a/Descriptors.h b/avr/bootloaders/HoodLoader2/Descriptors.h similarity index 100% rename from Descriptors.h rename to avr/bootloaders/HoodLoader2/Descriptors.h diff --git a/HoodLoader2.c b/avr/bootloaders/HoodLoader2/HoodLoader2.c similarity index 96% rename from HoodLoader2.c rename to avr/bootloaders/HoodLoader2/HoodLoader2.c index 05bbd9d..bf4888f 100644 --- a/HoodLoader2.c +++ b/avr/bootloaders/HoodLoader2/HoodLoader2.c @@ -72,6 +72,7 @@ static uint8_t BufferIndex = 0; // position of the first buffer byte (Buffer out static uint8_t BufferEnd = 0; // position of the last buffer byte (Serial in) // Led Pulse count +#define TX_RX_LED_PULSE_MS 3 static uint8_t TxLEDPulse = 0; static uint8_t RxLEDPulse = 0; @@ -156,17 +157,17 @@ void Application_Jump_Check(void) else if ((mcusr_state & (1 << WDRF)) && (bootKeyPtrVal != MAGIC_BOOT_KEY)) // If it looks like an "accidental" watchdog reset then start the sketch. StartSketch(); - } } static void StartSketch(void) { // turn off leds on every startup - ARDUINO_PORT |= LEDS_ALL_LEDS; + LEDs_TurnOffLEDs(LEDS_ALL_LEDS); // jump to beginning of application space - __asm__ volatile("jmp 0x0000"); + // cppcheck-suppress constStatement + ((void(*)(void))0x0000)(); } /** Main program entry point. This routine configures the hardware required by the bootloader, then continuously @@ -181,9 +182,9 @@ int main(void) /* Enable global interrupts so that the USB stack can function */ GlobalInterruptEnable(); - while (RunBootloader) - { + do { CDC_Task(); + USB_USBTask(); // check Leds (this methode takes less flash than an ISR) if (TIFR0 & (1 << TOV0)){ @@ -198,9 +199,10 @@ int main(void) if (RxLEDPulse && !(--RxLEDPulse)) LEDs_TurnOffLEDs(LEDMASK_RX); } + } while (RunBootloader); - USB_USBTask(); - } + /* Wait a short time to end all USB transactions and then disconnect */ + _delay_us(1000); /* Disconnect from the host - USB interface will be reset later along with the AVR */ USB_Detach(); @@ -225,7 +227,7 @@ static void SetupHardware(void) /* Initialize the USB and other board hardware drivers */ USB_Init(); - /* Start the flush timer so that overflows occur rapidly to push received bytes to the USB interface */ + /* Start the flush timer for Leds */ TCCR0B = (1 << CS02); // compacter setup for Leds, RX, TX, Reset Line @@ -261,9 +263,8 @@ void EVENT_USB_Device_ControlRequest(void) } /* Process CDC specific control requests */ - switch (USB_ControlRequest.bRequest) - { - case CDC_REQ_GetLineEncoding: + uint8_t bRequest = USB_ControlRequest.bRequest; + if (bRequest == CDC_REQ_GetLineEncoding){ if (USB_ControlRequest.bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE)) { Endpoint_ClearSETUP(); @@ -273,9 +274,8 @@ void EVENT_USB_Device_ControlRequest(void) Endpoint_Write_Control_Stream_LE(&LineEncoding, sizeof(CDC_LineEncoding_t)); Endpoint_ClearOUT(); } - - break; - case CDC_REQ_SetLineEncoding: + } + else if (bRequest == CDC_REQ_SetLineEncoding){ if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE)) { Endpoint_ClearSETUP(); @@ -322,21 +322,10 @@ void EVENT_USB_Device_ControlRequest(void) Endpoint_ClearIN(); - if (LineEncoding.BaudRateBPS == BAUDRATE_CDC_BOOTLOADER) - CDCActive = true; - else - CDCActive = false; - - // reset buffer - BufferCount = 0; - BufferIndex = 0; - BufferEnd = 0; - CDC_Device_LineEncodingChanged(); } - - break; - case CDC_REQ_SetControlLineState: + } + else if (bRequest == CDC_REQ_SetControlLineState){ if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE)) { Endpoint_ClearSETUP(); @@ -352,8 +341,6 @@ void EVENT_USB_Device_ControlRequest(void) AVR_RESET_LINE_PORT |= AVR_RESET_LINE_MASK; } - - break; } } @@ -366,7 +353,7 @@ ISR(USART1_RX_vect, ISR_BLOCK) uint8_t ReceivedByte = UDR1; // only save the new byte if USB device is ready and buffer is not full - if (!CDCActive && (USB_DeviceState == DEVICE_STATE_Configured) && (BufferCount <= BUFFER_SIZE)){ + if (!CDCActive && (USB_DeviceState == DEVICE_STATE_Configured) && (BufferCount < BUFFER_SIZE)){ // save new byte USARTtoUSB_Buffer_Data[BufferEnd++] = ReceivedByte; @@ -861,6 +848,18 @@ static void ReadWriteMemoryBlock(const uint8_t Command) */ static void CDC_Device_LineEncodingChanged(void) { + uint32_t BaudRateBPS = LineEncoding.BaudRateBPS; + + if (BaudRateBPS == BAUDRATE_CDC_BOOTLOADER) + CDCActive = true; + else + CDCActive = false; + + // reset buffer + BufferCount = 0; + BufferIndex = 0; + BufferEnd = 0; + uint8_t ConfigMask = 0; switch (LineEncoding.ParityType) @@ -898,20 +897,13 @@ static void CDC_Device_LineEncodingChanged(void) UCSR1C = 0; /* Set the new baud rate before configuring the USART */ - /* Special case 57600 baud for compatibility with the ATmega328 bootloader. */ - // Special mode not needed/possible since our CDC Bootloader uses this speed! - UBRR1 = SERIAL_2X_UBBRVAL(LineEncoding.BaudRateBPS); // Lufa standard - //bool compat = LineEncoding.BaudRateBPS == 57600; - //UBRR1 = compat - // ? SERIAL_UBBRVAL(LineEncoding.BaudRateBPS) - // : SERIAL_2X_UBBRVAL(LineEncoding.BaudRateBPS); + UBRR1 = SERIAL_2X_UBBRVAL(BaudRateBPS); /* Reconfigure the USART in double speed mode for a wider baud rate range at the expense of accuracy */ UCSR1C = ConfigMask; - UCSR1A = (1 << U2X1); // Lufa standard - //UCSR1A = compat ? 0 : (1 << U2X1); + UCSR1A = (1 << U2X1); UCSR1B = ((1 << RXCIE1) | (1 << TXEN1) | (1 << RXEN1)); /* Release the TX line after the USART has been reconfigured */ PORTD &= ~(1 << 3); -} +} \ No newline at end of file diff --git a/HoodLoader2.h b/avr/bootloaders/HoodLoader2/HoodLoader2.h similarity index 94% rename from HoodLoader2.h rename to avr/bootloaders/HoodLoader2/HoodLoader2.h index afc4839..f347b3e 100644 --- a/HoodLoader2.h +++ b/avr/bootloaders/HoodLoader2/HoodLoader2.h @@ -70,7 +70,6 @@ along with Hoodloader2. If not, see . #include "Config/AppConfig.h" #include - #include #include #include @@ -96,7 +95,14 @@ along with Hoodloader2. If not, see . #define BOOTLOADER_HWVERSION_MINOR 0x00 /** Eight character bootloader firmware identifier reported to the host when requested. */ - #define SOFTWARE_IDENTIFIER "HL2.0.3" + #define SOFTWARE_IDENTIFIER "HL2.0.4" + + /** 1200 is the baud to load the Bootloader from an Arduino sketch, 57600 turns out to be the actual baud rate for uploading. */ + #define BAUDRATE_CDC_BOOTLOADER 57600 + + /** Port of the onboard leds, serial and reset line */ + #define ARDUINO_PORT PORTD + #define ARDUINO_DDR DDRD /* Enums: */ /** Possible memory types that can be addressed via the bootloader. */ diff --git a/avr/bootloaders/HoodLoader2/HoodLoader2.inf b/avr/bootloaders/HoodLoader2/HoodLoader2.inf new file mode 100644 index 0000000..28ebe8d --- /dev/null +++ b/avr/bootloaders/HoodLoader2/HoodLoader2.inf @@ -0,0 +1,141 @@ +;************************************************************ +; Windows USB CDC ACM Setup File +; Copyright (c) 2000 Microsoft Corporation +;************************************************************ + +[DefaultInstall] +CopyINF="HoodLoader2.inf" + +[Version] +Signature="$Windows NT$" +Class=Ports +ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} +Provider=%MFGNAME% +DriverVer=7/1/2012,10.0.0.0 + +[Manufacturer] +%MFGNAME%=DeviceList, NTx86, NTamd64, NTia64 + +[SourceDisksNames] + +[SourceDisksFiles] + +[DestinationDirs] +DefaultDestDir=12 + +[DriverInstall] +Include=mdmcpq.inf +CopyFiles=FakeModemCopyFileSection +AddReg=DriverInstall.AddReg + +[DriverInstall.Services] +Include=mdmcpq.inf +AddService=usbser, 0x00000002, LowerFilter_Service_Inst + +[DriverInstall.AddReg] +HKR,,EnumPropPages32,,"msports.dll,SerialPortPropPageProvider" + +;------------------------------------------------------------------------------ +; Vendor and Product ID Definitions +;------------------------------------------------------------------------------ +; When developing your USB device, the VID and PID used in the PC side +; application program and the firmware on the microcontroller must match. +; Modify the below line to use your VID and PID. Use the format as shown below. +; Note: One INF file can be used for multiple devices with different VID and PIDs. +; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line. +;------------------------------------------------------------------------------ +[DeviceList] +%hoodloader2_16u2_extended.name%=DriverInstall, USB\VID_2341&PID_484C&MI_00 +%hoodloader2_32u2_extended.name%=DriverInstall, USB\VID_2341&PID_484D&MI_00 +%hoodloader2_8u2_extended.name%=DriverInstall, USB\VID_2341&PID_484E&MI_00 +%hoodloader2_at90usb1622_extended.name%=DriverInstall, USB\VID_2341&PID_484F&MI_00 +%hoodloader2_16u2_custom.name%=DriverInstall, USB\VID_2341&PID_485C&MI_00 +%hoodloader2_32u2_custom.name%=DriverInstall, USB\VID_2341&PID_485D&MI_00 +%hoodloader2_8u2_custom.name%=DriverInstall, USB\VID_2341&PID_485E&MI_00 +%hoodloader2_at90usb1622_custom.name%=DriverInstall, USB\VID_2341&PID_485F&MI_00 +%hoodloader2_16u2_gamepad.name%=DriverInstall, USB\VID_2341&PID_486C&MI_00 +%hoodloader2_32u2_gamepad.name%=DriverInstall, USB\VID_2341&PID_486D&MI_00 +%hoodloader2_8u2_gamepad.name%=DriverInstall, USB\VID_2341&PID_486E&MI_00 +%hoodloader2_at90usb1622_gamepad.name%=DriverInstall, USB\VID_2341&PID_486F&MI_00 +%hoodloader2_16u2_default.name%=DriverInstall, USB\VID_2341&PID_487C&MI_00 +%hoodloader2_32u2_default.name%=DriverInstall, USB\VID_2341&PID_487D&MI_00 +%hoodloader2_8u2_default.name%=DriverInstall, USB\VID_2341&PID_487E&MI_00 +%hoodloader2_at90usb1622_default.name%=DriverInstall, USB\VID_2341&PID_487F&MI_00 + +[DeviceList.NTx86] +%hoodloader2_16u2_extended.name%=DriverInstall, USB\VID_2341&PID_484C&MI_00 +%hoodloader2_32u2_extended.name%=DriverInstall, USB\VID_2341&PID_484D&MI_00 +%hoodloader2_8u2_extended.name%=DriverInstall, USB\VID_2341&PID_484E&MI_00 +%hoodloader2_at90usb1622_extended.name%=DriverInstall, USB\VID_2341&PID_484F&MI_00 +%hoodloader2_16u2_custom.name%=DriverInstall, USB\VID_2341&PID_485C&MI_00 +%hoodloader2_32u2_custom.name%=DriverInstall, USB\VID_2341&PID_485D&MI_00 +%hoodloader2_8u2_custom.name%=DriverInstall, USB\VID_2341&PID_485E&MI_00 +%hoodloader2_at90usb1622_custom.name%=DriverInstall, USB\VID_2341&PID_485F&MI_00 +%hoodloader2_16u2_gamepad.name%=DriverInstall, USB\VID_2341&PID_486C&MI_00 +%hoodloader2_32u2_gamepad.name%=DriverInstall, USB\VID_2341&PID_486D&MI_00 +%hoodloader2_8u2_gamepad.name%=DriverInstall, USB\VID_2341&PID_486E&MI_00 +%hoodloader2_at90usb1622_gamepad.name%=DriverInstall, USB\VID_2341&PID_486F&MI_00 +%hoodloader2_16u2_default.name%=DriverInstall, USB\VID_2341&PID_487C&MI_00 +%hoodloader2_32u2_default.name%=DriverInstall, USB\VID_2341&PID_487D&MI_00 +%hoodloader2_8u2_default.name%=DriverInstall, USB\VID_2341&PID_487E&MI_00 +%hoodloader2_at90usb1622_default.name%=DriverInstall, USB\VID_2341&PID_487F&MI_00 + +[DeviceList.NTamd64] +%hoodloader2_16u2_extended.name%=DriverInstall, USB\VID_2341&PID_484C&MI_00 +%hoodloader2_32u2_extended.name%=DriverInstall, USB\VID_2341&PID_484D&MI_00 +%hoodloader2_8u2_extended.name%=DriverInstall, USB\VID_2341&PID_484E&MI_00 +%hoodloader2_at90usb1622_extended.name%=DriverInstall, USB\VID_2341&PID_484F&MI_00 +%hoodloader2_16u2_custom.name%=DriverInstall, USB\VID_2341&PID_485C&MI_00 +%hoodloader2_32u2_custom.name%=DriverInstall, USB\VID_2341&PID_485D&MI_00 +%hoodloader2_8u2_custom.name%=DriverInstall, USB\VID_2341&PID_485E&MI_00 +%hoodloader2_at90usb1622_custom.name%=DriverInstall, USB\VID_2341&PID_485F&MI_00 +%hoodloader2_16u2_gamepad.name%=DriverInstall, USB\VID_2341&PID_486C&MI_00 +%hoodloader2_32u2_gamepad.name%=DriverInstall, USB\VID_2341&PID_486D&MI_00 +%hoodloader2_8u2_gamepad.name%=DriverInstall, USB\VID_2341&PID_486E&MI_00 +%hoodloader2_at90usb1622_gamepad.name%=DriverInstall, USB\VID_2341&PID_486F&MI_00 +%hoodloader2_16u2_default.name%=DriverInstall, USB\VID_2341&PID_487C&MI_00 +%hoodloader2_32u2_default.name%=DriverInstall, USB\VID_2341&PID_487D&MI_00 +%hoodloader2_8u2_default.name%=DriverInstall, USB\VID_2341&PID_487E&MI_00 +%hoodloader2_at90usb1622_default.name%=DriverInstall, USB\VID_2341&PID_487F&MI_00 + +[DeviceList.NTia64] +%hoodloader2_16u2_extended.name%=DriverInstall, USB\VID_2341&PID_484C&MI_00 +%hoodloader2_32u2_extended.name%=DriverInstall, USB\VID_2341&PID_484D&MI_00 +%hoodloader2_8u2_extended.name%=DriverInstall, USB\VID_2341&PID_484E&MI_00 +%hoodloader2_at90usb1622_extended.name%=DriverInstall, USB\VID_2341&PID_484F&MI_00 +%hoodloader2_16u2_custom.name%=DriverInstall, USB\VID_2341&PID_485C&MI_00 +%hoodloader2_32u2_custom.name%=DriverInstall, USB\VID_2341&PID_485D&MI_00 +%hoodloader2_8u2_custom.name%=DriverInstall, USB\VID_2341&PID_485E&MI_00 +%hoodloader2_at90usb1622_custom.name%=DriverInstall, USB\VID_2341&PID_485F&MI_00 +%hoodloader2_16u2_gamepad.name%=DriverInstall, USB\VID_2341&PID_486C&MI_00 +%hoodloader2_32u2_gamepad.name%=DriverInstall, USB\VID_2341&PID_486D&MI_00 +%hoodloader2_8u2_gamepad.name%=DriverInstall, USB\VID_2341&PID_486E&MI_00 +%hoodloader2_at90usb1622_gamepad.name%=DriverInstall, USB\VID_2341&PID_486F&MI_00 +%hoodloader2_16u2_default.name%=DriverInstall, USB\VID_2341&PID_487C&MI_00 +%hoodloader2_32u2_default.name%=DriverInstall, USB\VID_2341&PID_487D&MI_00 +%hoodloader2_8u2_default.name%=DriverInstall, USB\VID_2341&PID_487E&MI_00 +%hoodloader2_at90usb1622_default.name%=DriverInstall, USB\VID_2341&PID_487F&MI_00 + +;------------------------------------------------------------------------------ +; String Definitions +;------------------------------------------------------------------------------ +;Modify these strings to customize your device +;------------------------------------------------------------------------------ +[Strings] +MFGNAME="NicoHood" +hoodloader2_16u2_extended.name="HoodLoader2 16u2 Extended" +hoodloader2_32u2_extended.name="HoodLoader2 32u2 Extended" +hoodloader2_8u2_extended.name="HoodLoader2 8u2 Extended" +hoodloader2_at90usb162_extended.name="HoodLoader2 at90usb162 Extended" +hoodloader2_16u2_custom.name="HoodLoader2 16u2 Custom" +hoodloader2_32u2_custom.name="HoodLoader2 32u2 Custom" +hoodloader2_8u2_custom.name="HoodLoader2 8u2 Custom" +hoodloader2_at90usb162_custom.name="HoodLoader2 at90usb162 Custom" +hoodloader2_16u2_gamepad.name="HoodLoader2 16u2 Gamepad" +hoodloader2_32u2_gamepad.name="HoodLoader2 32u2 Gamepad" +hoodloader2_8u2_gamepad.name="HoodLoader2 8u2 Gamepad" +hoodloader2_at90usb162_gamepad.name="HoodLoader2 at90usb162 Gamepad" +hoodloader2_16u2_default.name="HoodLoader2 16u2 Default" +hoodloader2_32u2_default.name="HoodLoader2 32u2 Default" +hoodloader2_8u2_default.name="HoodLoader2 8u2 Default" +hoodloader2_at90usb162_default.name="HoodLoader2 at90usb162 Default" diff --git a/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Mega_16u2.hex b/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Mega_16u2.hex new file mode 100644 index 0000000..eb4189b --- /dev/null +++ b/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Mega_16u2.hex @@ -0,0 +1,250 @@ +:1030000039C0000083C0000081C000007FC0000004 +:103010007DC000007BC0000079C0000077C00000C8 +:1030200075C0000073C0000071C0000046C50000FC +:103030006DC000006BC0000069C0000067C00000E8 +:1030400065C0000063C0000061C000005FC00000F8 +:103050005DC000005BC0000059C00000ABC30000B1 +:1030600055C0000053C0000051C000004FC0000018 +:103070004DC0000011241FBECFEFD2E0DEBFCDBF98 +:10308000909180021092800284B714BE28E10FB69E +:10309000F89420936000109260000FBEE0E0F0E032 +:1030A000259134912F3F3F4FE1F081FF12C09737B8 +:1030B000C1F087E7809380028FEF9EE924E2815080 +:1030C00090402040E1F700C00000109280021FD025 +:1030D00008C080FF02C01BD004C083FF02C0973726 +:1030E000D1F711E0A0E0B1E0EEE8FEE302C0059008 +:1030F0000D92AC39B107D9F712E0ACE9B1E001C0EB +:103100001D92A033B107E1F736D0BFC679CF8BB19E +:1031100080638BB9E0E0F0E0099484E08093E900FB +:103120008091E80085FD0DC08091E8008B77809349 +:10313000E8008091E80082FDF3CF8EB38111F9CFD2 +:1031400002C08091F100089593E09093E90090917E +:10315000E80095FF03C08093F10008959091E80086 +:103160009E779093E8009091E80090FDF4CF9EB395 +:103170009111F9CF0895CF93DF9300D000D0CDB750 +:10318000DEB790E080E80FB6F894809361009093EA +:1031900061000FBE81E085BF82E085BF7FD484E0FF +:1031A00085BD8AB1886B8AB98BB1846B8BB97894F1 +:1031B00013E0BB24B394E5E08E2E212C312C84E95E +:1031C00091E027E0280F298384E08093E900809133 +:1031D000E80082FF8DC1A1DF982F8091A0018111AD +:1031E00013C08091C80085FFFCCF9093CE008091E2 +:1031F000F200811105C08091E8008B778093E80090 +:103200005C981093A10178C1953419F410920001D3 +:1032100032C088E8890F823010F0943511F47DDFD8 +:103220002AC0903541F19C3431F1943721F484E483 +:103230008BDF80E003C0913619F489E585DF5CC13E +:103240009134D9F46ADF082F68DF90E0880F991F66 +:10325000202F30E0322F2227330F822B932BAA27E7 +:1032600097FDA095BA2F80939C0190939D01A09308 +:103270009E01B0939F018DE0E1CF903711F483E57B +:10328000DDCF933561F454E9E52E51E0F52EF701D9 +:1032900081917F0159DF29812E11F9CF2DC19635FA +:1032A00021F481E351DF80E3C9CF933731F489E81A +:1032B0004BDF84E949DF8EE1C1CF9536A9F4E0E028 +:1032C000F0E010935700E89507B600FCFDCF809220 +:1032D0005700E89507B600FCFDCFE058FF4FE11519 +:1032E00080E3F80771F7C7CF9C3651F416DF80955D +:1032F00099E0E1E0F0E0082E90935700E895BBCF0D +:10330000923721F489E0E1E0F0E010C0963419F43E +:1033100089E0F1010BC09E3421F489E0E3E0F0E0A4 +:1033200005C0913539F489E0E2E0F0E08093570080 +:10333000849184CF923631F489E506DF80E004DFA2 +:1033400080E87CCF923419F0973609F0CDC09A838B +:10335000E4DEE82EF12CFE2CEE24DFDEE82ADDDEB2 +:10336000082F8BEB800F9A81823010F08FE366CFAD +:10337000973609F044C081E180935700E895370102 +:10338000A12C6114710409F4B7C0C0909C01D090C5 +:103390009D01E0909E01F0909F010634B9F4EA2D62 +:1033A000F0E0EC29FD298491CFDEAA2069F0F2E05B +:1033B000CF0ED11CE11CF11CC0929C01D0929D014A +:1033C000E0929E01F0929F01AB2415C0D701C60187 +:1033D000B695A7959795879542D5B6DE22E0C20EA1 +:1033E000D11CE11CF11CC0929C01D0929D01E09285 +:1033F0009E01F0929F0181E0681A7108C2CF40904F +:103400009C0150909D0160909E0170909F01063438 +:1034100039F4F20110935700E89507B600FCFDCF90 +:10342000FC82EB82912CA12CEB81FC81EF2B09F427 +:1034300050C0063431F5AA2001F1C0909C01D09013 +:103440009D01E0909E01F0909F0167DE292D30E004 +:10345000382BF6010901B0925700E8951124F2E0EB +:10346000CF0ED11CE11CF11CC0929C01D0929D0199 +:10347000E0929E01F0929F0102C04FDE982EAB2495 +:1034800022C04BDE682F80919C0190919D01A091FC +:103490009E01B0919F01B695A79597958795E7D422 +:1034A00080919C0190919D01A0919E01B0919F01FE +:1034B0000296A11DB11D80939C0190939D01A09344 +:1034C0009E01B0939F018B819C8101979C838B838C +:1034D000ABCF063409F0CFCEF20180925700E895C9 +:1034E00007B600FCFDCFC7CE9B3109F03FCF04C02B +:1034F0008091A001811155C08FB7F8949091A501DA +:103500008FBF8091A001811106C0992309F449C0A1 +:103510005D981093A201F92EFF20B1F00091A40153 +:10352000E02FF0E0EA55FE4F80810EDE0F5F0F774F +:103530000093A4019FB7F8948091A50181508093D6 +:10354000A5019FBFFA94E8CF1093E9009091E8009D +:103550008091E8008E778093E80095FD1DC08091F2 +:10356000E80080FD10C08EB38111F9CF8091A001D9 +:103570008823B9F0F4E0F093E9008091E8008B77BC +:103580008093E8000EC08091E8008E778093E80079 +:1035900003C08EB3882351F38091E80080FFF9CFF8 +:1035A000E5CF22D4A89B15C0A89A8091A2018823B8 +:1035B00031F081508093A201811101C05D9A809108 +:1035C000A101882331F081508093A101811101C0B4 +:1035D0005C9A809100018111F7CD8FE99FE00197FE +:1035E000F1F700C000008091E00081608093E0006E +:1035F0009CE088E10FB6F894A895809360000FBE18 +:1036000090936000FFCF42E061EC82E0E2D142E3C0 +:1036100061E883E0DED142E360E884E0DAC1CF9381 +:1036200080912802982F9F77913209F0C1C0909124 +:103630002902913299F4813A09F0BAC08091E800E8 +:10364000877F8093E80067E070E081E091E065D1DA +:103650008091E8008B778093E800AAC0903209F04F +:1036600092C0813209F0A4C08091E800877F8093E6 +:10367000E800E1E0F1E087E0882309F19EB39923B7 +:1036800011F1953001F19091E80093FD1CC09091EB +:10369000E80092FFF1CF9091F200992329F09091E8 +:1036A000F10091938150B9F79091E8009B77909346 +:1036B000E800E2CF8EB3882331F0853021F080918D +:1036C000E80080FFF7CF8091E8008E778093E800D4 +:1036D00020910101309102014091030150910401B8 +:1036E000211581EE38074105510521F481E08093D1 +:1036F000A00102C01092A0011092A5011092A40195 +:103700001092A30180910601813021F0823021F4D2 +:10371000C0E203C0C0E301C0C0E080910501823077 +:1037200009F4C86080910701873031F0883031F0AA +:10373000863029F4C26003C0C46001C0C6605B9AD1 +:103740001092C9001092C8001092CA00DA01C90193 +:10375000B695A79597958795BC01CD0160587B4795 +:10376000814E9F4F5AD3215031093093CD00209381 +:10377000CC00C093CA0082E08093C80088E980939F +:10378000C9005B9815C0923299F4813289F4809116 +:10379000E800877F8093E80030D18091A0018111FB +:1037A00006C080912A0280FF02C05F9801C05F9A24 +:1037B000CF9108951F920F920FB60F9211248F93FD +:1037C0009F93EF93FF939091CE008091A001811180 +:1037D00017C08EB38430A1F48091A50187FD10C07D +:1037E0008091A301E82FF0E0EA55FE4F90838F5FB0 +:1037F0008F778093A3018091A5018F5F8093A501AE +:10380000FF91EF919F918F910F900FBE0F901F909E +:103810001895292F30E02230310559F02330310539 +:1038200069F021303105F9F482E190E022E831E0DD +:103830001EC08EE390E024E431E019C0882349F0F3 +:10384000813061F0823079F482E290E028E031E06A +:103850000EC084E090E020E431E009C082E190E015 +:103860002CE231E004C080E090E020E030E0FA019A +:1038700031832083089507B600FCFDCFF999FECF70 +:1038800023E0FB0120935700E89507B600FCFDCF2D +:1038900081E180935700E895089507B600FCFDCFBD +:1038A000F999FECF25E0FB0120935700E89507B674 +:1038B00000FCFDCF81E180935700E895089507B69D +:1038C00000FCFDCFF999FECF21E0FB010A01209316 +:1038D0005700E8951124089521E2FC012093570038 +:1038E0008491089529E0FC01209357008491089564 +:1038F000E1E0F0E089E0809357008491089507B6F5 +:1039000000FCFDCFF999FECF809599E0E1E0F0E071 +:10391000082E90935700E895089520912E0230913B +:103920002F022617370748F06115710539F42091E9 +:10393000E8002E772093E80001C0B90140E061154E +:10394000710579F12EB32223F1F12530F1F12091A7 +:10395000E80023FD3CC02091E80022FD2EC020910C +:10396000E80020FFECCF2091F20030E0FC01CF0115 +:103970006115710559F02830310540F4819180932B +:10398000F100615071092F5F3F4FF1CF41E02830C6 +:10399000310509F040E02091E8002E772093E800FF +:1039A000CECF4111CFCF09C08EB3882361F08530CF +:1039B00061F08091E80083FD0AC08091E80082FFF9 +:1039C000F3CF80E0089582E0089583E0089581E0D8 +:1039D00008958F708093E900EBEEF0E080818160C4 +:1039E0008083EDEEF0E010826093EC0040838091E4 +:1039F000EE00881F8827881F08958091280287FF7E +:103A00000FC08091E80082FD04C08EB38111F9CF10 +:103A100010C08091E8008B770AC08EB3882349F0EC +:103A20008091E80080FFF9CF8091E8008E77809345 +:103A3000E80008953CD03ED08091D8008F778093E5 +:103A4000D8008091D80080688093D8008091D800F9 +:103A50008F7D8093D80084E089BD86E089BD09B45C +:103A600000FEFDCF1EBA1092260242E060E080E028 +:103A7000B0DF8091E1008E7F8093E1008091E200D1 +:103A800081608093E2008091E20088608093E20090 +:103A90008091E0008E7F8093E0000895E3E6F0E0FF +:103AA00080818E7F808381E080932702C3CF109234 +:103AB000E20008951092E10008951F920F920FB650 +:103AC0000F9211242F933F934F935F936F937F93A4 +:103AD0008F939F93AF93BF93EF93FF938091E100F8 +:103AE00080FF16C08091E20080FF12C08091E2004A +:103AF0008E7F8093E2008091E20080618093E200FB +:103B00008091D80080628093D80019BC1EBA6BD116 +:103B10008091E10084FF2EC08091E20084FF2AC0E2 +:103B200084E089BD86E089BD09B400FEFDCF8091A7 +:103B3000D8008F7D8093D8008091E1008F7E8093A4 +:103B4000E1008091E2008F7E8093E2008091E200AC +:103B500081608093E20080912602882311F084E046 +:103B600007C08091E30087FD02C081E001C083E0CF +:103B70008EBB39D18091E10083FF21C08091E200AA +:103B800083FF1DC08091E100877F8093E10082E088 +:103B90008EBB109226028091E1008E7F8093E1001F +:103BA0008091E2008E7F8093E2008091E20080614C +:103BB0008093E20042E060E080E00BDF14D1FF91EF +:103BC000EF91BF91AF919F918F917F916F915F9195 +:103BD0004F913F912F910F900FBE0F901F9018950E +:103BE0001F93CF93DF9300D0CDB7DEB7E8E2F2E0CA +:103BF00088E08E0F9091F10091938E13FBCF0FDD33 +:103C00008091E80083FFDBC0809128029091290217 +:103C1000953009F466C030F4913059F168F0933072 +:103C200041F1CDC0983009F49DC0993009F4ACC081 +:103C3000963009F0C4C076C0803881F0823809F02F +:103C4000BEC080912C028F708093E9008091EB00C0 +:103C500085FB882780F91092E90001C080E09091EF +:103C6000E800977F9093E8008093F1001092F100B4 +:103C700084C0282F2D7F09F0A2C0823009F09FC098 +:103C800080912A02811127C080912C028F7009F443 +:103C900096C08093E9002091EB0020FF1CC0933078 +:103CA00021F48091EB00806214C09091EB00906150 +:103CB0009093EB0021E030E0A90102C0440F551FB2 +:103CC0008A95E2F74093EA001092EA008091EB00B7 +:103CD00088608093EB001092E9008091E800877F74 +:103CE0004FC081116CC010912A021F778091E300B0 +:103CF0008078812B8093E3008091E800877F809318 +:103D0000E8007BDE8091E80080FFFCCF8091E3003B +:103D100080688093E300111102C082E001C083E05B +:103D20008EBB4DC08058823008F049C0AE014F5F55 +:103D30005F4F60912C0280912A0290912B0269DDE5 +:103D4000BC01009709F43BC09091E800977F9093E5 +:103D5000E80089819A81E1DD8091E8008B7780938A +:103D6000E8002DC0803859F58091E800877F809366 +:103D7000E800809126028093F1008091E8008E7720 +:103D80008093E8003ADE1BC0811119C090912A028D +:103D90009230A8F48091E800877F8093E8009093A8 +:103DA00026022BDE80912602811106C08091E3005D +:103DB00087FD02C081E001C084E08EBB24DC8091DD +:103DC000E80083FF0AC08091E800877F8093E800C5 +:103DD0008091EB0080628093EB000F900F90DF9159 +:103DE000CF911F9108950895CF938EB3882399F0B2 +:103DF000C091E900CF709091EC00892F817090FD07 +:103E000080E8C82B1092E9008091E80083FDE8DE8D +:103E1000CF70C093E900CF910895A1E21A2EAA1B9A +:103E2000BB1BFD010DC0AA1FBB1FEE1FFF1FA2176A +:103E3000B307E407F50720F0A21BB30BE40BF50B67 +:103E4000661F771F881F991F1A9469F760957095F0 +:103E5000809590959B01AC01BD01CF010895F99922 +:103E6000FECF92BD81BDF89A992780B50895262F7F +:103E7000F999FECF1FBA92BD81BD20BD0FB6F8944F +:0E3E8000FA9AF99A0FBE01960895F894FFCFB2 +:103E8E000100000000000008220348006F006F00D0 +:103E9E0064004C006F006100640065007200320027 +:103EAE0020004D00650067006100000012034E0007 +:103EBE00690063006F0048006F006F00640000002F +:103ECE000403090409023E000201008032090400C5 +:103EDE000001020201000524001001042402020563 +:103EEE0024060001070582030800FF0904010002F1 +:103EFE000A00000007050402400005070583024082 +:103F0E0000051201100102000008412342000402C4 +:0C3F1E0001020001484C322E302E34000D +:103FA0006ACC7BCC8CCC98CC9DCCA2CCA8CC0895F0 +:083FB000089508950895089595 +:103FE000DFCFDFCFDFCFDFCFDFCFDFCFDFCFDFCF61 +:083FF000DFCFDFCFDFCFDFCF11 +:083FF8000030000000DFFBDCDB +:0400000300003000C9 +:00000001FF diff --git a/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Mega_32u2.hex b/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Mega_32u2.hex new file mode 100644 index 0000000..aca7ae1 --- /dev/null +++ b/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Mega_32u2.hex @@ -0,0 +1,250 @@ +:1070000039C0000083C0000081C000007FC00000C4 +:107010007DC000007BC0000079C0000077C0000088 +:1070200075C0000073C0000071C0000046C50000BC +:107030006DC000006BC0000069C0000067C00000A8 +:1070400065C0000063C0000061C000005FC00000B8 +:107050005DC000005BC0000059C00000ABC3000071 +:1070600055C0000053C0000051C000004FC00000D8 +:107070004DC0000011241FBECFEFD4E0DEBFCDBF56 +:10708000909180021092800284B714BE28E10FB65E +:10709000F89420936000109260000FBEE0E0F0E0F2 +:1070A000259134912F3F3F4FE1F081FF12C0973778 +:1070B000C1F087E7809380028FEF9EE924E2815040 +:1070C00090402040E1F700C00000109280021FD0E5 +:1070D00008C080FF02C01BD004C083FF02C09737E6 +:1070E000D1F711E0A0E0B1E0EEE8FEE702C00590C4 +:1070F0000D92AC39B107D9F712E0ACE9B1E001C0AB +:107100001D92A033B107E1F736D0BFC679CF8BB15E +:1071100080638BB9E0E0F0E0099484E08093E900BB +:107120008091E80085FD0DC08091E8008B77809309 +:10713000E8008091E80082FDF3CF8EB38111F9CF92 +:1071400002C08091F100089593E09093E90090913E +:10715000E80095FF03C08093F10008959091E80046 +:107160009E779093E8009091E80090FDF4CF9EB355 +:107170009111F9CF0895CF93DF9300D000D0CDB710 +:10718000DEB790E080E80FB6F894809361009093AA +:1071900061000FBE81E085BF82E085BF7FD484E0BF +:1071A00085BD8AB1886B8AB98BB1846B8BB97894B1 +:1071B00013E0BB24B394E5E08E2E212C312C84E91E +:1071C00091E027E0280F298384E08093E9008091F3 +:1071D000E80082FF8DC1A1DF982F8091A00181116D +:1071E00013C08091C80085FFFCCF9093CE008091A2 +:1071F000F200811105C08091E8008B778093E80050 +:107200005C981093A10178C1953419F41092000193 +:1072100032C088E8890F823010F0943511F47DDF98 +:107220002AC0903541F19C3431F1943721F484E443 +:107230008BDF80E003C0913619F489E585DF5CC1FE +:107240009134D9F46ADF082F68DF90E0880F991F26 +:10725000202F30E0322F2227330F822B932BAA27A7 +:1072600097FDA095BA2F80939C0190939D01A093C8 +:107270009E01B0939F018DE0E1CF903711F483E53B +:10728000DDCF933561F454E9E52E51E0F52EF70199 +:1072900081917F0159DF29812E11F9CF2DC19635BA +:1072A00021F481E351DF80E3C9CF933731F48AE8D9 +:1072B0004BDF85E949DF8EE1C1CF9536A9F4E0E0E7 +:1072C000F0E010935700E89507B600FCFDCF8092E0 +:1072D0005700E89507B600FCFDCFE058FF4FE115D9 +:1072E00080E7F80771F7C7CF9C3651F416DF809519 +:1072F00099E0E1E0F0E0082E90935700E895BBCFCD +:10730000923721F489E0E1E0F0E010C0963419F4FE +:1073100089E0F1010BC09E3421F489E0E3E0F0E064 +:1073200005C0913539F489E0E2E0F0E08093570040 +:10733000849184CF923631F489E506DF80E004DF62 +:1073400080E87CCF923419F0973609F0CDC09A834B +:10735000E4DEE82EF12CFE2CEE24DFDEE82ADDDE72 +:10736000082F8BEB800F9A81823010F08FE366CF6D +:10737000973609F044C081E180935700E8953701C2 +:10738000A12C6114710409F4B7C0C0909C01D09085 +:107390009D01E0909E01F0909F010634B9F4EA2D22 +:1073A000F0E0EC29FD298491CFDEAA2069F0F2E01B +:1073B000CF0ED11CE11CF11CC0929C01D0929D010A +:1073C000E0929E01F0929F01AB2415C0D701C60147 +:1073D000B695A7959795879542D5B6DE22E0C20E61 +:1073E000D11CE11CF11CC0929C01D0929D01E09245 +:1073F0009E01F0929F0181E0681A7108C2CF40900F +:107400009C0150909D0160909E0170909F010634F8 +:1074100039F4F20110935700E89507B600FCFDCF50 +:10742000FC82EB82912CA12CEB81FC81EF2B09F4E7 +:1074300050C0063431F5AA2001F1C0909C01D090D3 +:107440009D01E0909E01F0909F0167DE292D30E0C4 +:10745000382BF6010901B0925700E8951124F2E0AB +:10746000CF0ED11CE11CF11CC0929C01D0929D0159 +:10747000E0929E01F0929F0102C04FDE982EAB2455 +:1074800022C04BDE682F80919C0190919D01A091BC +:107490009E01B0919F01B695A79597958795E7D4E2 +:1074A00080919C0190919D01A0919E01B0919F01BE +:1074B0000296A11DB11D80939C0190939D01A09304 +:1074C0009E01B0939F018B819C8101979C838B834C +:1074D000ABCF063409F0CFCEF20180925700E89589 +:1074E00007B600FCFDCFC7CE9B3109F03FCF04C0EB +:1074F0008091A001811155C08FB7F8949091A5019A +:107500008FBF8091A001811106C0992309F449C061 +:107510005D981093A201F92EFF20B1F00091A40113 +:10752000E02FF0E0EA55FE4F80810EDE0F5F0F770F +:107530000093A4019FB7F8948091A5018150809396 +:10754000A5019FBFFA94E8CF1093E9009091E8005D +:107550008091E8008E778093E80095FD1DC08091B2 +:10756000E80080FD10C08EB38111F9CF8091A00199 +:107570008823B9F0F4E0F093E9008091E8008B777C +:107580008093E8000EC08091E8008E778093E80039 +:1075900003C08EB3882351F38091E80080FFF9CFB8 +:1075A000E5CF22D4A89B15C0A89A8091A201882378 +:1075B00031F081508093A201811101C05D9A8091C8 +:1075C000A101882331F081508093A101811101C074 +:1075D0005C9A809100018111F7CD8FE99FE00197BE +:1075E000F1F700C000008091E00081608093E0002E +:1075F0009CE088E10FB6F894A895809360000FBED8 +:1076000090936000FFCF42E061EC82E0E2D142E380 +:1076100061E883E0DED142E360E884E0DAC1CF9341 +:1076200080912802982F9F77913209F0C1C09091E4 +:107630002902913299F4813A09F0BAC08091E800A8 +:10764000877F8093E80067E070E081E091E065D19A +:107650008091E8008B778093E800AAC0903209F00F +:1076600092C0813209F0A4C08091E800877F8093A6 +:10767000E800E1E0F1E087E0882309F19EB3992377 +:1076800011F1953001F19091E80093FD1CC09091AB +:10769000E80092FFF1CF9091F200992329F09091A8 +:1076A000F10091938150B9F79091E8009B77909306 +:1076B000E800E2CF8EB3882331F0853021F080914D +:1076C000E80080FFF7CF8091E8008E778093E80094 +:1076D0002091010130910201409103015091040178 +:1076E000211581EE38074105510521F481E0809391 +:1076F000A00102C01092A0011092A5011092A40155 +:107700001092A30180910601813021F0823021F492 +:10771000C0E203C0C0E301C0C0E080910501823037 +:1077200009F4C86080910701873031F0883031F06A +:10773000863029F4C26003C0C46001C0C6605B9A91 +:107740001092C9001092C8001092CA00DA01C90153 +:10775000B695A79597958795BC01CD0160587B4755 +:10776000814E9F4F5AD3215031093093CD00209341 +:10777000CC00C093CA0082E08093C80088E980935F +:10778000C9005B9815C0923299F4813289F48091D6 +:10779000E800877F8093E80030D18091A0018111BB +:1077A00006C080912A0280FF02C05F9801C05F9AE4 +:1077B000CF9108951F920F920FB60F9211248F93BD +:1077C0009F93EF93FF939091CE008091A001811140 +:1077D00017C08EB38430A1F48091A50187FD10C03D +:1077E0008091A301E82FF0E0EA55FE4F90838F5F70 +:1077F0008F778093A3018091A5018F5F8093A5016E +:10780000FF91EF919F918F910F900FBE0F901F905E +:107810001895292F30E02230310559F023303105F9 +:1078200069F021303105F9F482E190E022E831E09D +:107830001EC08EE390E024E431E019C0882349F0B3 +:10784000813061F0823079F482E290E028E031E02A +:107850000EC084E090E020E431E009C082E190E0D5 +:107860002CE231E004C080E090E020E030E0FA015A +:1078700031832083089507B600FCFDCFF999FECF30 +:1078800023E0FB0120935700E89507B600FCFDCFED +:1078900081E180935700E895089507B600FCFDCF7D +:1078A000F999FECF25E0FB0120935700E89507B634 +:1078B00000FCFDCF81E180935700E895089507B65D +:1078C00000FCFDCFF999FECF21E0FB010A012093D6 +:1078D0005700E8951124089521E2FC0120935700F8 +:1078E0008491089529E0FC01209357008491089524 +:1078F000E1E0F0E089E0809357008491089507B6B5 +:1079000000FCFDCFF999FECF809599E0E1E0F0E031 +:10791000082E90935700E895089520912E023091FB +:107920002F022617370748F06115710539F42091A9 +:10793000E8002E772093E80001C0B90140E061150E +:10794000710579F12EB32223F1F12530F1F1209167 +:10795000E80023FD3CC02091E80022FD2EC02091CC +:10796000E80020FFECCF2091F20030E0FC01CF01D5 +:107970006115710559F02830310540F481918093EB +:10798000F100615071092F5F3F4FF1CF41E0283086 +:10799000310509F040E02091E8002E772093E800BF +:1079A000CECF4111CFCF09C08EB3882361F085308F +:1079B00061F08091E80083FD0AC08091E80082FFB9 +:1079C000F3CF80E0089582E0089583E0089581E098 +:1079D00008958F708093E900EBEEF0E08081816084 +:1079E0008083EDEEF0E010826093EC0040838091A4 +:1079F000EE00881F8827881F08958091280287FF3E +:107A00000FC08091E80082FD04C08EB38111F9CFD0 +:107A100010C08091E8008B770AC08EB3882349F0AC +:107A20008091E80080FFF9CF8091E8008E77809305 +:107A3000E80008953CD03ED08091D8008F778093A5 +:107A4000D8008091D80080688093D8008091D800B9 +:107A50008F7D8093D80084E089BD86E089BD09B41C +:107A600000FEFDCF1EBA1092260242E060E080E0E8 +:107A7000B0DF8091E1008E7F8093E1008091E20091 +:107A800081608093E2008091E20088608093E20050 +:107A90008091E0008E7F8093E0000895E3E6F0E0BF +:107AA00080818E7F808381E080932702C3CF1092F4 +:107AB000E20008951092E10008951F920F920FB610 +:107AC0000F9211242F933F934F935F936F937F9364 +:107AD0008F939F93AF93BF93EF93FF938091E100B8 +:107AE00080FF16C08091E20080FF12C08091E2000A +:107AF0008E7F8093E2008091E20080618093E200BB +:107B00008091D80080628093D80019BC1EBA6BD1D6 +:107B10008091E10084FF2EC08091E20084FF2AC0A2 +:107B200084E089BD86E089BD09B400FEFDCF809167 +:107B3000D8008F7D8093D8008091E1008F7E809364 +:107B4000E1008091E2008F7E8093E2008091E2006C +:107B500081608093E20080912602882311F084E006 +:107B600007C08091E30087FD02C081E001C083E08F +:107B70008EBB39D18091E10083FF21C08091E2006A +:107B800083FF1DC08091E100877F8093E10082E048 +:107B90008EBB109226028091E1008E7F8093E100DF +:107BA0008091E2008E7F8093E2008091E20080610C +:107BB0008093E20042E060E080E00BDF14D1FF91AF +:107BC000EF91BF91AF919F918F917F916F915F9155 +:107BD0004F913F912F910F900FBE0F901F901895CE +:107BE0001F93CF93DF9300D0CDB7DEB7E8E2F2E08A +:107BF00088E08E0F9091F10091938E13FBCF0FDDF3 +:107C00008091E80083FFDBC08091280290912902D7 +:107C1000953009F466C030F4913059F168F0933032 +:107C200041F1CDC0983009F49DC0993009F4ACC041 +:107C3000963009F0C4C076C0803881F0823809F0EF +:107C4000BEC080912C028F708093E9008091EB0080 +:107C500085FB882780F91092E90001C080E09091AF +:107C6000E800977F9093E8008093F1001092F10074 +:107C700084C0282F2D7F09F0A2C0823009F09FC058 +:107C800080912A02811127C080912C028F7009F403 +:107C900096C08093E9002091EB0020FF1CC0933038 +:107CA00021F48091EB00806214C09091EB00906110 +:107CB0009093EB0021E030E0A90102C0440F551F72 +:107CC0008A95E2F74093EA001092EA008091EB0077 +:107CD00088608093EB001092E9008091E800877F34 +:107CE0004FC081116CC010912A021F778091E30070 +:107CF0008078812B8093E3008091E800877F8093D8 +:107D0000E8007BDE8091E80080FFFCCF8091E300FB +:107D100080688093E300111102C082E001C083E01B +:107D20008EBB4DC08058823008F049C0AE014F5F15 +:107D30005F4F60912C0280912A0290912B0269DDA5 +:107D4000BC01009709F43BC09091E800977F9093A5 +:107D5000E80089819A81E1DD8091E8008B7780934A +:107D6000E8002DC0803859F58091E800877F809326 +:107D7000E800809126028093F1008091E8008E77E0 +:107D80008093E8003ADE1BC0811119C090912A024D +:107D90009230A8F48091E800877F8093E800909368 +:107DA00026022BDE80912602811106C08091E3001D +:107DB00087FD02C081E001C084E08EBB24DC80919D +:107DC000E80083FF0AC08091E800877F8093E80085 +:107DD0008091EB0080628093EB000F900F90DF9119 +:107DE000CF911F9108950895CF938EB3882399F072 +:107DF000C091E900CF709091EC00892F817090FDC7 +:107E000080E8C82B1092E9008091E80083FDE8DE4D +:107E1000CF70C093E900CF910895A1E21A2EAA1B5A +:107E2000BB1BFD010DC0AA1FBB1FEE1FFF1FA2172A +:107E3000B307E407F50720F0A21BB30BE40BF50B27 +:107E4000661F771F881F991F1A9469F760957095B0 +:107E5000809590959B01AC01BD01CF010895F999E2 +:107E6000FECF92BD81BDF89A992780B50895262F3F +:107E7000F999FECF1FBA92BD81BD20BD0FB6F8940F +:0E7E8000FA9AF99A0FBE01960895F894FFCF72 +:107E8E000100000000000008220348006F006F0090 +:107E9E0064004C006F0061006400650072003200E7 +:107EAE0020004D00650067006100000012034E00C7 +:107EBE00690063006F0048006F006F0064000000EF +:107ECE000403090409023E00020100803209040085 +:107EDE000001020201000524001001042402020523 +:107EEE0024060001070582030800FF0904010002B1 +:107EFE000A00000007050402400005070583024042 +:107F0E000005120110010200000841234200040284 +:0C7F1E0001020001484C322E302E3400CD +:107FA0006ACC7BCC8CCC98CC9DCCA2CCA8CC0895B0 +:087FB000089508950895089555 +:107FE000DFCFDFCFDFCFDFCFDFCFDFCFDFCFDFCF21 +:087FF000DFCFDFCFDFCFDFCFD1 +:087FF8000070000000DFFBDC5B +:040000030000700089 +:00000001FF diff --git a/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Mega_8u2.hex b/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Mega_8u2.hex new file mode 100644 index 0000000..d1c7ee6 --- /dev/null +++ b/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Mega_8u2.hex @@ -0,0 +1,250 @@ +:1010000039C0000083C0000081C000007FC0000024 +:101010007DC000007BC0000079C0000077C00000E8 +:1010200075C0000073C0000071C0000046C500001C +:101030006DC000006BC0000069C0000067C0000008 +:1010400065C0000063C0000061C000005FC0000018 +:101050005DC000005BC0000059C00000ABC30000D1 +:1010600055C0000053C0000051C000004FC0000038 +:101070004DC0000011241FBECFEFD2E0DEBFCDBFB8 +:10108000909180021092800284B714BE28E10FB6BE +:10109000F89420936000109260000FBEE0E0F0E052 +:1010A000259134912F3F3F4FE1F081FF12C09737D8 +:1010B000C1F087E7809380028FEF9EE924E28150A0 +:1010C00090402040E1F700C00000109280021FD045 +:1010D00008C080FF02C01BD004C083FF02C0973746 +:1010E000D1F711E0A0E0B1E0EEE8FEE102C005902A +:1010F0000D92AC39B107D9F712E0ACE9B1E001C00B +:101100001D92A033B107E1F736D0BFC679CF8BB1BE +:1011100080638BB9E0E0F0E0099484E08093E9001B +:101120008091E80085FD0DC08091E8008B77809369 +:10113000E8008091E80082FDF3CF8EB38111F9CFF2 +:1011400002C08091F100089593E09093E90090919E +:10115000E80095FF03C08093F10008959091E800A6 +:101160009E779093E8009091E80090FDF4CF9EB3B5 +:101170009111F9CF0895CF93DF9300D000D0CDB770 +:10118000DEB790E080E80FB6F8948093610090930A +:1011900061000FBE81E085BF82E085BF7FD484E01F +:1011A00085BD8AB1886B8AB98BB1846B8BB9789411 +:1011B00013E0BB24B394E5E08E2E212C312C84E97E +:1011C00091E027E0280F298384E08093E900809153 +:1011D000E80082FF8DC1A1DF982F8091A0018111CD +:1011E00013C08091C80085FFFCCF9093CE00809102 +:1011F000F200811105C08091E8008B778093E800B0 +:101200005C981093A10178C1953419F410920001F3 +:1012100032C088E8890F823010F0943511F47DDFF8 +:101220002AC0903541F19C3431F1943721F484E4A3 +:101230008BDF80E003C0913619F489E585DF5CC15E +:101240009134D9F46ADF082F68DF90E0880F991F86 +:10125000202F30E0322F2227330F822B932BAA2707 +:1012600097FDA095BA2F80939C0190939D01A09328 +:101270009E01B0939F018DE0E1CF903711F483E59B +:10128000DDCF933561F454E9E52E51E0F52EF701F9 +:1012900081917F0159DF29812E11F9CF2DC196351A +:1012A00021F481E351DF80E3C9CF933731F489E83A +:1012B0004BDF83E949DF8EE1C1CF9536A9F4E0E049 +:1012C000F0E010935700E89507B600FCFDCF809240 +:1012D0005700E89507B600FCFDCFE058FF4FE11539 +:1012E00080E1F80771F7C7CF9C3651F416DF80957F +:1012F00099E0E1E0F0E0082E90935700E895BBCF2D +:10130000923721F489E0E1E0F0E010C0963419F45E +:1013100089E0F1010BC09E3421F489E0E3E0F0E0C4 +:1013200005C0913539F489E0E2E0F0E080935700A0 +:10133000849184CF923631F489E506DF80E004DFC2 +:1013400080E87CCF923419F0973609F0CDC09A83AB +:10135000E4DEE82EF12CFE2CEE24DFDEE82ADDDED2 +:10136000082F8BEB800F9A81823010F08FE366CFCD +:10137000973609F044C081E180935700E895370122 +:10138000A12C6114710409F4B7C0C0909C01D090E5 +:101390009D01E0909E01F0909F010634B9F4EA2D82 +:1013A000F0E0EC29FD298491CFDEAA2069F0F2E07B +:1013B000CF0ED11CE11CF11CC0929C01D0929D016A +:1013C000E0929E01F0929F01AB2415C0D701C601A7 +:1013D000B695A7959795879542D5B6DE22E0C20EC1 +:1013E000D11CE11CF11CC0929C01D0929D01E092A5 +:1013F0009E01F0929F0181E0681A7108C2CF40906F +:101400009C0150909D0160909E0170909F01063458 +:1014100039F4F20110935700E89507B600FCFDCFB0 +:10142000FC82EB82912CA12CEB81FC81EF2B09F447 +:1014300050C0063431F5AA2001F1C0909C01D09033 +:101440009D01E0909E01F0909F0167DE292D30E024 +:10145000382BF6010901B0925700E8951124F2E00B +:10146000CF0ED11CE11CF11CC0929C01D0929D01B9 +:10147000E0929E01F0929F0102C04FDE982EAB24B5 +:1014800022C04BDE682F80919C0190919D01A0911C +:101490009E01B0919F01B695A79597958795E7D442 +:1014A00080919C0190919D01A0919E01B0919F011E +:1014B0000296A11DB11D80939C0190939D01A09364 +:1014C0009E01B0939F018B819C8101979C838B83AC +:1014D000ABCF063409F0CFCEF20180925700E895E9 +:1014E00007B600FCFDCFC7CE9B3109F03FCF04C04B +:1014F0008091A001811155C08FB7F8949091A501FA +:101500008FBF8091A001811106C0992309F449C0C1 +:101510005D981093A201F92EFF20B1F00091A40173 +:10152000E02FF0E0EA55FE4F80810EDE0F5F0F776F +:101530000093A4019FB7F8948091A50181508093F6 +:10154000A5019FBFFA94E8CF1093E9009091E800BD +:101550008091E8008E778093E80095FD1DC0809112 +:10156000E80080FD10C08EB38111F9CF8091A001F9 +:101570008823B9F0F4E0F093E9008091E8008B77DC +:101580008093E8000EC08091E8008E778093E80099 +:1015900003C08EB3882351F38091E80080FFF9CF18 +:1015A000E5CF22D4A89B15C0A89A8091A2018823D8 +:1015B00031F081508093A201811101C05D9A809128 +:1015C000A101882331F081508093A101811101C0D4 +:1015D0005C9A809100018111F7CD8FE99FE001971E +:1015E000F1F700C000008091E00081608093E0008E +:1015F0009CE088E10FB6F894A895809360000FBE38 +:1016000090936000FFCF42E061EC82E0E2D142E3E0 +:1016100061E883E0DED142E360E884E0DAC1CF93A1 +:1016200080912802982F9F77913209F0C1C0909144 +:101630002902913299F4813A09F0BAC08091E80008 +:10164000877F8093E80067E070E081E091E065D1FA +:101650008091E8008B778093E800AAC0903209F06F +:1016600092C0813209F0A4C08091E800877F809306 +:10167000E800E1E0F1E087E0882309F19EB39923D7 +:1016800011F1953001F19091E80093FD1CC090910B +:10169000E80092FFF1CF9091F200992329F0909108 +:1016A000F10091938150B9F79091E8009B77909366 +:1016B000E800E2CF8EB3882331F0853021F08091AD +:1016C000E80080FFF7CF8091E8008E778093E800F4 +:1016D00020910101309102014091030150910401D8 +:1016E000211581EE38074105510521F481E08093F1 +:1016F000A00102C01092A0011092A5011092A401B5 +:101700001092A30180910601813021F0823021F4F2 +:10171000C0E203C0C0E301C0C0E080910501823097 +:1017200009F4C86080910701873031F0883031F0CA +:10173000863029F4C26003C0C46001C0C6605B9AF1 +:101740001092C9001092C8001092CA00DA01C901B3 +:10175000B695A79597958795BC01CD0160587B47B5 +:10176000814E9F4F5AD3215031093093CD002093A1 +:10177000CC00C093CA0082E08093C80088E98093BF +:10178000C9005B9815C0923299F4813289F4809136 +:10179000E800877F8093E80030D18091A00181111B +:1017A00006C080912A0280FF02C05F9801C05F9A44 +:1017B000CF9108951F920F920FB60F9211248F931D +:1017C0009F93EF93FF939091CE008091A0018111A0 +:1017D00017C08EB38430A1F48091A50187FD10C09D +:1017E0008091A301E82FF0E0EA55FE4F90838F5FD0 +:1017F0008F778093A3018091A5018F5F8093A501CE +:10180000FF91EF919F918F910F900FBE0F901F90BE +:101810001895292F30E02230310559F02330310559 +:1018200069F021303105F9F482E190E022E831E0FD +:101830001EC08EE390E024E431E019C0882349F013 +:10184000813061F0823079F482E290E028E031E08A +:101850000EC084E090E020E431E009C082E190E035 +:101860002CE231E004C080E090E020E030E0FA01BA +:1018700031832083089507B600FCFDCFF999FECF90 +:1018800023E0FB0120935700E89507B600FCFDCF4D +:1018900081E180935700E895089507B600FCFDCFDD +:1018A000F999FECF25E0FB0120935700E89507B694 +:1018B00000FCFDCF81E180935700E895089507B6BD +:1018C00000FCFDCFF999FECF21E0FB010A01209336 +:1018D0005700E8951124089521E2FC012093570058 +:1018E0008491089529E0FC01209357008491089584 +:1018F000E1E0F0E089E0809357008491089507B615 +:1019000000FCFDCFF999FECF809599E0E1E0F0E091 +:10191000082E90935700E895089520912E0230915B +:101920002F022617370748F06115710539F4209109 +:10193000E8002E772093E80001C0B90140E061156E +:10194000710579F12EB32223F1F12530F1F12091C7 +:10195000E80023FD3CC02091E80022FD2EC020912C +:10196000E80020FFECCF2091F20030E0FC01CF0135 +:101970006115710559F02830310540F4819180934B +:10198000F100615071092F5F3F4FF1CF41E02830E6 +:10199000310509F040E02091E8002E772093E8001F +:1019A000CECF4111CFCF09C08EB3882361F08530EF +:1019B00061F08091E80083FD0AC08091E80082FF19 +:1019C000F3CF80E0089582E0089583E0089581E0F8 +:1019D00008958F708093E900EBEEF0E080818160E4 +:1019E0008083EDEEF0E010826093EC004083809104 +:1019F000EE00881F8827881F08958091280287FF9E +:101A00000FC08091E80082FD04C08EB38111F9CF30 +:101A100010C08091E8008B770AC08EB3882349F00C +:101A20008091E80080FFF9CF8091E8008E77809365 +:101A3000E80008953CD03ED08091D8008F77809305 +:101A4000D8008091D80080688093D8008091D80019 +:101A50008F7D8093D80084E089BD86E089BD09B47C +:101A600000FEFDCF1EBA1092260242E060E080E048 +:101A7000B0DF8091E1008E7F8093E1008091E200F1 +:101A800081608093E2008091E20088608093E200B0 +:101A90008091E0008E7F8093E0000895E3E6F0E01F +:101AA00080818E7F808381E080932702C3CF109254 +:101AB000E20008951092E10008951F920F920FB670 +:101AC0000F9211242F933F934F935F936F937F93C4 +:101AD0008F939F93AF93BF93EF93FF938091E10018 +:101AE00080FF16C08091E20080FF12C08091E2006A +:101AF0008E7F8093E2008091E20080618093E2001B +:101B00008091D80080628093D80019BC1EBA6BD136 +:101B10008091E10084FF2EC08091E20084FF2AC002 +:101B200084E089BD86E089BD09B400FEFDCF8091C7 +:101B3000D8008F7D8093D8008091E1008F7E8093C4 +:101B4000E1008091E2008F7E8093E2008091E200CC +:101B500081608093E20080912602882311F084E066 +:101B600007C08091E30087FD02C081E001C083E0EF +:101B70008EBB39D18091E10083FF21C08091E200CA +:101B800083FF1DC08091E100877F8093E10082E0A8 +:101B90008EBB109226028091E1008E7F8093E1003F +:101BA0008091E2008E7F8093E2008091E20080616C +:101BB0008093E20042E060E080E00BDF14D1FF910F +:101BC000EF91BF91AF919F918F917F916F915F91B5 +:101BD0004F913F912F910F900FBE0F901F9018952E +:101BE0001F93CF93DF9300D0CDB7DEB7E8E2F2E0EA +:101BF00088E08E0F9091F10091938E13FBCF0FDD53 +:101C00008091E80083FFDBC0809128029091290237 +:101C1000953009F466C030F4913059F168F0933092 +:101C200041F1CDC0983009F49DC0993009F4ACC0A1 +:101C3000963009F0C4C076C0803881F0823809F04F +:101C4000BEC080912C028F708093E9008091EB00E0 +:101C500085FB882780F91092E90001C080E090910F +:101C6000E800977F9093E8008093F1001092F100D4 +:101C700084C0282F2D7F09F0A2C0823009F09FC0B8 +:101C800080912A02811127C080912C028F7009F463 +:101C900096C08093E9002091EB0020FF1CC0933098 +:101CA00021F48091EB00806214C09091EB00906170 +:101CB0009093EB0021E030E0A90102C0440F551FD2 +:101CC0008A95E2F74093EA001092EA008091EB00D7 +:101CD00088608093EB001092E9008091E800877F94 +:101CE0004FC081116CC010912A021F778091E300D0 +:101CF0008078812B8093E3008091E800877F809338 +:101D0000E8007BDE8091E80080FFFCCF8091E3005B +:101D100080688093E300111102C082E001C083E07B +:101D20008EBB4DC08058823008F049C0AE014F5F75 +:101D30005F4F60912C0280912A0290912B0269DD05 +:101D4000BC01009709F43BC09091E800977F909305 +:101D5000E80089819A81E1DD8091E8008B778093AA +:101D6000E8002DC0803859F58091E800877F809386 +:101D7000E800809126028093F1008091E8008E7740 +:101D80008093E8003ADE1BC0811119C090912A02AD +:101D90009230A8F48091E800877F8093E8009093C8 +:101DA00026022BDE80912602811106C08091E3007D +:101DB00087FD02C081E001C084E08EBB24DC8091FD +:101DC000E80083FF0AC08091E800877F8093E800E5 +:101DD0008091EB0080628093EB000F900F90DF9179 +:101DE000CF911F9108950895CF938EB3882399F0D2 +:101DF000C091E900CF709091EC00892F817090FD27 +:101E000080E8C82B1092E9008091E80083FDE8DEAD +:101E1000CF70C093E900CF910895A1E21A2EAA1BBA +:101E2000BB1BFD010DC0AA1FBB1FEE1FFF1FA2178A +:101E3000B307E407F50720F0A21BB30BE40BF50B87 +:101E4000661F771F881F991F1A9469F76095709510 +:101E5000809590959B01AC01BD01CF010895F99942 +:101E6000FECF92BD81BDF89A992780B50895262F9F +:101E7000F999FECF1FBA92BD81BD20BD0FB6F8946F +:0E1E8000FA9AF99A0FBE01960895F894FFCFD2 +:101E8E000100000000000008220348006F006F00F0 +:101E9E0064004C006F006100640065007200320047 +:101EAE0020004D00650067006100000012034E0027 +:101EBE00690063006F0048006F006F00640000004F +:101ECE000403090409023E000201008032090400E5 +:101EDE000001020201000524001001042402020583 +:101EEE0024060001070582030800FF090401000211 +:101EFE000A000000070504024000050705830240A2 +:101F0E0000051201100102000008412342000402E4 +:0C1F1E0001020001484C322E302E34002D +:101FA0006ACC7BCC8CCC98CC9DCCA2CCA8CC089510 +:081FB0000895089508950895B5 +:101FE000DFCFDFCFDFCFDFCFDFCFDFCFDFCFDFCF81 +:081FF000DFCFDFCFDFCFDFCF31 +:081FF8000010000000DFFBDC1B +:0400000300001000E9 +:00000001FF diff --git a/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Mega_at90usb162.hex b/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Mega_at90usb162.hex new file mode 100644 index 0000000..a9f2a9e --- /dev/null +++ b/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Mega_at90usb162.hex @@ -0,0 +1,250 @@ +:1030000039C0000083C0000081C000007FC0000004 +:103010007DC000007BC0000079C0000077C00000C8 +:1030200075C0000073C0000071C0000046C50000FC +:103030006DC000006BC0000069C0000067C00000E8 +:1030400065C0000063C0000061C000005FC00000F8 +:103050005DC000005BC0000059C00000ABC30000B1 +:1030600055C0000053C0000051C000004FC0000018 +:103070004DC0000011241FBECFEFD2E0DEBFCDBF98 +:10308000909180021092800284B714BE28E10FB69E +:10309000F89420936000109260000FBEE0E0F0E032 +:1030A000259134912F3F3F4FE1F081FF12C09737B8 +:1030B000C1F087E7809380028FEF9EE924E2815080 +:1030C00090402040E1F700C00000109280021FD025 +:1030D00008C080FF02C01BD004C083FF02C0973726 +:1030E000D1F711E0A0E0B1E0EEE8FEE302C0059008 +:1030F0000D92AC39B107D9F712E0ACE9B1E001C0EB +:103100001D92A033B107E1F736D0BFC679CF8BB19E +:1031100080638BB9E0E0F0E0099484E08093E900FB +:103120008091E80085FD0DC08091E8008B77809349 +:10313000E8008091E80082FDF3CF8EB38111F9CFD2 +:1031400002C08091F100089593E09093E90090917E +:10315000E80095FF03C08093F10008959091E80086 +:103160009E779093E8009091E80090FDF4CF9EB395 +:103170009111F9CF0895CF93DF9300D000D0CDB750 +:10318000DEB790E080E80FB6F894809361009093EA +:1031900061000FBE81E085BF82E085BF7FD484E0FF +:1031A00085BD8AB1886B8AB98BB1846B8BB97894F1 +:1031B00013E0BB24B394E5E08E2E212C312C84E95E +:1031C00091E027E0280F298384E08093E900809133 +:1031D000E80082FF8DC1A1DF982F8091A0018111AD +:1031E00013C08091C80085FFFCCF9093CE008091E2 +:1031F000F200811105C08091E8008B778093E80090 +:103200005C981093A10178C1953419F410920001D3 +:1032100032C088E8890F823010F0943511F47DDFD8 +:103220002AC0903541F19C3431F1943721F484E483 +:103230008BDF80E003C0913619F489E585DF5CC13E +:103240009134D9F46ADF082F68DF90E0880F991F66 +:10325000202F30E0322F2227330F822B932BAA27E7 +:1032600097FDA095BA2F80939C0190939D01A09308 +:103270009E01B0939F018DE0E1CF903711F483E57B +:10328000DDCF933561F454E9E52E51E0F52EF701D9 +:1032900081917F0159DF29812E11F9CF2DC19635FA +:1032A00021F481E351DF80E3C9CF933731F482E821 +:1032B0004BDF84E949DF8EE1C1CF9536A9F4E0E028 +:1032C000F0E010935700E89507B600FCFDCF809220 +:1032D0005700E89507B600FCFDCFE058FF4FE11519 +:1032E00080E3F80771F7C7CF9C3651F416DF80955D +:1032F00099E0E1E0F0E0082E90935700E895BBCF0D +:10330000923721F489E0E1E0F0E010C0963419F43E +:1033100089E0F1010BC09E3421F489E0E3E0F0E0A4 +:1033200005C0913539F489E0E2E0F0E08093570080 +:10333000849184CF923631F489E506DF80E004DFA2 +:1033400080E87CCF923419F0973609F0CDC09A838B +:10335000E4DEE82EF12CFE2CEE24DFDEE82ADDDEB2 +:10336000082F8BEB800F9A81823010F08FE366CFAD +:10337000973609F044C081E180935700E895370102 +:10338000A12C6114710409F4B7C0C0909C01D090C5 +:103390009D01E0909E01F0909F010634B9F4EA2D62 +:1033A000F0E0EC29FD298491CFDEAA2069F0F2E05B +:1033B000CF0ED11CE11CF11CC0929C01D0929D014A +:1033C000E0929E01F0929F01AB2415C0D701C60187 +:1033D000B695A7959795879542D5B6DE22E0C20EA1 +:1033E000D11CE11CF11CC0929C01D0929D01E09285 +:1033F0009E01F0929F0181E0681A7108C2CF40904F +:103400009C0150909D0160909E0170909F01063438 +:1034100039F4F20110935700E89507B600FCFDCF90 +:10342000FC82EB82912CA12CEB81FC81EF2B09F427 +:1034300050C0063431F5AA2001F1C0909C01D09013 +:103440009D01E0909E01F0909F0167DE292D30E004 +:10345000382BF6010901B0925700E8951124F2E0EB +:10346000CF0ED11CE11CF11CC0929C01D0929D0199 +:10347000E0929E01F0929F0102C04FDE982EAB2495 +:1034800022C04BDE682F80919C0190919D01A091FC +:103490009E01B0919F01B695A79597958795E7D422 +:1034A00080919C0190919D01A0919E01B0919F01FE +:1034B0000296A11DB11D80939C0190939D01A09344 +:1034C0009E01B0939F018B819C8101979C838B838C +:1034D000ABCF063409F0CFCEF20180925700E895C9 +:1034E00007B600FCFDCFC7CE9B3109F03FCF04C02B +:1034F0008091A001811155C08FB7F8949091A501DA +:103500008FBF8091A001811106C0992309F449C0A1 +:103510005D981093A201F92EFF20B1F00091A40153 +:10352000E02FF0E0EA55FE4F80810EDE0F5F0F774F +:103530000093A4019FB7F8948091A50181508093D6 +:10354000A5019FBFFA94E8CF1093E9009091E8009D +:103550008091E8008E778093E80095FD1DC08091F2 +:10356000E80080FD10C08EB38111F9CF8091A001D9 +:103570008823B9F0F4E0F093E9008091E8008B77BC +:103580008093E8000EC08091E8008E778093E80079 +:1035900003C08EB3882351F38091E80080FFF9CFF8 +:1035A000E5CF22D4A89B15C0A89A8091A2018823B8 +:1035B00031F081508093A201811101C05D9A809108 +:1035C000A101882331F081508093A101811101C0B4 +:1035D0005C9A809100018111F7CD8FE99FE00197FE +:1035E000F1F700C000008091E00081608093E0006E +:1035F0009CE088E10FB6F894A895809360000FBE18 +:1036000090936000FFCF42E061EC82E0E2D142E3C0 +:1036100061E883E0DED142E360E884E0DAC1CF9381 +:1036200080912802982F9F77913209F0C1C0909124 +:103630002902913299F4813A09F0BAC08091E800E8 +:10364000877F8093E80067E070E081E091E065D1DA +:103650008091E8008B778093E800AAC0903209F04F +:1036600092C0813209F0A4C08091E800877F8093E6 +:10367000E800E1E0F1E087E0882309F19EB39923B7 +:1036800011F1953001F19091E80093FD1CC09091EB +:10369000E80092FFF1CF9091F200992329F09091E8 +:1036A000F10091938150B9F79091E8009B77909346 +:1036B000E800E2CF8EB3882331F0853021F080918D +:1036C000E80080FFF7CF8091E8008E778093E800D4 +:1036D00020910101309102014091030150910401B8 +:1036E000211581EE38074105510521F481E08093D1 +:1036F000A00102C01092A0011092A5011092A40195 +:103700001092A30180910601813021F0823021F4D2 +:10371000C0E203C0C0E301C0C0E080910501823077 +:1037200009F4C86080910701873031F0883031F0AA +:10373000863029F4C26003C0C46001C0C6605B9AD1 +:103740001092C9001092C8001092CA00DA01C90193 +:10375000B695A79597958795BC01CD0160587B4795 +:10376000814E9F4F5AD3215031093093CD00209381 +:10377000CC00C093CA0082E08093C80088E980939F +:10378000C9005B9815C0923299F4813289F4809116 +:10379000E800877F8093E80030D18091A0018111FB +:1037A00006C080912A0280FF02C05F9801C05F9A24 +:1037B000CF9108951F920F920FB60F9211248F93FD +:1037C0009F93EF93FF939091CE008091A001811180 +:1037D00017C08EB38430A1F48091A50187FD10C07D +:1037E0008091A301E82FF0E0EA55FE4F90838F5FB0 +:1037F0008F778093A3018091A5018F5F8093A501AE +:10380000FF91EF919F918F910F900FBE0F901F909E +:103810001895292F30E02230310559F02330310539 +:1038200069F021303105F9F482E190E022E831E0DD +:103830001EC08EE390E024E431E019C0882349F0F3 +:10384000813061F0823079F482E290E028E031E06A +:103850000EC084E090E020E431E009C082E190E015 +:103860002CE231E004C080E090E020E030E0FA019A +:1038700031832083089507B600FCFDCFF999FECF70 +:1038800023E0FB0120935700E89507B600FCFDCF2D +:1038900081E180935700E895089507B600FCFDCFBD +:1038A000F999FECF25E0FB0120935700E89507B674 +:1038B00000FCFDCF81E180935700E895089507B69D +:1038C00000FCFDCFF999FECF21E0FB010A01209316 +:1038D0005700E8951124089521E2FC012093570038 +:1038E0008491089529E0FC01209357008491089564 +:1038F000E1E0F0E089E0809357008491089507B6F5 +:1039000000FCFDCFF999FECF809599E0E1E0F0E071 +:10391000082E90935700E895089520912E0230913B +:103920002F022617370748F06115710539F42091E9 +:10393000E8002E772093E80001C0B90140E061154E +:10394000710579F12EB32223F1F12530F1F12091A7 +:10395000E80023FD3CC02091E80022FD2EC020910C +:10396000E80020FFECCF2091F20030E0FC01CF0115 +:103970006115710559F02830310540F4819180932B +:10398000F100615071092F5F3F4FF1CF41E02830C6 +:10399000310509F040E02091E8002E772093E800FF +:1039A000CECF4111CFCF09C08EB3882361F08530CF +:1039B00061F08091E80083FD0AC08091E80082FFF9 +:1039C000F3CF80E0089582E0089583E0089581E0D8 +:1039D00008958F708093E900EBEEF0E080818160C4 +:1039E0008083EDEEF0E010826093EC0040838091E4 +:1039F000EE00881F8827881F08958091280287FF7E +:103A00000FC08091E80082FD04C08EB38111F9CF10 +:103A100010C08091E8008B770AC08EB3882349F0EC +:103A20008091E80080FFF9CF8091E8008E77809345 +:103A3000E80008953CD03ED08091D8008F778093E5 +:103A4000D8008091D80080688093D8008091D800F9 +:103A50008F7D8093D80084E089BD86E089BD09B45C +:103A600000FEFDCF1EBA1092260242E060E080E028 +:103A7000B0DF8091E1008E7F8093E1008091E200D1 +:103A800081608093E2008091E20088608093E20090 +:103A90008091E0008E7F8093E0000895E3E6F0E0FF +:103AA00080818E7F808381E080932702C3CF109234 +:103AB000E20008951092E10008951F920F920FB650 +:103AC0000F9211242F933F934F935F936F937F93A4 +:103AD0008F939F93AF93BF93EF93FF938091E100F8 +:103AE00080FF16C08091E20080FF12C08091E2004A +:103AF0008E7F8093E2008091E20080618093E200FB +:103B00008091D80080628093D80019BC1EBA6BD116 +:103B10008091E10084FF2EC08091E20084FF2AC0E2 +:103B200084E089BD86E089BD09B400FEFDCF8091A7 +:103B3000D8008F7D8093D8008091E1008F7E8093A4 +:103B4000E1008091E2008F7E8093E2008091E200AC +:103B500081608093E20080912602882311F084E046 +:103B600007C08091E30087FD02C081E001C083E0CF +:103B70008EBB39D18091E10083FF21C08091E200AA +:103B800083FF1DC08091E100877F8093E10082E088 +:103B90008EBB109226028091E1008E7F8093E1001F +:103BA0008091E2008E7F8093E2008091E20080614C +:103BB0008093E20042E060E080E00BDF14D1FF91EF +:103BC000EF91BF91AF919F918F917F916F915F9195 +:103BD0004F913F912F910F900FBE0F901F9018950E +:103BE0001F93CF93DF9300D0CDB7DEB7E8E2F2E0CA +:103BF00088E08E0F9091F10091938E13FBCF0FDD33 +:103C00008091E80083FFDBC0809128029091290217 +:103C1000953009F466C030F4913059F168F0933072 +:103C200041F1CDC0983009F49DC0993009F4ACC081 +:103C3000963009F0C4C076C0803881F0823809F02F +:103C4000BEC080912C028F708093E9008091EB00C0 +:103C500085FB882780F91092E90001C080E09091EF +:103C6000E800977F9093E8008093F1001092F100B4 +:103C700084C0282F2D7F09F0A2C0823009F09FC098 +:103C800080912A02811127C080912C028F7009F443 +:103C900096C08093E9002091EB0020FF1CC0933078 +:103CA00021F48091EB00806214C09091EB00906150 +:103CB0009093EB0021E030E0A90102C0440F551FB2 +:103CC0008A95E2F74093EA001092EA008091EB00B7 +:103CD00088608093EB001092E9008091E800877F74 +:103CE0004FC081116CC010912A021F778091E300B0 +:103CF0008078812B8093E3008091E800877F809318 +:103D0000E8007BDE8091E80080FFFCCF8091E3003B +:103D100080688093E300111102C082E001C083E05B +:103D20008EBB4DC08058823008F049C0AE014F5F55 +:103D30005F4F60912C0280912A0290912B0269DDE5 +:103D4000BC01009709F43BC09091E800977F9093E5 +:103D5000E80089819A81E1DD8091E8008B7780938A +:103D6000E8002DC0803859F58091E800877F809366 +:103D7000E800809126028093F1008091E8008E7720 +:103D80008093E8003ADE1BC0811119C090912A028D +:103D90009230A8F48091E800877F8093E8009093A8 +:103DA00026022BDE80912602811106C08091E3005D +:103DB00087FD02C081E001C084E08EBB24DC8091DD +:103DC000E80083FF0AC08091E800877F8093E800C5 +:103DD0008091EB0080628093EB000F900F90DF9159 +:103DE000CF911F9108950895CF938EB3882399F0B2 +:103DF000C091E900CF709091EC00892F817090FD07 +:103E000080E8C82B1092E9008091E80083FDE8DE8D +:103E1000CF70C093E900CF910895A1E21A2EAA1B9A +:103E2000BB1BFD010DC0AA1FBB1FEE1FFF1FA2176A +:103E3000B307E407F50720F0A21BB30BE40BF50B67 +:103E4000661F771F881F991F1A9469F760957095F0 +:103E5000809590959B01AC01BD01CF010895F99922 +:103E6000FECF92BD81BDF89A992780B50895262F7F +:103E7000F999FECF1FBA92BD81BD20BD0FB6F8944F +:0E3E8000FA9AF99A0FBE01960895F894FFCFB2 +:103E8E000100000000000008220348006F006F00D0 +:103E9E0064004C006F006100640065007200320027 +:103EAE0020004D00650067006100000012034E0007 +:103EBE00690063006F0048006F006F00640000002F +:103ECE000403090409023E000201008032090400C5 +:103EDE000001020201000524001001042402020563 +:103EEE0024060001070582030800FF0904010002F1 +:103EFE000A00000007050402400005070583024082 +:103F0E0000051201100102000008412342000402C4 +:0C3F1E0001020001484C322E302E34000D +:103FA0006ACC7BCC8CCC98CC9DCCA2CCA8CC0895F0 +:083FB000089508950895089595 +:103FE000DFCFDFCFDFCFDFCFDFCFDFCFDFCFDFCF61 +:083FF000DFCFDFCFDFCFDFCF11 +:083FF8000030000000DFFBDCDB +:0400000300003000C9 +:00000001FF diff --git a/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Uno_16u2.hex b/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Uno_16u2.hex new file mode 100644 index 0000000..7d2bdd5 --- /dev/null +++ b/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Uno_16u2.hex @@ -0,0 +1,250 @@ +:1030000039C0000083C0000081C000007FC0000004 +:103010007DC000007BC0000079C0000077C00000C8 +:1030200075C0000073C0000071C0000046C50000FC +:103030006DC000006BC0000069C0000067C00000E8 +:1030400065C0000063C0000061C000005FC00000F8 +:103050005DC000005BC0000059C00000ABC30000B1 +:1030600055C0000053C0000051C000004FC0000018 +:103070004DC0000011241FBECFEFD2E0DEBFCDBF98 +:10308000909180021092800284B714BE28E10FB69E +:10309000F89420936000109260000FBEE0E0F0E032 +:1030A000259134912F3F3F4FE1F081FF12C09737B8 +:1030B000C1F087E7809380028FEF9EE924E2815080 +:1030C00090402040E1F700C00000109280021FD025 +:1030D00008C080FF02C01BD004C083FF02C0973726 +:1030E000D1F711E0A0E0B1E0EEE8FEE302C0059008 +:1030F0000D92AA39B107D9F712E0AAE9B1E001C0EF +:103100001D92AE32B107E1F736D0BFC679CF8BB191 +:1031100080638BB9E0E0F0E0099484E08093E900FB +:103120008091E80085FD0DC08091E8008B77809349 +:10313000E8008091E80082FDF3CF8EB38111F9CFD2 +:1031400002C08091F100089593E09093E90090917E +:10315000E80095FF03C08093F10008959091E80086 +:103160009E779093E8009091E80090FDF4CF9EB395 +:103170009111F9CF0895CF93DF9300D000D0CDB750 +:10318000DEB790E080E80FB6F894809361009093EA +:1031900061000FBE81E085BF82E085BF7FD484E0FF +:1031A00085BD8AB1886B8AB98BB1846B8BB97894F1 +:1031B00013E0BB24B394E5E08E2E212C312C82E960 +:1031C00091E027E0280F298384E08093E900809133 +:1031D000E80082FF8DC1A1DF982F80919E018111AF +:1031E00013C08091C80085FFFCCF9093CE008091E2 +:1031F000F200811105C08091E8008B778093E80090 +:103200005C9810939F0178C1953419F410920001D5 +:1032100032C088E8890F823010F0943511F47DDFD8 +:103220002AC0903541F19C3431F1943721F484E483 +:103230008BDF80E003C0913619F489E585DF5CC13E +:103240009134D9F46ADF082F68DF90E0880F991F66 +:10325000202F30E0322F2227330F822B932BAA27E7 +:1032600097FDA095BA2F80939A0190939B01A0930C +:103270009C01B0939D018DE0E1CF903711F483E57F +:10328000DDCF933561F452E9E52E51E0F52EF701DB +:1032900081917F0159DF29812E11F9CF2DC19635FA +:1032A00021F481E351DF80E3C9CF933731F489E81A +:1032B0004BDF84E949DF8EE1C1CF9536A9F4E0E028 +:1032C000F0E010935700E89507B600FCFDCF809220 +:1032D0005700E89507B600FCFDCFE058FF4FE11519 +:1032E00080E3F80771F7C7CF9C3651F416DF80955D +:1032F00099E0E1E0F0E0082E90935700E895BBCF0D +:10330000923721F489E0E1E0F0E010C0963419F43E +:1033100089E0F1010BC09E3421F489E0E3E0F0E0A4 +:1033200005C0913539F489E0E2E0F0E08093570080 +:10333000849184CF923631F489E506DF80E004DFA2 +:1033400080E87CCF923419F0973609F0CDC09A838B +:10335000E4DEE82EF12CFE2CEE24DFDEE82ADDDEB2 +:10336000082F8BEB800F9A81823010F08FE366CFAD +:10337000973609F044C081E180935700E895370102 +:10338000A12C6114710409F4B7C0C0909A01D090C7 +:103390009B01E0909C01F0909D010634B9F4EA2D68 +:1033A000F0E0EC29FD298491CFDEAA2069F0F2E05B +:1033B000CF0ED11CE11CF11CC0929A01D0929B014E +:1033C000E0929C01F0929D01AB2415C0D701C6018B +:1033D000B695A7959795879542D5B6DE22E0C20EA1 +:1033E000D11CE11CF11CC0929A01D0929B01E09289 +:1033F0009C01F0929D0181E0681A7108C2CF409053 +:103400009A0150909B0160909C0170909D01063440 +:1034100039F4F20110935700E89507B600FCFDCF90 +:10342000FC82EB82912CA12CEB81FC81EF2B09F427 +:1034300050C0063431F5AA2001F1C0909A01D09015 +:103440009B01E0909C01F0909D0167DE292D30E00A +:10345000382BF6010901B0925700E8951124F2E0EB +:10346000CF0ED11CE11CF11CC0929A01D0929B019D +:10347000E0929C01F0929D0102C04FDE982EAB2499 +:1034800022C04BDE682F80919A0190919B01A09100 +:103490009C01B0919D01B695A79597958795E7D426 +:1034A00080919A0190919B01A0919C01B0919D0106 +:1034B0000296A11DB11D80939A0190939B01A09348 +:1034C0009C01B0939D018B819C8101979C838B8390 +:1034D000ABCF063409F0CFCEF20180925700E895C9 +:1034E00007B600FCFDCFC7CE9B3109F03FCF04C02B +:1034F00080919E01811155C08FB7F8949091A301DE +:103500008FBF80919E01811106C0992309F449C0A3 +:103510005D981093A001F92EFF20B1F00091A20157 +:10352000E02FF0E0EC55FE4F80810EDE0F5F0F774D +:103530000093A2019FB7F8948091A30181508093DA +:10354000A3019FBFFA94E8CF1093E9009091E8009F +:103550008091E8008E778093E80095FD1DC08091F2 +:10356000E80080FD10C08EB38111F9CF80919E01DB +:103570008823B9F0F4E0F093E9008091E8008B77BC +:103580008093E8000EC08091E8008E778093E80079 +:1035900003C08EB3882351F38091E80080FFF9CFF8 +:1035A000E5CF22D4A89B15C0A89A8091A0018823BA +:1035B00031F081508093A001811101C05D9A80910A +:1035C0009F01882331F0815080939F01811101C0B8 +:1035D0005C9A809100018111F7CD8FE99FE00197FE +:1035E000F1F700C000008091E00081608093E0006E +:1035F0009CE088E10FB6F894A895809360000FBE18 +:1036000090936000FFCF42E061EC82E0E2D142E3C0 +:1036100061E883E0DED142E360E884E0DAC1CF9381 +:1036200080912602982F9F77913209F0C1C0909126 +:103630002702913299F4813A09F0BAC08091E800EA +:10364000877F8093E80067E070E081E091E065D1DA +:103650008091E8008B778093E800AAC0903209F04F +:1036600092C0813209F0A4C08091E800877F8093E6 +:10367000E800E1E0F1E087E0882309F19EB39923B7 +:1036800011F1953001F19091E80093FD1CC09091EB +:10369000E80092FFF1CF9091F200992329F09091E8 +:1036A000F10091938150B9F79091E8009B77909346 +:1036B000E800E2CF8EB3882331F0853021F080918D +:1036C000E80080FFF7CF8091E8008E778093E800D4 +:1036D00020910101309102014091030150910401B8 +:1036E000211581EE38074105510521F481E08093D1 +:1036F0009E0102C010929E011092A3011092A2019D +:103700001092A10180910601813021F0823021F4D4 +:10371000C0E203C0C0E301C0C0E080910501823077 +:1037200009F4C86080910701873031F0883031F0AA +:10373000863029F4C26003C0C46001C0C6605B9AD1 +:103740001092C9001092C8001092CA00DA01C90193 +:10375000B695A79597958795BC01CD0160587B4795 +:10376000814E9F4F5AD3215031093093CD00209381 +:10377000CC00C093CA0082E08093C80088E980939F +:10378000C9005B9815C0923299F4813289F4809116 +:10379000E800877F8093E80030D180919E018111FD +:1037A00006C08091280280FF02C05F9801C05F9A26 +:1037B000CF9108951F920F920FB60F9211248F93FD +:1037C0009F93EF93FF939091CE0080919E01811182 +:1037D00017C08EB38430A1F48091A30187FD10C07F +:1037E0008091A101E82FF0E0EC55FE4F90838F5FB0 +:1037F0008F778093A1018091A3018F5F8093A301B4 +:10380000FF91EF919F918F910F900FBE0F901F909E +:103810001895292F30E02230310559F02330310539 +:1038200069F021303105F9F482E190E020E831E0DF +:103830001EC08EE390E022E431E019C0882349F0F5 +:10384000813061F0823079F480E290E028E031E06C +:103850000EC084E090E02EE331E009C082E190E008 +:103860002AE231E004C080E090E020E030E0FA019C +:1038700031832083089507B600FCFDCFF999FECF70 +:1038800023E0FB0120935700E89507B600FCFDCF2D +:1038900081E180935700E895089507B600FCFDCFBD +:1038A000F999FECF25E0FB0120935700E89507B674 +:1038B00000FCFDCF81E180935700E895089507B69D +:1038C00000FCFDCFF999FECF21E0FB010A01209316 +:1038D0005700E8951124089521E2FC012093570038 +:1038E0008491089529E0FC01209357008491089564 +:1038F000E1E0F0E089E0809357008491089507B6F5 +:1039000000FCFDCFF999FECF809599E0E1E0F0E071 +:10391000082E90935700E895089520912C0230913D +:103920002D022617370748F06115710539F42091EB +:10393000E8002E772093E80001C0B90140E061154E +:10394000710579F12EB32223F1F12530F1F12091A7 +:10395000E80023FD3CC02091E80022FD2EC020910C +:10396000E80020FFECCF2091F20030E0FC01CF0115 +:103970006115710559F02830310540F4819180932B +:10398000F100615071092F5F3F4FF1CF41E02830C6 +:10399000310509F040E02091E8002E772093E800FF +:1039A000CECF4111CFCF09C08EB3882361F08530CF +:1039B00061F08091E80083FD0AC08091E80082FFF9 +:1039C000F3CF80E0089582E0089583E0089581E0D8 +:1039D00008958F708093E900EBEEF0E080818160C4 +:1039E0008083EDEEF0E010826093EC0040838091E4 +:1039F000EE00881F8827881F08958091260287FF80 +:103A00000FC08091E80082FD04C08EB38111F9CF10 +:103A100010C08091E8008B770AC08EB3882349F0EC +:103A20008091E80080FFF9CF8091E8008E77809345 +:103A3000E80008953CD03ED08091D8008F778093E5 +:103A4000D8008091D80080688093D8008091D800F9 +:103A50008F7D8093D80084E089BD86E089BD09B45C +:103A600000FEFDCF1EBA1092240242E060E080E02A +:103A7000B0DF8091E1008E7F8093E1008091E200D1 +:103A800081608093E2008091E20088608093E20090 +:103A90008091E0008E7F8093E0000895E3E6F0E0FF +:103AA00080818E7F808381E080932502C3CF109236 +:103AB000E20008951092E10008951F920F920FB650 +:103AC0000F9211242F933F934F935F936F937F93A4 +:103AD0008F939F93AF93BF93EF93FF938091E100F8 +:103AE00080FF16C08091E20080FF12C08091E2004A +:103AF0008E7F8093E2008091E20080618093E200FB +:103B00008091D80080628093D80019BC1EBA6BD116 +:103B10008091E10084FF2EC08091E20084FF2AC0E2 +:103B200084E089BD86E089BD09B400FEFDCF8091A7 +:103B3000D8008F7D8093D8008091E1008F7E8093A4 +:103B4000E1008091E2008F7E8093E2008091E200AC +:103B500081608093E20080912402882311F084E048 +:103B600007C08091E30087FD02C081E001C083E0CF +:103B70008EBB39D18091E10083FF21C08091E200AA +:103B800083FF1DC08091E100877F8093E10082E088 +:103B90008EBB109224028091E1008E7F8093E10021 +:103BA0008091E2008E7F8093E2008091E20080614C +:103BB0008093E20042E060E080E00BDF14D1FF91EF +:103BC000EF91BF91AF919F918F917F916F915F9195 +:103BD0004F913F912F910F900FBE0F901F9018950E +:103BE0001F93CF93DF9300D0CDB7DEB7E6E2F2E0CC +:103BF00088E08E0F9091F10091938E13FBCF0FDD33 +:103C00008091E80083FFDBC080912602909127021B +:103C1000953009F466C030F4913059F168F0933072 +:103C200041F1CDC0983009F49DC0993009F4ACC081 +:103C3000963009F0C4C076C0803881F0823809F02F +:103C4000BEC080912A028F708093E9008091EB00C2 +:103C500085FB882780F91092E90001C080E09091EF +:103C6000E800977F9093E8008093F1001092F100B4 +:103C700084C0282F2D7F09F0A2C0823009F09FC098 +:103C800080912802811127C080912A028F7009F447 +:103C900096C08093E9002091EB0020FF1CC0933078 +:103CA00021F48091EB00806214C09091EB00906150 +:103CB0009093EB0021E030E0A90102C0440F551FB2 +:103CC0008A95E2F74093EA001092EA008091EB00B7 +:103CD00088608093EB001092E9008091E800877F74 +:103CE0004FC081116CC0109128021F778091E300B2 +:103CF0008078812B8093E3008091E800877F809318 +:103D0000E8007BDE8091E80080FFFCCF8091E3003B +:103D100080688093E300111102C082E001C083E05B +:103D20008EBB4DC08058823008F049C0AE014F5F55 +:103D30005F4F60912A02809128029091290269DDEB +:103D4000BC01009709F43BC09091E800977F9093E5 +:103D5000E80089819A81E1DD8091E8008B7780938A +:103D6000E8002DC0803859F58091E800877F809366 +:103D7000E800809124028093F1008091E8008E7722 +:103D80008093E8003ADE1BC0811119C0909128028F +:103D90009230A8F48091E800877F8093E8009093A8 +:103DA00024022BDE80912402811106C08091E30061 +:103DB00087FD02C081E001C084E08EBB24DC8091DD +:103DC000E80083FF0AC08091E800877F8093E800C5 +:103DD0008091EB0080628093EB000F900F90DF9159 +:103DE000CF911F9108950895CF938EB3882399F0B2 +:103DF000C091E900CF709091EC00892F817090FD07 +:103E000080E8C82B1092E9008091E80083FDE8DE8D +:103E1000CF70C093E900CF910895A1E21A2EAA1B9A +:103E2000BB1BFD010DC0AA1FBB1FEE1FFF1FA2176A +:103E3000B307E407F50720F0A21BB30BE40BF50B67 +:103E4000661F771F881F991F1A9469F760957095F0 +:103E5000809590959B01AC01BD01CF010895F99922 +:103E6000FECF92BD81BDF89A992780B50895262F7F +:103E7000F999FECF1FBA92BD81BD20BD0FB6F8944F +:0E3E8000FA9AF99A0FBE01960895F894FFCFB2 +:103E8E000100000000000008200348006F006F00D2 +:103E9E0064004C006F006100640065007200320027 +:103EAE00200055006E006F00000012034E006900E6 +:103EBE0063006F0048006F006F0064000000040391 +:103ECE00090409023E0002010080320904000001CB +:103EDE00020201000524001001042402020524063A +:103EEE000001070582030800FF09040100020A0011 +:103EFE000000070504024000050705830240000587 +:103F0E0012011001020000084123430004020102C5 +:0A3F1E000001484C322E302E340012 +:103FA0006ACC7BCC8CCC98CC9DCCA2CCA8CC0895F0 +:083FB000089508950895089595 +:103FE000DFCFDFCFDFCFDFCFDFCFDFCFDFCFDFCF61 +:083FF000DFCFDFCFDFCFDFCF11 +:083FF8000030000000DFFBDCDB +:0400000300003000C9 +:00000001FF diff --git a/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Uno_32u2.hex b/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Uno_32u2.hex new file mode 100644 index 0000000..105c60d --- /dev/null +++ b/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Uno_32u2.hex @@ -0,0 +1,250 @@ +:1070000039C0000083C0000081C000007FC00000C4 +:107010007DC000007BC0000079C0000077C0000088 +:1070200075C0000073C0000071C0000046C50000BC +:107030006DC000006BC0000069C0000067C00000A8 +:1070400065C0000063C0000061C000005FC00000B8 +:107050005DC000005BC0000059C00000ABC3000071 +:1070600055C0000053C0000051C000004FC00000D8 +:107070004DC0000011241FBECFEFD4E0DEBFCDBF56 +:10708000909180021092800284B714BE28E10FB65E +:10709000F89420936000109260000FBEE0E0F0E0F2 +:1070A000259134912F3F3F4FE1F081FF12C0973778 +:1070B000C1F087E7809380028FEF9EE924E2815040 +:1070C00090402040E1F700C00000109280021FD0E5 +:1070D00008C080FF02C01BD004C083FF02C09737E6 +:1070E000D1F711E0A0E0B1E0EEE8FEE702C00590C4 +:1070F0000D92AA39B107D9F712E0AAE9B1E001C0AF +:107100001D92AE32B107E1F736D0BFC679CF8BB151 +:1071100080638BB9E0E0F0E0099484E08093E900BB +:107120008091E80085FD0DC08091E8008B77809309 +:10713000E8008091E80082FDF3CF8EB38111F9CF92 +:1071400002C08091F100089593E09093E90090913E +:10715000E80095FF03C08093F10008959091E80046 +:107160009E779093E8009091E80090FDF4CF9EB355 +:107170009111F9CF0895CF93DF9300D000D0CDB710 +:10718000DEB790E080E80FB6F894809361009093AA +:1071900061000FBE81E085BF82E085BF7FD484E0BF +:1071A00085BD8AB1886B8AB98BB1846B8BB97894B1 +:1071B00013E0BB24B394E5E08E2E212C312C82E920 +:1071C00091E027E0280F298384E08093E9008091F3 +:1071D000E80082FF8DC1A1DF982F80919E0181116F +:1071E00013C08091C80085FFFCCF9093CE008091A2 +:1071F000F200811105C08091E8008B778093E80050 +:107200005C9810939F0178C1953419F41092000195 +:1072100032C088E8890F823010F0943511F47DDF98 +:107220002AC0903541F19C3431F1943721F484E443 +:107230008BDF80E003C0913619F489E585DF5CC1FE +:107240009134D9F46ADF082F68DF90E0880F991F26 +:10725000202F30E0322F2227330F822B932BAA27A7 +:1072600097FDA095BA2F80939A0190939B01A093CC +:107270009C01B0939D018DE0E1CF903711F483E53F +:10728000DDCF933561F452E9E52E51E0F52EF7019B +:1072900081917F0159DF29812E11F9CF2DC19635BA +:1072A00021F481E351DF80E3C9CF933731F48AE8D9 +:1072B0004BDF85E949DF8EE1C1CF9536A9F4E0E0E7 +:1072C000F0E010935700E89507B600FCFDCF8092E0 +:1072D0005700E89507B600FCFDCFE058FF4FE115D9 +:1072E00080E7F80771F7C7CF9C3651F416DF809519 +:1072F00099E0E1E0F0E0082E90935700E895BBCFCD +:10730000923721F489E0E1E0F0E010C0963419F4FE +:1073100089E0F1010BC09E3421F489E0E3E0F0E064 +:1073200005C0913539F489E0E2E0F0E08093570040 +:10733000849184CF923631F489E506DF80E004DF62 +:1073400080E87CCF923419F0973609F0CDC09A834B +:10735000E4DEE82EF12CFE2CEE24DFDEE82ADDDE72 +:10736000082F8BEB800F9A81823010F08FE366CF6D +:10737000973609F044C081E180935700E8953701C2 +:10738000A12C6114710409F4B7C0C0909A01D09087 +:107390009B01E0909C01F0909D010634B9F4EA2D28 +:1073A000F0E0EC29FD298491CFDEAA2069F0F2E01B +:1073B000CF0ED11CE11CF11CC0929A01D0929B010E +:1073C000E0929C01F0929D01AB2415C0D701C6014B +:1073D000B695A7959795879542D5B6DE22E0C20E61 +:1073E000D11CE11CF11CC0929A01D0929B01E09249 +:1073F0009C01F0929D0181E0681A7108C2CF409013 +:107400009A0150909B0160909C0170909D01063400 +:1074100039F4F20110935700E89507B600FCFDCF50 +:10742000FC82EB82912CA12CEB81FC81EF2B09F4E7 +:1074300050C0063431F5AA2001F1C0909A01D090D5 +:107440009B01E0909C01F0909D0167DE292D30E0CA +:10745000382BF6010901B0925700E8951124F2E0AB +:10746000CF0ED11CE11CF11CC0929A01D0929B015D +:10747000E0929C01F0929D0102C04FDE982EAB2459 +:1074800022C04BDE682F80919A0190919B01A091C0 +:107490009C01B0919D01B695A79597958795E7D4E6 +:1074A00080919A0190919B01A0919C01B0919D01C6 +:1074B0000296A11DB11D80939A0190939B01A09308 +:1074C0009C01B0939D018B819C8101979C838B8350 +:1074D000ABCF063409F0CFCEF20180925700E89589 +:1074E00007B600FCFDCFC7CE9B3109F03FCF04C0EB +:1074F00080919E01811155C08FB7F8949091A3019E +:107500008FBF80919E01811106C0992309F449C063 +:107510005D981093A001F92EFF20B1F00091A20117 +:10752000E02FF0E0EC55FE4F80810EDE0F5F0F770D +:107530000093A2019FB7F8948091A301815080939A +:10754000A3019FBFFA94E8CF1093E9009091E8005F +:107550008091E8008E778093E80095FD1DC08091B2 +:10756000E80080FD10C08EB38111F9CF80919E019B +:107570008823B9F0F4E0F093E9008091E8008B777C +:107580008093E8000EC08091E8008E778093E80039 +:1075900003C08EB3882351F38091E80080FFF9CFB8 +:1075A000E5CF22D4A89B15C0A89A8091A00188237A +:1075B00031F081508093A001811101C05D9A8091CA +:1075C0009F01882331F0815080939F01811101C078 +:1075D0005C9A809100018111F7CD8FE99FE00197BE +:1075E000F1F700C000008091E00081608093E0002E +:1075F0009CE088E10FB6F894A895809360000FBED8 +:1076000090936000FFCF42E061EC82E0E2D142E380 +:1076100061E883E0DED142E360E884E0DAC1CF9341 +:1076200080912602982F9F77913209F0C1C09091E6 +:107630002702913299F4813A09F0BAC08091E800AA +:10764000877F8093E80067E070E081E091E065D19A +:107650008091E8008B778093E800AAC0903209F00F +:1076600092C0813209F0A4C08091E800877F8093A6 +:10767000E800E1E0F1E087E0882309F19EB3992377 +:1076800011F1953001F19091E80093FD1CC09091AB +:10769000E80092FFF1CF9091F200992329F09091A8 +:1076A000F10091938150B9F79091E8009B77909306 +:1076B000E800E2CF8EB3882331F0853021F080914D +:1076C000E80080FFF7CF8091E8008E778093E80094 +:1076D0002091010130910201409103015091040178 +:1076E000211581EE38074105510521F481E0809391 +:1076F0009E0102C010929E011092A3011092A2015D +:107700001092A10180910601813021F0823021F494 +:10771000C0E203C0C0E301C0C0E080910501823037 +:1077200009F4C86080910701873031F0883031F06A +:10773000863029F4C26003C0C46001C0C6605B9A91 +:107740001092C9001092C8001092CA00DA01C90153 +:10775000B695A79597958795BC01CD0160587B4755 +:10776000814E9F4F5AD3215031093093CD00209341 +:10777000CC00C093CA0082E08093C80088E980935F +:10778000C9005B9815C0923299F4813289F48091D6 +:10779000E800877F8093E80030D180919E018111BD +:1077A00006C08091280280FF02C05F9801C05F9AE6 +:1077B000CF9108951F920F920FB60F9211248F93BD +:1077C0009F93EF93FF939091CE0080919E01811142 +:1077D00017C08EB38430A1F48091A30187FD10C03F +:1077E0008091A101E82FF0E0EC55FE4F90838F5F70 +:1077F0008F778093A1018091A3018F5F8093A30174 +:10780000FF91EF919F918F910F900FBE0F901F905E +:107810001895292F30E02230310559F023303105F9 +:1078200069F021303105F9F482E190E020E831E09F +:107830001EC08EE390E022E431E019C0882349F0B5 +:10784000813061F0823079F480E290E028E031E02C +:107850000EC084E090E02EE331E009C082E190E0C8 +:107860002AE231E004C080E090E020E030E0FA015C +:1078700031832083089507B600FCFDCFF999FECF30 +:1078800023E0FB0120935700E89507B600FCFDCFED +:1078900081E180935700E895089507B600FCFDCF7D +:1078A000F999FECF25E0FB0120935700E89507B634 +:1078B00000FCFDCF81E180935700E895089507B65D +:1078C00000FCFDCFF999FECF21E0FB010A012093D6 +:1078D0005700E8951124089521E2FC0120935700F8 +:1078E0008491089529E0FC01209357008491089524 +:1078F000E1E0F0E089E0809357008491089507B6B5 +:1079000000FCFDCFF999FECF809599E0E1E0F0E031 +:10791000082E90935700E895089520912C023091FD +:107920002D022617370748F06115710539F42091AB +:10793000E8002E772093E80001C0B90140E061150E +:10794000710579F12EB32223F1F12530F1F1209167 +:10795000E80023FD3CC02091E80022FD2EC02091CC +:10796000E80020FFECCF2091F20030E0FC01CF01D5 +:107970006115710559F02830310540F481918093EB +:10798000F100615071092F5F3F4FF1CF41E0283086 +:10799000310509F040E02091E8002E772093E800BF +:1079A000CECF4111CFCF09C08EB3882361F085308F +:1079B00061F08091E80083FD0AC08091E80082FFB9 +:1079C000F3CF80E0089582E0089583E0089581E098 +:1079D00008958F708093E900EBEEF0E08081816084 +:1079E0008083EDEEF0E010826093EC0040838091A4 +:1079F000EE00881F8827881F08958091260287FF40 +:107A00000FC08091E80082FD04C08EB38111F9CFD0 +:107A100010C08091E8008B770AC08EB3882349F0AC +:107A20008091E80080FFF9CF8091E8008E77809305 +:107A3000E80008953CD03ED08091D8008F778093A5 +:107A4000D8008091D80080688093D8008091D800B9 +:107A50008F7D8093D80084E089BD86E089BD09B41C +:107A600000FEFDCF1EBA1092240242E060E080E0EA +:107A7000B0DF8091E1008E7F8093E1008091E20091 +:107A800081608093E2008091E20088608093E20050 +:107A90008091E0008E7F8093E0000895E3E6F0E0BF +:107AA00080818E7F808381E080932502C3CF1092F6 +:107AB000E20008951092E10008951F920F920FB610 +:107AC0000F9211242F933F934F935F936F937F9364 +:107AD0008F939F93AF93BF93EF93FF938091E100B8 +:107AE00080FF16C08091E20080FF12C08091E2000A +:107AF0008E7F8093E2008091E20080618093E200BB +:107B00008091D80080628093D80019BC1EBA6BD1D6 +:107B10008091E10084FF2EC08091E20084FF2AC0A2 +:107B200084E089BD86E089BD09B400FEFDCF809167 +:107B3000D8008F7D8093D8008091E1008F7E809364 +:107B4000E1008091E2008F7E8093E2008091E2006C +:107B500081608093E20080912402882311F084E008 +:107B600007C08091E30087FD02C081E001C083E08F +:107B70008EBB39D18091E10083FF21C08091E2006A +:107B800083FF1DC08091E100877F8093E10082E048 +:107B90008EBB109224028091E1008E7F8093E100E1 +:107BA0008091E2008E7F8093E2008091E20080610C +:107BB0008093E20042E060E080E00BDF14D1FF91AF +:107BC000EF91BF91AF919F918F917F916F915F9155 +:107BD0004F913F912F910F900FBE0F901F901895CE +:107BE0001F93CF93DF9300D0CDB7DEB7E6E2F2E08C +:107BF00088E08E0F9091F10091938E13FBCF0FDDF3 +:107C00008091E80083FFDBC08091260290912702DB +:107C1000953009F466C030F4913059F168F0933032 +:107C200041F1CDC0983009F49DC0993009F4ACC041 +:107C3000963009F0C4C076C0803881F0823809F0EF +:107C4000BEC080912A028F708093E9008091EB0082 +:107C500085FB882780F91092E90001C080E09091AF +:107C6000E800977F9093E8008093F1001092F10074 +:107C700084C0282F2D7F09F0A2C0823009F09FC058 +:107C800080912802811127C080912A028F7009F407 +:107C900096C08093E9002091EB0020FF1CC0933038 +:107CA00021F48091EB00806214C09091EB00906110 +:107CB0009093EB0021E030E0A90102C0440F551F72 +:107CC0008A95E2F74093EA001092EA008091EB0077 +:107CD00088608093EB001092E9008091E800877F34 +:107CE0004FC081116CC0109128021F778091E30072 +:107CF0008078812B8093E3008091E800877F8093D8 +:107D0000E8007BDE8091E80080FFFCCF8091E300FB +:107D100080688093E300111102C082E001C083E01B +:107D20008EBB4DC08058823008F049C0AE014F5F15 +:107D30005F4F60912A02809128029091290269DDAB +:107D4000BC01009709F43BC09091E800977F9093A5 +:107D5000E80089819A81E1DD8091E8008B7780934A +:107D6000E8002DC0803859F58091E800877F809326 +:107D7000E800809124028093F1008091E8008E77E2 +:107D80008093E8003ADE1BC0811119C0909128024F +:107D90009230A8F48091E800877F8093E800909368 +:107DA00024022BDE80912402811106C08091E30021 +:107DB00087FD02C081E001C084E08EBB24DC80919D +:107DC000E80083FF0AC08091E800877F8093E80085 +:107DD0008091EB0080628093EB000F900F90DF9119 +:107DE000CF911F9108950895CF938EB3882399F072 +:107DF000C091E900CF709091EC00892F817090FDC7 +:107E000080E8C82B1092E9008091E80083FDE8DE4D +:107E1000CF70C093E900CF910895A1E21A2EAA1B5A +:107E2000BB1BFD010DC0AA1FBB1FEE1FFF1FA2172A +:107E3000B307E407F50720F0A21BB30BE40BF50B27 +:107E4000661F771F881F991F1A9469F760957095B0 +:107E5000809590959B01AC01BD01CF010895F999E2 +:107E6000FECF92BD81BDF89A992780B50895262F3F +:107E7000F999FECF1FBA92BD81BD20BD0FB6F8940F +:0E7E8000FA9AF99A0FBE01960895F894FFCF72 +:107E8E000100000000000008200348006F006F0092 +:107E9E0064004C006F0061006400650072003200E7 +:107EAE00200055006E006F00000012034E006900A6 +:107EBE0063006F0048006F006F0064000000040351 +:107ECE00090409023E00020100803209040000018B +:107EDE0002020100052400100104240202052406FA +:107EEE000001070582030800FF09040100020A00D1 +:107EFE000000070504024000050705830240000547 +:107F0E001201100102000008412343000402010285 +:0A7F1E000001484C322E302E3400D2 +:107FA0006ACC7BCC8CCC98CC9DCCA2CCA8CC0895B0 +:087FB000089508950895089555 +:107FE000DFCFDFCFDFCFDFCFDFCFDFCFDFCFDFCF21 +:087FF000DFCFDFCFDFCFDFCFD1 +:087FF8000070000000DFFBDC5B +:040000030000700089 +:00000001FF diff --git a/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Uno_8u2.hex b/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Uno_8u2.hex new file mode 100644 index 0000000..8887478 --- /dev/null +++ b/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Uno_8u2.hex @@ -0,0 +1,250 @@ +:1010000039C0000083C0000081C000007FC0000024 +:101010007DC000007BC0000079C0000077C00000E8 +:1010200075C0000073C0000071C0000046C500001C +:101030006DC000006BC0000069C0000067C0000008 +:1010400065C0000063C0000061C000005FC0000018 +:101050005DC000005BC0000059C00000ABC30000D1 +:1010600055C0000053C0000051C000004FC0000038 +:101070004DC0000011241FBECFEFD2E0DEBFCDBFB8 +:10108000909180021092800284B714BE28E10FB6BE +:10109000F89420936000109260000FBEE0E0F0E052 +:1010A000259134912F3F3F4FE1F081FF12C09737D8 +:1010B000C1F087E7809380028FEF9EE924E28150A0 +:1010C00090402040E1F700C00000109280021FD045 +:1010D00008C080FF02C01BD004C083FF02C0973746 +:1010E000D1F711E0A0E0B1E0EEE8FEE102C005902A +:1010F0000D92AA39B107D9F712E0AAE9B1E001C00F +:101100001D92AE32B107E1F736D0BFC679CF8BB1B1 +:1011100080638BB9E0E0F0E0099484E08093E9001B +:101120008091E80085FD0DC08091E8008B77809369 +:10113000E8008091E80082FDF3CF8EB38111F9CFF2 +:1011400002C08091F100089593E09093E90090919E +:10115000E80095FF03C08093F10008959091E800A6 +:101160009E779093E8009091E80090FDF4CF9EB3B5 +:101170009111F9CF0895CF93DF9300D000D0CDB770 +:10118000DEB790E080E80FB6F8948093610090930A +:1011900061000FBE81E085BF82E085BF7FD484E01F +:1011A00085BD8AB1886B8AB98BB1846B8BB9789411 +:1011B00013E0BB24B394E5E08E2E212C312C82E980 +:1011C00091E027E0280F298384E08093E900809153 +:1011D000E80082FF8DC1A1DF982F80919E018111CF +:1011E00013C08091C80085FFFCCF9093CE00809102 +:1011F000F200811105C08091E8008B778093E800B0 +:101200005C9810939F0178C1953419F410920001F5 +:1012100032C088E8890F823010F0943511F47DDFF8 +:101220002AC0903541F19C3431F1943721F484E4A3 +:101230008BDF80E003C0913619F489E585DF5CC15E +:101240009134D9F46ADF082F68DF90E0880F991F86 +:10125000202F30E0322F2227330F822B932BAA2707 +:1012600097FDA095BA2F80939A0190939B01A0932C +:101270009C01B0939D018DE0E1CF903711F483E59F +:10128000DDCF933561F452E9E52E51E0F52EF701FB +:1012900081917F0159DF29812E11F9CF2DC196351A +:1012A00021F481E351DF80E3C9CF933731F489E83A +:1012B0004BDF83E949DF8EE1C1CF9536A9F4E0E049 +:1012C000F0E010935700E89507B600FCFDCF809240 +:1012D0005700E89507B600FCFDCFE058FF4FE11539 +:1012E00080E1F80771F7C7CF9C3651F416DF80957F +:1012F00099E0E1E0F0E0082E90935700E895BBCF2D +:10130000923721F489E0E1E0F0E010C0963419F45E +:1013100089E0F1010BC09E3421F489E0E3E0F0E0C4 +:1013200005C0913539F489E0E2E0F0E080935700A0 +:10133000849184CF923631F489E506DF80E004DFC2 +:1013400080E87CCF923419F0973609F0CDC09A83AB +:10135000E4DEE82EF12CFE2CEE24DFDEE82ADDDED2 +:10136000082F8BEB800F9A81823010F08FE366CFCD +:10137000973609F044C081E180935700E895370122 +:10138000A12C6114710409F4B7C0C0909A01D090E7 +:101390009B01E0909C01F0909D010634B9F4EA2D88 +:1013A000F0E0EC29FD298491CFDEAA2069F0F2E07B +:1013B000CF0ED11CE11CF11CC0929A01D0929B016E +:1013C000E0929C01F0929D01AB2415C0D701C601AB +:1013D000B695A7959795879542D5B6DE22E0C20EC1 +:1013E000D11CE11CF11CC0929A01D0929B01E092A9 +:1013F0009C01F0929D0181E0681A7108C2CF409073 +:101400009A0150909B0160909C0170909D01063460 +:1014100039F4F20110935700E89507B600FCFDCFB0 +:10142000FC82EB82912CA12CEB81FC81EF2B09F447 +:1014300050C0063431F5AA2001F1C0909A01D09035 +:101440009B01E0909C01F0909D0167DE292D30E02A +:10145000382BF6010901B0925700E8951124F2E00B +:10146000CF0ED11CE11CF11CC0929A01D0929B01BD +:10147000E0929C01F0929D0102C04FDE982EAB24B9 +:1014800022C04BDE682F80919A0190919B01A09120 +:101490009C01B0919D01B695A79597958795E7D446 +:1014A00080919A0190919B01A0919C01B0919D0126 +:1014B0000296A11DB11D80939A0190939B01A09368 +:1014C0009C01B0939D018B819C8101979C838B83B0 +:1014D000ABCF063409F0CFCEF20180925700E895E9 +:1014E00007B600FCFDCFC7CE9B3109F03FCF04C04B +:1014F00080919E01811155C08FB7F8949091A301FE +:101500008FBF80919E01811106C0992309F449C0C3 +:101510005D981093A001F92EFF20B1F00091A20177 +:10152000E02FF0E0EC55FE4F80810EDE0F5F0F776D +:101530000093A2019FB7F8948091A30181508093FA +:10154000A3019FBFFA94E8CF1093E9009091E800BF +:101550008091E8008E778093E80095FD1DC0809112 +:10156000E80080FD10C08EB38111F9CF80919E01FB +:101570008823B9F0F4E0F093E9008091E8008B77DC +:101580008093E8000EC08091E8008E778093E80099 +:1015900003C08EB3882351F38091E80080FFF9CF18 +:1015A000E5CF22D4A89B15C0A89A8091A0018823DA +:1015B00031F081508093A001811101C05D9A80912A +:1015C0009F01882331F0815080939F01811101C0D8 +:1015D0005C9A809100018111F7CD8FE99FE001971E +:1015E000F1F700C000008091E00081608093E0008E +:1015F0009CE088E10FB6F894A895809360000FBE38 +:1016000090936000FFCF42E061EC82E0E2D142E3E0 +:1016100061E883E0DED142E360E884E0DAC1CF93A1 +:1016200080912602982F9F77913209F0C1C0909146 +:101630002702913299F4813A09F0BAC08091E8000A +:10164000877F8093E80067E070E081E091E065D1FA +:101650008091E8008B778093E800AAC0903209F06F +:1016600092C0813209F0A4C08091E800877F809306 +:10167000E800E1E0F1E087E0882309F19EB39923D7 +:1016800011F1953001F19091E80093FD1CC090910B +:10169000E80092FFF1CF9091F200992329F0909108 +:1016A000F10091938150B9F79091E8009B77909366 +:1016B000E800E2CF8EB3882331F0853021F08091AD +:1016C000E80080FFF7CF8091E8008E778093E800F4 +:1016D00020910101309102014091030150910401D8 +:1016E000211581EE38074105510521F481E08093F1 +:1016F0009E0102C010929E011092A3011092A201BD +:101700001092A10180910601813021F0823021F4F4 +:10171000C0E203C0C0E301C0C0E080910501823097 +:1017200009F4C86080910701873031F0883031F0CA +:10173000863029F4C26003C0C46001C0C6605B9AF1 +:101740001092C9001092C8001092CA00DA01C901B3 +:10175000B695A79597958795BC01CD0160587B47B5 +:10176000814E9F4F5AD3215031093093CD002093A1 +:10177000CC00C093CA0082E08093C80088E98093BF +:10178000C9005B9815C0923299F4813289F4809136 +:10179000E800877F8093E80030D180919E0181111D +:1017A00006C08091280280FF02C05F9801C05F9A46 +:1017B000CF9108951F920F920FB60F9211248F931D +:1017C0009F93EF93FF939091CE0080919E018111A2 +:1017D00017C08EB38430A1F48091A30187FD10C09F +:1017E0008091A101E82FF0E0EC55FE4F90838F5FD0 +:1017F0008F778093A1018091A3018F5F8093A301D4 +:10180000FF91EF919F918F910F900FBE0F901F90BE +:101810001895292F30E02230310559F02330310559 +:1018200069F021303105F9F482E190E020E831E0FF +:101830001EC08EE390E022E431E019C0882349F015 +:10184000813061F0823079F480E290E028E031E08C +:101850000EC084E090E02EE331E009C082E190E028 +:101860002AE231E004C080E090E020E030E0FA01BC +:1018700031832083089507B600FCFDCFF999FECF90 +:1018800023E0FB0120935700E89507B600FCFDCF4D +:1018900081E180935700E895089507B600FCFDCFDD +:1018A000F999FECF25E0FB0120935700E89507B694 +:1018B00000FCFDCF81E180935700E895089507B6BD +:1018C00000FCFDCFF999FECF21E0FB010A01209336 +:1018D0005700E8951124089521E2FC012093570058 +:1018E0008491089529E0FC01209357008491089584 +:1018F000E1E0F0E089E0809357008491089507B615 +:1019000000FCFDCFF999FECF809599E0E1E0F0E091 +:10191000082E90935700E895089520912C0230915D +:101920002D022617370748F06115710539F420910B +:10193000E8002E772093E80001C0B90140E061156E +:10194000710579F12EB32223F1F12530F1F12091C7 +:10195000E80023FD3CC02091E80022FD2EC020912C +:10196000E80020FFECCF2091F20030E0FC01CF0135 +:101970006115710559F02830310540F4819180934B +:10198000F100615071092F5F3F4FF1CF41E02830E6 +:10199000310509F040E02091E8002E772093E8001F +:1019A000CECF4111CFCF09C08EB3882361F08530EF +:1019B00061F08091E80083FD0AC08091E80082FF19 +:1019C000F3CF80E0089582E0089583E0089581E0F8 +:1019D00008958F708093E900EBEEF0E080818160E4 +:1019E0008083EDEEF0E010826093EC004083809104 +:1019F000EE00881F8827881F08958091260287FFA0 +:101A00000FC08091E80082FD04C08EB38111F9CF30 +:101A100010C08091E8008B770AC08EB3882349F00C +:101A20008091E80080FFF9CF8091E8008E77809365 +:101A3000E80008953CD03ED08091D8008F77809305 +:101A4000D8008091D80080688093D8008091D80019 +:101A50008F7D8093D80084E089BD86E089BD09B47C +:101A600000FEFDCF1EBA1092240242E060E080E04A +:101A7000B0DF8091E1008E7F8093E1008091E200F1 +:101A800081608093E2008091E20088608093E200B0 +:101A90008091E0008E7F8093E0000895E3E6F0E01F +:101AA00080818E7F808381E080932502C3CF109256 +:101AB000E20008951092E10008951F920F920FB670 +:101AC0000F9211242F933F934F935F936F937F93C4 +:101AD0008F939F93AF93BF93EF93FF938091E10018 +:101AE00080FF16C08091E20080FF12C08091E2006A +:101AF0008E7F8093E2008091E20080618093E2001B +:101B00008091D80080628093D80019BC1EBA6BD136 +:101B10008091E10084FF2EC08091E20084FF2AC002 +:101B200084E089BD86E089BD09B400FEFDCF8091C7 +:101B3000D8008F7D8093D8008091E1008F7E8093C4 +:101B4000E1008091E2008F7E8093E2008091E200CC +:101B500081608093E20080912402882311F084E068 +:101B600007C08091E30087FD02C081E001C083E0EF +:101B70008EBB39D18091E10083FF21C08091E200CA +:101B800083FF1DC08091E100877F8093E10082E0A8 +:101B90008EBB109224028091E1008E7F8093E10041 +:101BA0008091E2008E7F8093E2008091E20080616C +:101BB0008093E20042E060E080E00BDF14D1FF910F +:101BC000EF91BF91AF919F918F917F916F915F91B5 +:101BD0004F913F912F910F900FBE0F901F9018952E +:101BE0001F93CF93DF9300D0CDB7DEB7E6E2F2E0EC +:101BF00088E08E0F9091F10091938E13FBCF0FDD53 +:101C00008091E80083FFDBC080912602909127023B +:101C1000953009F466C030F4913059F168F0933092 +:101C200041F1CDC0983009F49DC0993009F4ACC0A1 +:101C3000963009F0C4C076C0803881F0823809F04F +:101C4000BEC080912A028F708093E9008091EB00E2 +:101C500085FB882780F91092E90001C080E090910F +:101C6000E800977F9093E8008093F1001092F100D4 +:101C700084C0282F2D7F09F0A2C0823009F09FC0B8 +:101C800080912802811127C080912A028F7009F467 +:101C900096C08093E9002091EB0020FF1CC0933098 +:101CA00021F48091EB00806214C09091EB00906170 +:101CB0009093EB0021E030E0A90102C0440F551FD2 +:101CC0008A95E2F74093EA001092EA008091EB00D7 +:101CD00088608093EB001092E9008091E800877F94 +:101CE0004FC081116CC0109128021F778091E300D2 +:101CF0008078812B8093E3008091E800877F809338 +:101D0000E8007BDE8091E80080FFFCCF8091E3005B +:101D100080688093E300111102C082E001C083E07B +:101D20008EBB4DC08058823008F049C0AE014F5F75 +:101D30005F4F60912A02809128029091290269DD0B +:101D4000BC01009709F43BC09091E800977F909305 +:101D5000E80089819A81E1DD8091E8008B778093AA +:101D6000E8002DC0803859F58091E800877F809386 +:101D7000E800809124028093F1008091E8008E7742 +:101D80008093E8003ADE1BC0811119C090912802AF +:101D90009230A8F48091E800877F8093E8009093C8 +:101DA00024022BDE80912402811106C08091E30081 +:101DB00087FD02C081E001C084E08EBB24DC8091FD +:101DC000E80083FF0AC08091E800877F8093E800E5 +:101DD0008091EB0080628093EB000F900F90DF9179 +:101DE000CF911F9108950895CF938EB3882399F0D2 +:101DF000C091E900CF709091EC00892F817090FD27 +:101E000080E8C82B1092E9008091E80083FDE8DEAD +:101E1000CF70C093E900CF910895A1E21A2EAA1BBA +:101E2000BB1BFD010DC0AA1FBB1FEE1FFF1FA2178A +:101E3000B307E407F50720F0A21BB30BE40BF50B87 +:101E4000661F771F881F991F1A9469F76095709510 +:101E5000809590959B01AC01BD01CF010895F99942 +:101E6000FECF92BD81BDF89A992780B50895262F9F +:101E7000F999FECF1FBA92BD81BD20BD0FB6F8946F +:0E1E8000FA9AF99A0FBE01960895F894FFCFD2 +:101E8E000100000000000008200348006F006F00F2 +:101E9E0064004C006F006100640065007200320047 +:101EAE00200055006E006F00000012034E00690006 +:101EBE0063006F0048006F006F00640000000403B1 +:101ECE00090409023E0002010080320904000001EB +:101EDE00020201000524001001042402020524065A +:101EEE000001070582030800FF09040100020A0031 +:101EFE0000000705040240000507058302400005A7 +:101F0E0012011001020000084123430004020102E5 +:0A1F1E000001484C322E302E340032 +:101FA0006ACC7BCC8CCC98CC9DCCA2CCA8CC089510 +:081FB0000895089508950895B5 +:101FE000DFCFDFCFDFCFDFCFDFCFDFCFDFCFDFCF81 +:081FF000DFCFDFCFDFCFDFCF31 +:081FF8000010000000DFFBDC1B +:0400000300001000E9 +:00000001FF diff --git a/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Uno_at90usb162.hex b/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Uno_at90usb162.hex new file mode 100644 index 0000000..98cc14a --- /dev/null +++ b/avr/bootloaders/HoodLoader2/HoodLoader2_0_4_Uno_at90usb162.hex @@ -0,0 +1,250 @@ +:1030000039C0000083C0000081C000007FC0000004 +:103010007DC000007BC0000079C0000077C00000C8 +:1030200075C0000073C0000071C0000046C50000FC +:103030006DC000006BC0000069C0000067C00000E8 +:1030400065C0000063C0000061C000005FC00000F8 +:103050005DC000005BC0000059C00000ABC30000B1 +:1030600055C0000053C0000051C000004FC0000018 +:103070004DC0000011241FBECFEFD2E0DEBFCDBF98 +:10308000909180021092800284B714BE28E10FB69E +:10309000F89420936000109260000FBEE0E0F0E032 +:1030A000259134912F3F3F4FE1F081FF12C09737B8 +:1030B000C1F087E7809380028FEF9EE924E2815080 +:1030C00090402040E1F700C00000109280021FD025 +:1030D00008C080FF02C01BD004C083FF02C0973726 +:1030E000D1F711E0A0E0B1E0EEE8FEE302C0059008 +:1030F0000D92AA39B107D9F712E0AAE9B1E001C0EF +:103100001D92AE32B107E1F736D0BFC679CF8BB191 +:1031100080638BB9E0E0F0E0099484E08093E900FB +:103120008091E80085FD0DC08091E8008B77809349 +:10313000E8008091E80082FDF3CF8EB38111F9CFD2 +:1031400002C08091F100089593E09093E90090917E +:10315000E80095FF03C08093F10008959091E80086 +:103160009E779093E8009091E80090FDF4CF9EB395 +:103170009111F9CF0895CF93DF9300D000D0CDB750 +:10318000DEB790E080E80FB6F894809361009093EA +:1031900061000FBE81E085BF82E085BF7FD484E0FF +:1031A00085BD8AB1886B8AB98BB1846B8BB97894F1 +:1031B00013E0BB24B394E5E08E2E212C312C82E960 +:1031C00091E027E0280F298384E08093E900809133 +:1031D000E80082FF8DC1A1DF982F80919E018111AF +:1031E00013C08091C80085FFFCCF9093CE008091E2 +:1031F000F200811105C08091E8008B778093E80090 +:103200005C9810939F0178C1953419F410920001D5 +:1032100032C088E8890F823010F0943511F47DDFD8 +:103220002AC0903541F19C3431F1943721F484E483 +:103230008BDF80E003C0913619F489E585DF5CC13E +:103240009134D9F46ADF082F68DF90E0880F991F66 +:10325000202F30E0322F2227330F822B932BAA27E7 +:1032600097FDA095BA2F80939A0190939B01A0930C +:103270009C01B0939D018DE0E1CF903711F483E57F +:10328000DDCF933561F452E9E52E51E0F52EF701DB +:1032900081917F0159DF29812E11F9CF2DC19635FA +:1032A00021F481E351DF80E3C9CF933731F482E821 +:1032B0004BDF84E949DF8EE1C1CF9536A9F4E0E028 +:1032C000F0E010935700E89507B600FCFDCF809220 +:1032D0005700E89507B600FCFDCFE058FF4FE11519 +:1032E00080E3F80771F7C7CF9C3651F416DF80955D +:1032F00099E0E1E0F0E0082E90935700E895BBCF0D +:10330000923721F489E0E1E0F0E010C0963419F43E +:1033100089E0F1010BC09E3421F489E0E3E0F0E0A4 +:1033200005C0913539F489E0E2E0F0E08093570080 +:10333000849184CF923631F489E506DF80E004DFA2 +:1033400080E87CCF923419F0973609F0CDC09A838B +:10335000E4DEE82EF12CFE2CEE24DFDEE82ADDDEB2 +:10336000082F8BEB800F9A81823010F08FE366CFAD +:10337000973609F044C081E180935700E895370102 +:10338000A12C6114710409F4B7C0C0909A01D090C7 +:103390009B01E0909C01F0909D010634B9F4EA2D68 +:1033A000F0E0EC29FD298491CFDEAA2069F0F2E05B +:1033B000CF0ED11CE11CF11CC0929A01D0929B014E +:1033C000E0929C01F0929D01AB2415C0D701C6018B +:1033D000B695A7959795879542D5B6DE22E0C20EA1 +:1033E000D11CE11CF11CC0929A01D0929B01E09289 +:1033F0009C01F0929D0181E0681A7108C2CF409053 +:103400009A0150909B0160909C0170909D01063440 +:1034100039F4F20110935700E89507B600FCFDCF90 +:10342000FC82EB82912CA12CEB81FC81EF2B09F427 +:1034300050C0063431F5AA2001F1C0909A01D09015 +:103440009B01E0909C01F0909D0167DE292D30E00A +:10345000382BF6010901B0925700E8951124F2E0EB +:10346000CF0ED11CE11CF11CC0929A01D0929B019D +:10347000E0929C01F0929D0102C04FDE982EAB2499 +:1034800022C04BDE682F80919A0190919B01A09100 +:103490009C01B0919D01B695A79597958795E7D426 +:1034A00080919A0190919B01A0919C01B0919D0106 +:1034B0000296A11DB11D80939A0190939B01A09348 +:1034C0009C01B0939D018B819C8101979C838B8390 +:1034D000ABCF063409F0CFCEF20180925700E895C9 +:1034E00007B600FCFDCFC7CE9B3109F03FCF04C02B +:1034F00080919E01811155C08FB7F8949091A301DE +:103500008FBF80919E01811106C0992309F449C0A3 +:103510005D981093A001F92EFF20B1F00091A20157 +:10352000E02FF0E0EC55FE4F80810EDE0F5F0F774D +:103530000093A2019FB7F8948091A30181508093DA +:10354000A3019FBFFA94E8CF1093E9009091E8009F +:103550008091E8008E778093E80095FD1DC08091F2 +:10356000E80080FD10C08EB38111F9CF80919E01DB +:103570008823B9F0F4E0F093E9008091E8008B77BC +:103580008093E8000EC08091E8008E778093E80079 +:1035900003C08EB3882351F38091E80080FFF9CFF8 +:1035A000E5CF22D4A89B15C0A89A8091A0018823BA +:1035B00031F081508093A001811101C05D9A80910A +:1035C0009F01882331F0815080939F01811101C0B8 +:1035D0005C9A809100018111F7CD8FE99FE00197FE +:1035E000F1F700C000008091E00081608093E0006E +:1035F0009CE088E10FB6F894A895809360000FBE18 +:1036000090936000FFCF42E061EC82E0E2D142E3C0 +:1036100061E883E0DED142E360E884E0DAC1CF9381 +:1036200080912602982F9F77913209F0C1C0909126 +:103630002702913299F4813A09F0BAC08091E800EA +:10364000877F8093E80067E070E081E091E065D1DA +:103650008091E8008B778093E800AAC0903209F04F +:1036600092C0813209F0A4C08091E800877F8093E6 +:10367000E800E1E0F1E087E0882309F19EB39923B7 +:1036800011F1953001F19091E80093FD1CC09091EB +:10369000E80092FFF1CF9091F200992329F09091E8 +:1036A000F10091938150B9F79091E8009B77909346 +:1036B000E800E2CF8EB3882331F0853021F080918D +:1036C000E80080FFF7CF8091E8008E778093E800D4 +:1036D00020910101309102014091030150910401B8 +:1036E000211581EE38074105510521F481E08093D1 +:1036F0009E0102C010929E011092A3011092A2019D +:103700001092A10180910601813021F0823021F4D4 +:10371000C0E203C0C0E301C0C0E080910501823077 +:1037200009F4C86080910701873031F0883031F0AA +:10373000863029F4C26003C0C46001C0C6605B9AD1 +:103740001092C9001092C8001092CA00DA01C90193 +:10375000B695A79597958795BC01CD0160587B4795 +:10376000814E9F4F5AD3215031093093CD00209381 +:10377000CC00C093CA0082E08093C80088E980939F +:10378000C9005B9815C0923299F4813289F4809116 +:10379000E800877F8093E80030D180919E018111FD +:1037A00006C08091280280FF02C05F9801C05F9A26 +:1037B000CF9108951F920F920FB60F9211248F93FD +:1037C0009F93EF93FF939091CE0080919E01811182 +:1037D00017C08EB38430A1F48091A30187FD10C07F +:1037E0008091A101E82FF0E0EC55FE4F90838F5FB0 +:1037F0008F778093A1018091A3018F5F8093A301B4 +:10380000FF91EF919F918F910F900FBE0F901F909E +:103810001895292F30E02230310559F02330310539 +:1038200069F021303105F9F482E190E020E831E0DF +:103830001EC08EE390E022E431E019C0882349F0F5 +:10384000813061F0823079F480E290E028E031E06C +:103850000EC084E090E02EE331E009C082E190E008 +:103860002AE231E004C080E090E020E030E0FA019C +:1038700031832083089507B600FCFDCFF999FECF70 +:1038800023E0FB0120935700E89507B600FCFDCF2D +:1038900081E180935700E895089507B600FCFDCFBD +:1038A000F999FECF25E0FB0120935700E89507B674 +:1038B00000FCFDCF81E180935700E895089507B69D +:1038C00000FCFDCFF999FECF21E0FB010A01209316 +:1038D0005700E8951124089521E2FC012093570038 +:1038E0008491089529E0FC01209357008491089564 +:1038F000E1E0F0E089E0809357008491089507B6F5 +:1039000000FCFDCFF999FECF809599E0E1E0F0E071 +:10391000082E90935700E895089520912C0230913D +:103920002D022617370748F06115710539F42091EB +:10393000E8002E772093E80001C0B90140E061154E +:10394000710579F12EB32223F1F12530F1F12091A7 +:10395000E80023FD3CC02091E80022FD2EC020910C +:10396000E80020FFECCF2091F20030E0FC01CF0115 +:103970006115710559F02830310540F4819180932B +:10398000F100615071092F5F3F4FF1CF41E02830C6 +:10399000310509F040E02091E8002E772093E800FF +:1039A000CECF4111CFCF09C08EB3882361F08530CF +:1039B00061F08091E80083FD0AC08091E80082FFF9 +:1039C000F3CF80E0089582E0089583E0089581E0D8 +:1039D00008958F708093E900EBEEF0E080818160C4 +:1039E0008083EDEEF0E010826093EC0040838091E4 +:1039F000EE00881F8827881F08958091260287FF80 +:103A00000FC08091E80082FD04C08EB38111F9CF10 +:103A100010C08091E8008B770AC08EB3882349F0EC +:103A20008091E80080FFF9CF8091E8008E77809345 +:103A3000E80008953CD03ED08091D8008F778093E5 +:103A4000D8008091D80080688093D8008091D800F9 +:103A50008F7D8093D80084E089BD86E089BD09B45C +:103A600000FEFDCF1EBA1092240242E060E080E02A +:103A7000B0DF8091E1008E7F8093E1008091E200D1 +:103A800081608093E2008091E20088608093E20090 +:103A90008091E0008E7F8093E0000895E3E6F0E0FF +:103AA00080818E7F808381E080932502C3CF109236 +:103AB000E20008951092E10008951F920F920FB650 +:103AC0000F9211242F933F934F935F936F937F93A4 +:103AD0008F939F93AF93BF93EF93FF938091E100F8 +:103AE00080FF16C08091E20080FF12C08091E2004A +:103AF0008E7F8093E2008091E20080618093E200FB +:103B00008091D80080628093D80019BC1EBA6BD116 +:103B10008091E10084FF2EC08091E20084FF2AC0E2 +:103B200084E089BD86E089BD09B400FEFDCF8091A7 +:103B3000D8008F7D8093D8008091E1008F7E8093A4 +:103B4000E1008091E2008F7E8093E2008091E200AC +:103B500081608093E20080912402882311F084E048 +:103B600007C08091E30087FD02C081E001C083E0CF +:103B70008EBB39D18091E10083FF21C08091E200AA +:103B800083FF1DC08091E100877F8093E10082E088 +:103B90008EBB109224028091E1008E7F8093E10021 +:103BA0008091E2008E7F8093E2008091E20080614C +:103BB0008093E20042E060E080E00BDF14D1FF91EF +:103BC000EF91BF91AF919F918F917F916F915F9195 +:103BD0004F913F912F910F900FBE0F901F9018950E +:103BE0001F93CF93DF9300D0CDB7DEB7E6E2F2E0CC +:103BF00088E08E0F9091F10091938E13FBCF0FDD33 +:103C00008091E80083FFDBC080912602909127021B +:103C1000953009F466C030F4913059F168F0933072 +:103C200041F1CDC0983009F49DC0993009F4ACC081 +:103C3000963009F0C4C076C0803881F0823809F02F +:103C4000BEC080912A028F708093E9008091EB00C2 +:103C500085FB882780F91092E90001C080E09091EF +:103C6000E800977F9093E8008093F1001092F100B4 +:103C700084C0282F2D7F09F0A2C0823009F09FC098 +:103C800080912802811127C080912A028F7009F447 +:103C900096C08093E9002091EB0020FF1CC0933078 +:103CA00021F48091EB00806214C09091EB00906150 +:103CB0009093EB0021E030E0A90102C0440F551FB2 +:103CC0008A95E2F74093EA001092EA008091EB00B7 +:103CD00088608093EB001092E9008091E800877F74 +:103CE0004FC081116CC0109128021F778091E300B2 +:103CF0008078812B8093E3008091E800877F809318 +:103D0000E8007BDE8091E80080FFFCCF8091E3003B +:103D100080688093E300111102C082E001C083E05B +:103D20008EBB4DC08058823008F049C0AE014F5F55 +:103D30005F4F60912A02809128029091290269DDEB +:103D4000BC01009709F43BC09091E800977F9093E5 +:103D5000E80089819A81E1DD8091E8008B7780938A +:103D6000E8002DC0803859F58091E800877F809366 +:103D7000E800809124028093F1008091E8008E7722 +:103D80008093E8003ADE1BC0811119C0909128028F +:103D90009230A8F48091E800877F8093E8009093A8 +:103DA00024022BDE80912402811106C08091E30061 +:103DB00087FD02C081E001C084E08EBB24DC8091DD +:103DC000E80083FF0AC08091E800877F8093E800C5 +:103DD0008091EB0080628093EB000F900F90DF9159 +:103DE000CF911F9108950895CF938EB3882399F0B2 +:103DF000C091E900CF709091EC00892F817090FD07 +:103E000080E8C82B1092E9008091E80083FDE8DE8D +:103E1000CF70C093E900CF910895A1E21A2EAA1B9A +:103E2000BB1BFD010DC0AA1FBB1FEE1FFF1FA2176A +:103E3000B307E407F50720F0A21BB30BE40BF50B67 +:103E4000661F771F881F991F1A9469F760957095F0 +:103E5000809590959B01AC01BD01CF010895F99922 +:103E6000FECF92BD81BDF89A992780B50895262F7F +:103E7000F999FECF1FBA92BD81BD20BD0FB6F8944F +:0E3E8000FA9AF99A0FBE01960895F894FFCFB2 +:103E8E000100000000000008200348006F006F00D2 +:103E9E0064004C006F006100640065007200320027 +:103EAE00200055006E006F00000012034E006900E6 +:103EBE0063006F0048006F006F0064000000040391 +:103ECE00090409023E0002010080320904000001CB +:103EDE00020201000524001001042402020524063A +:103EEE000001070582030800FF09040100020A0011 +:103EFE000000070504024000050705830240000587 +:103F0E0012011001020000084123430004020102C5 +:0A3F1E000001484C322E302E340012 +:103FA0006ACC7BCC8CCC98CC9DCCA2CCA8CC0895F0 +:083FB000089508950895089595 +:103FE000DFCFDFCFDFCFDFCFDFCFDFCFDFCFDFCF61 +:083FF000DFCFDFCFDFCFDFCF11 +:083FF8000030000000DFFBDCDB +:0400000300003000C9 +:00000001FF diff --git a/avr/bootloaders/LegacyVersions/BootloaderCDC_atusb162.hex b/avr/bootloaders/HoodLoader2/LegacyVersions/BootloaderCDC_atusb162.hex similarity index 100% rename from avr/bootloaders/LegacyVersions/BootloaderCDC_atusb162.hex rename to avr/bootloaders/HoodLoader2/LegacyVersions/BootloaderCDC_atusb162.hex diff --git a/avr/bootloaders/LegacyVersions/HoodLoader2_0_1_Mega_16u2.hex b/avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_1_Mega_16u2.hex similarity index 100% rename from avr/bootloaders/LegacyVersions/HoodLoader2_0_1_Mega_16u2.hex rename to avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_1_Mega_16u2.hex diff --git a/avr/bootloaders/LegacyVersions/HoodLoader2_0_1_Mega_32u2.hex b/avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_1_Mega_32u2.hex similarity index 100% rename from avr/bootloaders/LegacyVersions/HoodLoader2_0_1_Mega_32u2.hex rename to avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_1_Mega_32u2.hex diff --git a/avr/bootloaders/HoodLoader2_0_1_Mega_8u2.hex b/avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_1_Mega_8u2.hex similarity index 100% rename from avr/bootloaders/HoodLoader2_0_1_Mega_8u2.hex rename to avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_1_Mega_8u2.hex diff --git a/avr/bootloaders/HoodLoader2_0_1_Mega_at90usb162.hex b/avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_1_Mega_at90usb162.hex similarity index 100% rename from avr/bootloaders/HoodLoader2_0_1_Mega_at90usb162.hex rename to avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_1_Mega_at90usb162.hex diff --git a/avr/bootloaders/LegacyVersions/HoodLoader2_0_1_Uno_16u2.hex b/avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_1_Uno_16u2.hex similarity index 100% rename from avr/bootloaders/LegacyVersions/HoodLoader2_0_1_Uno_16u2.hex rename to avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_1_Uno_16u2.hex diff --git a/avr/bootloaders/LegacyVersions/HoodLoader2_0_1_Uno_32u2.hex b/avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_1_Uno_32u2.hex similarity index 100% rename from avr/bootloaders/LegacyVersions/HoodLoader2_0_1_Uno_32u2.hex rename to avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_1_Uno_32u2.hex diff --git a/avr/bootloaders/HoodLoader2_0_1_Uno_8u2.hex b/avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_1_Uno_8u2.hex similarity index 100% rename from avr/bootloaders/HoodLoader2_0_1_Uno_8u2.hex rename to avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_1_Uno_8u2.hex diff --git a/avr/bootloaders/HoodLoader2_0_1_Uno_at90usb162.hex b/avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_1_Uno_at90usb162.hex similarity index 100% rename from avr/bootloaders/HoodLoader2_0_1_Uno_at90usb162.hex rename to avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_1_Uno_at90usb162.hex diff --git a/avr/bootloaders/LegacyVersions/HoodLoader2_0_2_Mega_16u2.hex b/avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_2_Mega_16u2.hex similarity index 100% rename from avr/bootloaders/LegacyVersions/HoodLoader2_0_2_Mega_16u2.hex rename to avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_2_Mega_16u2.hex diff --git a/avr/bootloaders/LegacyVersions/HoodLoader2_0_2_Mega_32u2.hex b/avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_2_Mega_32u2.hex similarity index 100% rename from avr/bootloaders/LegacyVersions/HoodLoader2_0_2_Mega_32u2.hex rename to avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_2_Mega_32u2.hex diff --git a/avr/bootloaders/LegacyVersions/HoodLoader2_0_2_Uno_16u2.hex b/avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_2_Uno_16u2.hex similarity index 100% rename from avr/bootloaders/LegacyVersions/HoodLoader2_0_2_Uno_16u2.hex rename to avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_2_Uno_16u2.hex diff --git a/avr/bootloaders/LegacyVersions/HoodLoader2_0_2_Uno_32u2.hex b/avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_2_Uno_32u2.hex similarity index 100% rename from avr/bootloaders/LegacyVersions/HoodLoader2_0_2_Uno_32u2.hex rename to avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_2_Uno_32u2.hex diff --git a/avr/bootloaders/HoodLoader2_0_3_Mega_16u2.hex b/avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_3_Mega_16u2.hex similarity index 100% rename from avr/bootloaders/HoodLoader2_0_3_Mega_16u2.hex rename to avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_3_Mega_16u2.hex diff --git a/avr/bootloaders/HoodLoader2_0_3_Mega_32u2.hex b/avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_3_Mega_32u2.hex similarity index 100% rename from avr/bootloaders/HoodLoader2_0_3_Mega_32u2.hex rename to avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_3_Mega_32u2.hex diff --git a/avr/bootloaders/HoodLoader2_0_3_Uno_16u2.hex b/avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_3_Uno_16u2.hex similarity index 100% rename from avr/bootloaders/HoodLoader2_0_3_Uno_16u2.hex rename to avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_3_Uno_16u2.hex diff --git a/avr/bootloaders/HoodLoader2_0_3_Uno_32u2.hex b/avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_3_Uno_32u2.hex similarity index 100% rename from avr/bootloaders/HoodLoader2_0_3_Uno_32u2.hex rename to avr/bootloaders/HoodLoader2/LegacyVersions/HoodLoader2_0_3_Uno_32u2.hex diff --git a/avr/bootloaders/LegacyVersions/Hoodloader2_Alpha1.hex b/avr/bootloaders/HoodLoader2/LegacyVersions/Hoodloader2_Alpha1.hex similarity index 100% rename from avr/bootloaders/LegacyVersions/Hoodloader2_Alpha1.hex rename to avr/bootloaders/HoodLoader2/LegacyVersions/Hoodloader2_Alpha1.hex diff --git a/avr/bootloaders/LegacyVersions/Hoodloader2_Alpha2.hex b/avr/bootloaders/HoodLoader2/LegacyVersions/Hoodloader2_Alpha2.hex similarity index 100% rename from avr/bootloaders/LegacyVersions/Hoodloader2_Alpha2.hex rename to avr/bootloaders/HoodLoader2/LegacyVersions/Hoodloader2_Alpha2.hex diff --git a/avr/bootloaders/LegacyVersions/Hoodloader2_Alpha5.hex b/avr/bootloaders/HoodLoader2/LegacyVersions/Hoodloader2_Alpha5.hex similarity index 100% rename from avr/bootloaders/LegacyVersions/Hoodloader2_Alpha5.hex rename to avr/bootloaders/HoodLoader2/LegacyVersions/Hoodloader2_Alpha5.hex diff --git a/avr/bootloaders/LegacyVersions/Hoodloader2_Mega_Beta.hex b/avr/bootloaders/HoodLoader2/LegacyVersions/Hoodloader2_Mega_Beta.hex similarity index 100% rename from avr/bootloaders/LegacyVersions/Hoodloader2_Mega_Beta.hex rename to avr/bootloaders/HoodLoader2/LegacyVersions/Hoodloader2_Mega_Beta.hex diff --git a/avr/bootloaders/LegacyVersions/Hoodloader2_Uno_Beta.hex b/avr/bootloaders/HoodLoader2/LegacyVersions/Hoodloader2_Uno_Beta.hex similarity index 100% rename from avr/bootloaders/LegacyVersions/Hoodloader2_Uno_Beta.hex rename to avr/bootloaders/HoodLoader2/LegacyVersions/Hoodloader2_Uno_Beta.hex diff --git a/avr/bootloaders/LegacyVersions/LUFA CDC Bootloader.inf b/avr/bootloaders/HoodLoader2/LegacyVersions/LUFA CDC Bootloader.inf similarity index 100% rename from avr/bootloaders/LegacyVersions/LUFA CDC Bootloader.inf rename to avr/bootloaders/HoodLoader2/LegacyVersions/LUFA CDC Bootloader.inf diff --git a/avr/bootloaders/LegacyVersions/Readme.md b/avr/bootloaders/HoodLoader2/LegacyVersions/Readme.md similarity index 100% rename from avr/bootloaders/LegacyVersions/Readme.md rename to avr/bootloaders/HoodLoader2/LegacyVersions/Readme.md diff --git a/makefile b/avr/bootloaders/HoodLoader2/makefile similarity index 97% rename from makefile rename to avr/bootloaders/HoodLoader2/makefile index fb4c12e..aa6dc13 100644 --- a/makefile +++ b/avr/bootloaders/HoodLoader2/makefile @@ -13,13 +13,13 @@ MCU = atmega16u2 ARCH = AVR8 -BOARD = USER +BOARD = UNO F_CPU = 16000000 F_USB = $(F_CPU) OPTIMIZATION = s TARGET = HoodLoader2 SRC = $(TARGET).c Descriptors.c BootloaderAPI.c BootloaderAPITable.S $(LUFA_SRC_USB) -LUFA_PATH = ./lufa-LUFA-140928/LUFA +LUFA_PATH = ../../../tools/lufa-LUFA-140928/LUFA CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/ $(HOODLOADER2_OPTS) -DBOOT_START_ADDR=$(BOOT_START_OFFSET) LD_FLAGS = -Wl,--section-start=.text=$(BOOT_START_OFFSET) $(BOOT_API_LD_FLAGS) diff --git a/avr/platform.txt b/avr/platform.txt index c58e855..2e82109 100644 --- a/avr/platform.txt +++ b/avr/platform.txt @@ -6,4 +6,4 @@ # https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification name=Arduino Hoodloader2 -version=2.0.3 +version=2.0.4 diff --git a/avr/variants/mega/pins_arduino.h b/avr/variants/mega/pins_arduino.h new file mode 100644 index 0000000..a80991b --- /dev/null +++ b/avr/variants/mega/pins_arduino.h @@ -0,0 +1,389 @@ +/* + pins_arduino.h - Pin definition functions for Arduino + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2007 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ +*/ + +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include + +#define NUM_DIGITAL_PINS 70 +#define NUM_ANALOG_INPUTS 16 +#define analogInputToDigitalPin(p) ((p < 16) ? (p) + 54 : -1) +#define digitalPinHasPWM(p) (((p) >= 2 && (p) <= 13) || ((p) >= 44 && (p)<= 46)) + +static const uint8_t SS = 53; +static const uint8_t MOSI = 51; +static const uint8_t MISO = 50; +static const uint8_t SCK = 52; + +static const uint8_t SDA = 20; +static const uint8_t SCL = 21; +#define LED_BUILTIN 13 + +static const uint8_t A0 = 54; +static const uint8_t A1 = 55; +static const uint8_t A2 = 56; +static const uint8_t A3 = 57; +static const uint8_t A4 = 58; +static const uint8_t A5 = 59; +static const uint8_t A6 = 60; +static const uint8_t A7 = 61; +static const uint8_t A8 = 62; +static const uint8_t A9 = 63; +static const uint8_t A10 = 64; +static const uint8_t A11 = 65; +static const uint8_t A12 = 66; +static const uint8_t A13 = 67; +static const uint8_t A14 = 68; +static const uint8_t A15 = 69; + +// A majority of the pins are NOT PCINTs, SO BE WARNED (i.e. you cannot use them as receive pins) +// Only pins available for RECEIVE (TRANSMIT can be on any pin): +// (I've deliberately left out pin mapping to the Hardware USARTs - seems senseless to me) +// Pins: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69 + +#define digitalPinToPCICR(p) ( (((p) >= 10) && ((p) <= 13)) || \ + (((p) >= 50) && ((p) <= 53)) || \ + (((p) >= 62) && ((p) <= 69)) ? (&PCICR) : ((uint8_t *)0) ) + +#define digitalPinToPCICRbit(p) ( (((p) >= 10) && ((p) <= 13)) || (((p) >= 50) && ((p) <= 53)) ? 0 : \ + ( (((p) >= 62) && ((p) <= 69)) ? 2 : \ + 0 ) ) + +#define digitalPinToPCMSK(p) ( (((p) >= 10) && ((p) <= 13)) || (((p) >= 50) && ((p) <= 53)) ? (&PCMSK0) : \ + ( (((p) >= 62) && ((p) <= 69)) ? (&PCMSK2) : \ + ((uint8_t *)0) ) ) + +#define digitalPinToPCMSKbit(p) ( (((p) >= 10) && ((p) <= 13)) ? ((p) - 6) : \ + ( ((p) == 50) ? 3 : \ + ( ((p) == 51) ? 2 : \ + ( ((p) == 52) ? 1 : \ + ( ((p) == 53) ? 0 : \ + ( (((p) >= 62) && ((p) <= 69)) ? ((p) - 62) : \ + 0 ) ) ) ) ) ) + +#define digitalPinToInterrupt(p) ((p) == 2 ? 0 : ((p) == 3 ? 1 : ((p) >= 18 && (p) <= 21 ? 23 - (p) : NOT_AN_INTERRUPT))) + +#ifdef ARDUINO_MAIN + +const uint16_t PROGMEM port_to_mode_PGM[] = { + NOT_A_PORT, + (uint16_t) &DDRA, + (uint16_t) &DDRB, + (uint16_t) &DDRC, + (uint16_t) &DDRD, + (uint16_t) &DDRE, + (uint16_t) &DDRF, + (uint16_t) &DDRG, + (uint16_t) &DDRH, + NOT_A_PORT, + (uint16_t) &DDRJ, + (uint16_t) &DDRK, + (uint16_t) &DDRL, +}; + +const uint16_t PROGMEM port_to_output_PGM[] = { + NOT_A_PORT, + (uint16_t) &PORTA, + (uint16_t) &PORTB, + (uint16_t) &PORTC, + (uint16_t) &PORTD, + (uint16_t) &PORTE, + (uint16_t) &PORTF, + (uint16_t) &PORTG, + (uint16_t) &PORTH, + NOT_A_PORT, + (uint16_t) &PORTJ, + (uint16_t) &PORTK, + (uint16_t) &PORTL, +}; + +const uint16_t PROGMEM port_to_input_PGM[] = { + NOT_A_PIN, + (uint16_t) &PINA, + (uint16_t) &PINB, + (uint16_t) &PINC, + (uint16_t) &PIND, + (uint16_t) &PINE, + (uint16_t) &PINF, + (uint16_t) &PING, + (uint16_t) &PINH, + NOT_A_PIN, + (uint16_t) &PINJ, + (uint16_t) &PINK, + (uint16_t) &PINL, +}; + +const uint8_t PROGMEM digital_pin_to_port_PGM[] = { + // PORTLIST + // ------------------------------------------- + PE , // PE 0 ** 0 ** USART0_RX + PE , // PE 1 ** 1 ** USART0_TX + PE , // PE 4 ** 2 ** PWM2 + PE , // PE 5 ** 3 ** PWM3 + PG , // PG 5 ** 4 ** PWM4 + PE , // PE 3 ** 5 ** PWM5 + PH , // PH 3 ** 6 ** PWM6 + PH , // PH 4 ** 7 ** PWM7 + PH , // PH 5 ** 8 ** PWM8 + PH , // PH 6 ** 9 ** PWM9 + PB , // PB 4 ** 10 ** PWM10 + PB , // PB 5 ** 11 ** PWM11 + PB , // PB 6 ** 12 ** PWM12 + PB , // PB 7 ** 13 ** PWM13 + PJ , // PJ 1 ** 14 ** USART3_TX + PJ , // PJ 0 ** 15 ** USART3_RX + PH , // PH 1 ** 16 ** USART2_TX + PH , // PH 0 ** 17 ** USART2_RX + PD , // PD 3 ** 18 ** USART1_TX + PD , // PD 2 ** 19 ** USART1_RX + PD , // PD 1 ** 20 ** I2C_SDA + PD , // PD 0 ** 21 ** I2C_SCL + PA , // PA 0 ** 22 ** D22 + PA , // PA 1 ** 23 ** D23 + PA , // PA 2 ** 24 ** D24 + PA , // PA 3 ** 25 ** D25 + PA , // PA 4 ** 26 ** D26 + PA , // PA 5 ** 27 ** D27 + PA , // PA 6 ** 28 ** D28 + PA , // PA 7 ** 29 ** D29 + PC , // PC 7 ** 30 ** D30 + PC , // PC 6 ** 31 ** D31 + PC , // PC 5 ** 32 ** D32 + PC , // PC 4 ** 33 ** D33 + PC , // PC 3 ** 34 ** D34 + PC , // PC 2 ** 35 ** D35 + PC , // PC 1 ** 36 ** D36 + PC , // PC 0 ** 37 ** D37 + PD , // PD 7 ** 38 ** D38 + PG , // PG 2 ** 39 ** D39 + PG , // PG 1 ** 40 ** D40 + PG , // PG 0 ** 41 ** D41 + PL , // PL 7 ** 42 ** D42 + PL , // PL 6 ** 43 ** D43 + PL , // PL 5 ** 44 ** D44 + PL , // PL 4 ** 45 ** D45 + PL , // PL 3 ** 46 ** D46 + PL , // PL 2 ** 47 ** D47 + PL , // PL 1 ** 48 ** D48 + PL , // PL 0 ** 49 ** D49 + PB , // PB 3 ** 50 ** SPI_MISO + PB , // PB 2 ** 51 ** SPI_MOSI + PB , // PB 1 ** 52 ** SPI_SCK + PB , // PB 0 ** 53 ** SPI_SS + PF , // PF 0 ** 54 ** A0 + PF , // PF 1 ** 55 ** A1 + PF , // PF 2 ** 56 ** A2 + PF , // PF 3 ** 57 ** A3 + PF , // PF 4 ** 58 ** A4 + PF , // PF 5 ** 59 ** A5 + PF , // PF 6 ** 60 ** A6 + PF , // PF 7 ** 61 ** A7 + PK , // PK 0 ** 62 ** A8 + PK , // PK 1 ** 63 ** A9 + PK , // PK 2 ** 64 ** A10 + PK , // PK 3 ** 65 ** A11 + PK , // PK 4 ** 66 ** A12 + PK , // PK 5 ** 67 ** A13 + PK , // PK 6 ** 68 ** A14 + PK , // PK 7 ** 69 ** A15 +}; + +const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { + // PIN IN PORT + // ------------------------------------------- + _BV( 0 ) , // PE 0 ** 0 ** USART0_RX + _BV( 1 ) , // PE 1 ** 1 ** USART0_TX + _BV( 4 ) , // PE 4 ** 2 ** PWM2 + _BV( 5 ) , // PE 5 ** 3 ** PWM3 + _BV( 5 ) , // PG 5 ** 4 ** PWM4 + _BV( 3 ) , // PE 3 ** 5 ** PWM5 + _BV( 3 ) , // PH 3 ** 6 ** PWM6 + _BV( 4 ) , // PH 4 ** 7 ** PWM7 + _BV( 5 ) , // PH 5 ** 8 ** PWM8 + _BV( 6 ) , // PH 6 ** 9 ** PWM9 + _BV( 4 ) , // PB 4 ** 10 ** PWM10 + _BV( 5 ) , // PB 5 ** 11 ** PWM11 + _BV( 6 ) , // PB 6 ** 12 ** PWM12 + _BV( 7 ) , // PB 7 ** 13 ** PWM13 + _BV( 1 ) , // PJ 1 ** 14 ** USART3_TX + _BV( 0 ) , // PJ 0 ** 15 ** USART3_RX + _BV( 1 ) , // PH 1 ** 16 ** USART2_TX + _BV( 0 ) , // PH 0 ** 17 ** USART2_RX + _BV( 3 ) , // PD 3 ** 18 ** USART1_TX + _BV( 2 ) , // PD 2 ** 19 ** USART1_RX + _BV( 1 ) , // PD 1 ** 20 ** I2C_SDA + _BV( 0 ) , // PD 0 ** 21 ** I2C_SCL + _BV( 0 ) , // PA 0 ** 22 ** D22 + _BV( 1 ) , // PA 1 ** 23 ** D23 + _BV( 2 ) , // PA 2 ** 24 ** D24 + _BV( 3 ) , // PA 3 ** 25 ** D25 + _BV( 4 ) , // PA 4 ** 26 ** D26 + _BV( 5 ) , // PA 5 ** 27 ** D27 + _BV( 6 ) , // PA 6 ** 28 ** D28 + _BV( 7 ) , // PA 7 ** 29 ** D29 + _BV( 7 ) , // PC 7 ** 30 ** D30 + _BV( 6 ) , // PC 6 ** 31 ** D31 + _BV( 5 ) , // PC 5 ** 32 ** D32 + _BV( 4 ) , // PC 4 ** 33 ** D33 + _BV( 3 ) , // PC 3 ** 34 ** D34 + _BV( 2 ) , // PC 2 ** 35 ** D35 + _BV( 1 ) , // PC 1 ** 36 ** D36 + _BV( 0 ) , // PC 0 ** 37 ** D37 + _BV( 7 ) , // PD 7 ** 38 ** D38 + _BV( 2 ) , // PG 2 ** 39 ** D39 + _BV( 1 ) , // PG 1 ** 40 ** D40 + _BV( 0 ) , // PG 0 ** 41 ** D41 + _BV( 7 ) , // PL 7 ** 42 ** D42 + _BV( 6 ) , // PL 6 ** 43 ** D43 + _BV( 5 ) , // PL 5 ** 44 ** D44 + _BV( 4 ) , // PL 4 ** 45 ** D45 + _BV( 3 ) , // PL 3 ** 46 ** D46 + _BV( 2 ) , // PL 2 ** 47 ** D47 + _BV( 1 ) , // PL 1 ** 48 ** D48 + _BV( 0 ) , // PL 0 ** 49 ** D49 + _BV( 3 ) , // PB 3 ** 50 ** SPI_MISO + _BV( 2 ) , // PB 2 ** 51 ** SPI_MOSI + _BV( 1 ) , // PB 1 ** 52 ** SPI_SCK + _BV( 0 ) , // PB 0 ** 53 ** SPI_SS + _BV( 0 ) , // PF 0 ** 54 ** A0 + _BV( 1 ) , // PF 1 ** 55 ** A1 + _BV( 2 ) , // PF 2 ** 56 ** A2 + _BV( 3 ) , // PF 3 ** 57 ** A3 + _BV( 4 ) , // PF 4 ** 58 ** A4 + _BV( 5 ) , // PF 5 ** 59 ** A5 + _BV( 6 ) , // PF 6 ** 60 ** A6 + _BV( 7 ) , // PF 7 ** 61 ** A7 + _BV( 0 ) , // PK 0 ** 62 ** A8 + _BV( 1 ) , // PK 1 ** 63 ** A9 + _BV( 2 ) , // PK 2 ** 64 ** A10 + _BV( 3 ) , // PK 3 ** 65 ** A11 + _BV( 4 ) , // PK 4 ** 66 ** A12 + _BV( 5 ) , // PK 5 ** 67 ** A13 + _BV( 6 ) , // PK 6 ** 68 ** A14 + _BV( 7 ) , // PK 7 ** 69 ** A15 +}; + +const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { + // TIMERS + // ------------------------------------------- + NOT_ON_TIMER , // PE 0 ** 0 ** USART0_RX + NOT_ON_TIMER , // PE 1 ** 1 ** USART0_TX + TIMER3B , // PE 4 ** 2 ** PWM2 + TIMER3C , // PE 5 ** 3 ** PWM3 + TIMER0B , // PG 5 ** 4 ** PWM4 + TIMER3A , // PE 3 ** 5 ** PWM5 + TIMER4A , // PH 3 ** 6 ** PWM6 + TIMER4B , // PH 4 ** 7 ** PWM7 + TIMER4C , // PH 5 ** 8 ** PWM8 + TIMER2B , // PH 6 ** 9 ** PWM9 + TIMER2A , // PB 4 ** 10 ** PWM10 + TIMER1A , // PB 5 ** 11 ** PWM11 + TIMER1B , // PB 6 ** 12 ** PWM12 + TIMER0A , // PB 7 ** 13 ** PWM13 + NOT_ON_TIMER , // PJ 1 ** 14 ** USART3_TX + NOT_ON_TIMER , // PJ 0 ** 15 ** USART3_RX + NOT_ON_TIMER , // PH 1 ** 16 ** USART2_TX + NOT_ON_TIMER , // PH 0 ** 17 ** USART2_RX + NOT_ON_TIMER , // PD 3 ** 18 ** USART1_TX + NOT_ON_TIMER , // PD 2 ** 19 ** USART1_RX + NOT_ON_TIMER , // PD 1 ** 20 ** I2C_SDA + NOT_ON_TIMER , // PD 0 ** 21 ** I2C_SCL + NOT_ON_TIMER , // PA 0 ** 22 ** D22 + NOT_ON_TIMER , // PA 1 ** 23 ** D23 + NOT_ON_TIMER , // PA 2 ** 24 ** D24 + NOT_ON_TIMER , // PA 3 ** 25 ** D25 + NOT_ON_TIMER , // PA 4 ** 26 ** D26 + NOT_ON_TIMER , // PA 5 ** 27 ** D27 + NOT_ON_TIMER , // PA 6 ** 28 ** D28 + NOT_ON_TIMER , // PA 7 ** 29 ** D29 + NOT_ON_TIMER , // PC 7 ** 30 ** D30 + NOT_ON_TIMER , // PC 6 ** 31 ** D31 + NOT_ON_TIMER , // PC 5 ** 32 ** D32 + NOT_ON_TIMER , // PC 4 ** 33 ** D33 + NOT_ON_TIMER , // PC 3 ** 34 ** D34 + NOT_ON_TIMER , // PC 2 ** 35 ** D35 + NOT_ON_TIMER , // PC 1 ** 36 ** D36 + NOT_ON_TIMER , // PC 0 ** 37 ** D37 + NOT_ON_TIMER , // PD 7 ** 38 ** D38 + NOT_ON_TIMER , // PG 2 ** 39 ** D39 + NOT_ON_TIMER , // PG 1 ** 40 ** D40 + NOT_ON_TIMER , // PG 0 ** 41 ** D41 + NOT_ON_TIMER , // PL 7 ** 42 ** D42 + NOT_ON_TIMER , // PL 6 ** 43 ** D43 + TIMER5C , // PL 5 ** 44 ** D44 + TIMER5B , // PL 4 ** 45 ** D45 + TIMER5A , // PL 3 ** 46 ** D46 + NOT_ON_TIMER , // PL 2 ** 47 ** D47 + NOT_ON_TIMER , // PL 1 ** 48 ** D48 + NOT_ON_TIMER , // PL 0 ** 49 ** D49 + NOT_ON_TIMER , // PB 3 ** 50 ** SPI_MISO + NOT_ON_TIMER , // PB 2 ** 51 ** SPI_MOSI + NOT_ON_TIMER , // PB 1 ** 52 ** SPI_SCK + NOT_ON_TIMER , // PB 0 ** 53 ** SPI_SS + NOT_ON_TIMER , // PF 0 ** 54 ** A0 + NOT_ON_TIMER , // PF 1 ** 55 ** A1 + NOT_ON_TIMER , // PF 2 ** 56 ** A2 + NOT_ON_TIMER , // PF 3 ** 57 ** A3 + NOT_ON_TIMER , // PF 4 ** 58 ** A4 + NOT_ON_TIMER , // PF 5 ** 59 ** A5 + NOT_ON_TIMER , // PF 6 ** 60 ** A6 + NOT_ON_TIMER , // PF 7 ** 61 ** A7 + NOT_ON_TIMER , // PK 0 ** 62 ** A8 + NOT_ON_TIMER , // PK 1 ** 63 ** A9 + NOT_ON_TIMER , // PK 2 ** 64 ** A10 + NOT_ON_TIMER , // PK 3 ** 65 ** A11 + NOT_ON_TIMER , // PK 4 ** 66 ** A12 + NOT_ON_TIMER , // PK 5 ** 67 ** A13 + NOT_ON_TIMER , // PK 6 ** 68 ** A14 + NOT_ON_TIMER , // PK 7 ** 69 ** A15 +}; + +#endif + +// These serial port names are intended to allow libraries and architecture-neutral +// sketches to automatically default to the correct port name for a particular type +// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, +// the first hardware serial port whose RX/TX pins are not dedicated to another use. +// +// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor +// +// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial +// +// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library +// +// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. +// +// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX +// pins are NOT connected to anything by default. +#define SERIAL_PORT_MONITOR Serial +#define SERIAL_PORT_HARDWARE Serial +#define SERIAL_PORT_HARDWARE1 Serial1 +#define SERIAL_PORT_HARDWARE2 Serial2 +#define SERIAL_PORT_HARDWARE3 Serial3 +#define SERIAL_PORT_HARDWARE_OPEN Serial1 +#define SERIAL_PORT_HARDWARE_OPEN1 Serial2 +#define SERIAL_PORT_HARDWARE_OPEN2 Serial3 + +#endif diff --git a/avr/variants/mega_custom/pins_arduino.h b/avr/variants/mega_custom/pins_arduino.h new file mode 100644 index 0000000..15c5f98 --- /dev/null +++ b/avr/variants/mega_custom/pins_arduino.h @@ -0,0 +1,99 @@ +/* +Copyright(c) 2014-2015 NicoHood +See the readme for credit to other people. + +This file is part of Hoodloader2. + +Hoodloader2 is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Hoodloader2 is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Hoodloader2. If not, see . +*/ + +// include the standard Mega board definition file +#include "../mega/pins_arduino.h" + +//================================================================================ +// HID Settings +//================================================================================ + +// HID Project needs to be installed https://github.com/NicoHood/HID + +/* +You have two options to enable/disbale hid functions: + +The nearly full automatic way which enables the specific hid report for you, +enables the specific hid api and also enables the keyboard led function if needed. + +The fully customizable variant where you can create your very own HID report. +You still can use the predefined hid reports or add you very own ones. +You have to enable the specific hid apis on your own then, also the keyboard led function. +*/ + +#define HID_AUTOMATIC +//#define HID_CUSTOM_SETTINGS + +//================================================================================ +// Notice for HoodLoader2! +//================================================================================ + +/* +HoodLoader2 sketches are limited to a maximum 15 byte HID report. +Dont use more than that. (for a Leonardo/Micro it is 63 bytes). + +Arduino Uno/Mega's main MCU cannot have a specified HID descriptor, +edit the HoodLoader2 file for the 16u2 instead. +It is more important that the HID APIs are the same on both devices. +*/ + +//================================================================================ +// Automatic +//================================================================================ + +#ifdef HID_AUTOMATIC +// pre selected hid reports with autoinclude of the api +#define HID_MOUSE_ENABLE // normal mouse with buttons + wheel +//#define HID_MOUSE_ABSOLUTE_ENABLE // only works with system and without gamepad +#define HID_KEYBOARD_LEDS_ENABLE // leds OR keys +//#define HID_KEYBOARD_KEYS_ENABLE +//#define HID_RAWHID_ENABLE // currently not working +//#define HID_CONSUMERCONTROL_ENABLE +//#define HID_SYSTEMCONTROL_ENABLE +//#define HID_GAMEPAD_ENABLE // only works without mouse absolute + +//================================================================================ +// Custom Settings +//================================================================================ + +#elif defined(HID_CUSTOM_SETTINGS) + +// default setting here shows a mouse + keyboard with no led function +// like in IDE 1.0.6/1.5.8 or lower + +// use this to enable the Keyboard Led functions +//#define HID_KEYBOARD_LEDS_ENABLED + +// flag that you are using a custom hid report descriptor +#define EXTERN_HID_REPORT + +// activate your custom HID-APIs here: +#define HID_MOUSE_API_ENABLE +//#define HID_MOUSE_ABSOLUTE_API_ENABLE +#define HID_KEYBOARD_API_ENABLE +//#define HID_RAWHID_API_ENABLE +//#define HID_CONSUMERCONTROL_API_ENABLE +//#define HID_SYSTEMCONTROL_API_ENABLE +//#define HID_GAMEPAD_API_ENABLE +//#define HID_ENABLE_ALL_APIS // enables all of the ones above + +#else +#error Please select automatic or custom hid report in the pins_arduino.h! +#endif \ No newline at end of file diff --git a/avr/variants/mega_gamepad/pins_arduino.h b/avr/variants/mega_gamepad/pins_arduino.h new file mode 100644 index 0000000..377e98f --- /dev/null +++ b/avr/variants/mega_gamepad/pins_arduino.h @@ -0,0 +1,38 @@ +/* +Copyright(c) 2014-2015 NicoHood +See the readme for credit to other people. + +This file is part of Hoodloader2. + +Hoodloader2 is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Hoodloader2 is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Hoodloader2. If not, see . +*/ + +// include the standard Mega board definition file +#include "../mega/pins_arduino.h" + +//================================================================================ +// HID Settings +//================================================================================ + +// HID Project needs to be installed https://github.com/NicoHood/HID + +// pre selected hid reports with autoinclude of the api +#define HID_MOUSE_ENABLE // normal mouse with buttons + wheel +//#define HID_MOUSE_ABSOLUTE_ENABLE // only works with system and without gamepad +#define HID_KEYBOARD_LEDS_ENABLE // leds OR keys +//#define HID_KEYBOARD_KEYS_ENABLE +//#define HID_RAWHID_ENABLE // currently not working +//#define HID_CONSUMERCONTROL_ENABLE +//#define HID_SYSTEMCONTROL_ENABLE +#define HID_GAMEPAD_ENABLE // only works without mouse absolute diff --git a/avr/variants/mega_hid/pins_arduino.h b/avr/variants/mega_hid/pins_arduino.h new file mode 100644 index 0000000..86a603f --- /dev/null +++ b/avr/variants/mega_hid/pins_arduino.h @@ -0,0 +1,38 @@ +/* +Copyright(c) 2014-2015 NicoHood +See the readme for credit to other people. + +This file is part of Hoodloader2. + +Hoodloader2 is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Hoodloader2 is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Hoodloader2. If not, see . +*/ + +// include the standard Mega board definition file +#include "../mega/pins_arduino.h" + +//================================================================================ +// HID Settings +//================================================================================ + +// HID Project needs to be installed https://github.com/NicoHood/HID + +// pre selected hid reports with autoinclude of the api +#define HID_MOUSE_ENABLE // normal mouse with buttons + wheel +#define HID_MOUSE_ABSOLUTE_ENABLE // only works with system and without gamepad +#define HID_KEYBOARD_LEDS_ENABLE // leds OR keys +//#define HID_KEYBOARD_KEYS_ENABLE +//#define HID_RAWHID_ENABLE // currently not working +#define HID_CONSUMERCONTROL_ENABLE +#define HID_SYSTEMCONTROL_ENABLE +//#define HID_GAMEPAD_ENABLE // only works without mouse absolute \ No newline at end of file diff --git a/avr/variants/standard/pins_arduino.h b/avr/variants/standard/pins_arduino.h new file mode 100644 index 0000000..3d4a9f6 --- /dev/null +++ b/avr/variants/standard/pins_arduino.h @@ -0,0 +1,238 @@ +/* + pins_arduino.h - Pin definition functions for Arduino + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2007 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ +*/ + +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include + +#define NUM_DIGITAL_PINS 20 +#define NUM_ANALOG_INPUTS 6 +#define analogInputToDigitalPin(p) ((p < 6) ? (p) + 14 : -1) + +#if defined(__AVR_ATmega8__) +#define digitalPinHasPWM(p) ((p) == 9 || (p) == 10 || (p) == 11) +#else +#define digitalPinHasPWM(p) ((p) == 3 || (p) == 5 || (p) == 6 || (p) == 9 || (p) == 10 || (p) == 11) +#endif + +static const uint8_t SS = 10; +static const uint8_t MOSI = 11; +static const uint8_t MISO = 12; +static const uint8_t SCK = 13; + +static const uint8_t SDA = 18; +static const uint8_t SCL = 19; +#define LED_BUILTIN 13 + +static const uint8_t A0 = 14; +static const uint8_t A1 = 15; +static const uint8_t A2 = 16; +static const uint8_t A3 = 17; +static const uint8_t A4 = 18; +static const uint8_t A5 = 19; +static const uint8_t A6 = 20; +static const uint8_t A7 = 21; + +#define digitalPinToPCICR(p) (((p) >= 0 && (p) <= 21) ? (&PCICR) : ((uint8_t *)0)) +#define digitalPinToPCICRbit(p) (((p) <= 7) ? 2 : (((p) <= 13) ? 0 : 1)) +#define digitalPinToPCMSK(p) (((p) <= 7) ? (&PCMSK2) : (((p) <= 13) ? (&PCMSK0) : (((p) <= 21) ? (&PCMSK1) : ((uint8_t *)0)))) +#define digitalPinToPCMSKbit(p) (((p) <= 7) ? (p) : (((p) <= 13) ? ((p) - 8) : ((p) - 14))) + +#define digitalPinToInterrupt(p) ((p) == 2 ? 0 : ((p) == 3 ? 1 : NOT_AN_INTERRUPT)) + +#ifdef ARDUINO_MAIN + +// On the Arduino board, digital pins are also used +// for the analog output (software PWM). Analog input +// pins are a separate set. + +// ATMEL ATMEGA8 & 168 / ARDUINO +// +// +-\/-+ +// PC6 1| |28 PC5 (AI 5) +// (D 0) PD0 2| |27 PC4 (AI 4) +// (D 1) PD1 3| |26 PC3 (AI 3) +// (D 2) PD2 4| |25 PC2 (AI 2) +// PWM+ (D 3) PD3 5| |24 PC1 (AI 1) +// (D 4) PD4 6| |23 PC0 (AI 0) +// VCC 7| |22 GND +// GND 8| |21 AREF +// PB6 9| |20 AVCC +// PB7 10| |19 PB5 (D 13) +// PWM+ (D 5) PD5 11| |18 PB4 (D 12) +// PWM+ (D 6) PD6 12| |17 PB3 (D 11) PWM +// (D 7) PD7 13| |16 PB2 (D 10) PWM +// (D 8) PB0 14| |15 PB1 (D 9) PWM +// +----+ +// +// (PWM+ indicates the additional PWM pins on the ATmega168.) + +// ATMEL ATMEGA1280 / ARDUINO +// +// 0-7 PE0-PE7 works +// 8-13 PB0-PB5 works +// 14-21 PA0-PA7 works +// 22-29 PH0-PH7 works +// 30-35 PG5-PG0 works +// 36-43 PC7-PC0 works +// 44-51 PJ7-PJ0 works +// 52-59 PL7-PL0 works +// 60-67 PD7-PD0 works +// A0-A7 PF0-PF7 +// A8-A15 PK0-PK7 + + +// these arrays map port names (e.g. port B) to the +// appropriate addresses for various functions (e.g. reading +// and writing) +const uint16_t PROGMEM port_to_mode_PGM[] = { + NOT_A_PORT, + NOT_A_PORT, + (uint16_t) &DDRB, + (uint16_t) &DDRC, + (uint16_t) &DDRD, +}; + +const uint16_t PROGMEM port_to_output_PGM[] = { + NOT_A_PORT, + NOT_A_PORT, + (uint16_t) &PORTB, + (uint16_t) &PORTC, + (uint16_t) &PORTD, +}; + +const uint16_t PROGMEM port_to_input_PGM[] = { + NOT_A_PORT, + NOT_A_PORT, + (uint16_t) &PINB, + (uint16_t) &PINC, + (uint16_t) &PIND, +}; + +const uint8_t PROGMEM digital_pin_to_port_PGM[] = { + PD, /* 0 */ + PD, + PD, + PD, + PD, + PD, + PD, + PD, + PB, /* 8 */ + PB, + PB, + PB, + PB, + PB, + PC, /* 14 */ + PC, + PC, + PC, + PC, + PC, +}; + +const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { + _BV(0), /* 0, port D */ + _BV(1), + _BV(2), + _BV(3), + _BV(4), + _BV(5), + _BV(6), + _BV(7), + _BV(0), /* 8, port B */ + _BV(1), + _BV(2), + _BV(3), + _BV(4), + _BV(5), + _BV(0), /* 14, port C */ + _BV(1), + _BV(2), + _BV(3), + _BV(4), + _BV(5), +}; + +const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { + NOT_ON_TIMER, /* 0 - port D */ + NOT_ON_TIMER, + NOT_ON_TIMER, + // on the ATmega168, digital pin 3 has hardware pwm +#if defined(__AVR_ATmega8__) + NOT_ON_TIMER, +#else + TIMER2B, +#endif + NOT_ON_TIMER, + // on the ATmega168, digital pins 5 and 6 have hardware pwm +#if defined(__AVR_ATmega8__) + NOT_ON_TIMER, + NOT_ON_TIMER, +#else + TIMER0B, + TIMER0A, +#endif + NOT_ON_TIMER, + NOT_ON_TIMER, /* 8 - port B */ + TIMER1A, + TIMER1B, +#if defined(__AVR_ATmega8__) + TIMER2, +#else + TIMER2A, +#endif + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, /* 14 - port C */ + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, +}; + +#endif + +// These serial port names are intended to allow libraries and architecture-neutral +// sketches to automatically default to the correct port name for a particular type +// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, +// the first hardware serial port whose RX/TX pins are not dedicated to another use. +// +// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor +// +// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial +// +// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library +// +// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. +// +// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX +// pins are NOT connected to anything by default. +#define SERIAL_PORT_MONITOR Serial +#define SERIAL_PORT_HARDWARE Serial + +#endif diff --git a/avr/variants/standard_custom/pins_arduino.h b/avr/variants/standard_custom/pins_arduino.h new file mode 100644 index 0000000..f21238d --- /dev/null +++ b/avr/variants/standard_custom/pins_arduino.h @@ -0,0 +1,99 @@ +/* +Copyright(c) 2014-2015 NicoHood +See the readme for credit to other people. + +This file is part of Hoodloader2. + +Hoodloader2 is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Hoodloader2 is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Hoodloader2. If not, see . +*/ + +// include the standard Uno board definition file +#include "../standard/pins_arduino.h" + +//================================================================================ +// HID Settings +//================================================================================ + +// HID Project needs to be installed https://github.com/NicoHood/HID + +/* +You have two options to enable/disbale hid functions: + +The nearly full automatic way which enables the specific hid report for you, +enables the specific hid api and also enables the keyboard led function if needed. + +The fully customizable variant where you can create your very own HID report. +You still can use the predefined hid reports or add you very own ones. +You have to enable the specific hid apis on your own then, also the keyboard led function. +*/ + +#define HID_AUTOMATIC +//#define HID_CUSTOM_SETTINGS + +//================================================================================ +// Notice for HoodLoader2! +//================================================================================ + +/* +HoodLoader2 sketches are limited to a maximum 15 byte HID report. +Dont use more than that. (for a Leonardo/Micro it is 63 bytes). + +Arduino Uno/Mega's main MCU cannot have a specified HID descriptor, +edit the HoodLoader2 file for the 16u2 instead. +It is more important that the HID APIs are the same on both devices. +*/ + +//================================================================================ +// Automatic +//================================================================================ + +#ifdef HID_AUTOMATIC +// pre selected hid reports with autoinclude of the api +#define HID_MOUSE_ENABLE // normal mouse with buttons + wheel +//#define HID_MOUSE_ABSOLUTE_ENABLE // only works with system and without gamepad +#define HID_KEYBOARD_LEDS_ENABLE // leds OR keys +//#define HID_KEYBOARD_KEYS_ENABLE +//#define HID_RAWHID_ENABLE // currently not working +//#define HID_CONSUMERCONTROL_ENABLE +//#define HID_SYSTEMCONTROL_ENABLE +//#define HID_GAMEPAD_ENABLE // only works without mouse absolute + +//================================================================================ +// Custom Settings +//================================================================================ + +#elif defined(HID_CUSTOM_SETTINGS) + +// default setting here shows a mouse + keyboard with no led function +// like in IDE 1.0.6/1.5.8 or lower + +// use this to enable the Keyboard Led functions +//#define HID_KEYBOARD_LEDS_ENABLED + +// flag that you are using a custom hid report descriptor +#define EXTERN_HID_REPORT + +// activate your custom HID-APIs here: +#define HID_MOUSE_API_ENABLE +//#define HID_MOUSE_ABSOLUTE_API_ENABLE +#define HID_KEYBOARD_API_ENABLE +//#define HID_RAWHID_API_ENABLE +//#define HID_CONSUMERCONTROL_API_ENABLE +//#define HID_SYSTEMCONTROL_API_ENABLE +//#define HID_GAMEPAD_API_ENABLE +//#define HID_ENABLE_ALL_APIS // enables all of the ones above + +#else +#error Please select automatic or custom hid report in the pins_arduino.h! +#endif \ No newline at end of file diff --git a/avr/variants/standard_gamepad/pins_arduino.h b/avr/variants/standard_gamepad/pins_arduino.h new file mode 100644 index 0000000..ac67f27 --- /dev/null +++ b/avr/variants/standard_gamepad/pins_arduino.h @@ -0,0 +1,38 @@ +/* +Copyright(c) 2014-2015 NicoHood +See the readme for credit to other people. + +This file is part of Hoodloader2. + +Hoodloader2 is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Hoodloader2 is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Hoodloader2. If not, see . +*/ + +// include the standard Uno board definition file +#include "../standard/pins_arduino.h" + +//================================================================================ +// HID Settings +//================================================================================ + +// HID Project needs to be installed https://github.com/NicoHood/HID + +// pre selected hid reports with autoinclude of the api +#define HID_MOUSE_ENABLE // normal mouse with buttons + wheel +//#define HID_MOUSE_ABSOLUTE_ENABLE // only works with system and without gamepad +#define HID_KEYBOARD_LEDS_ENABLE // leds OR keys +//#define HID_KEYBOARD_KEYS_ENABLE +//#define HID_RAWHID_ENABLE // currently not working +//#define HID_CONSUMERCONTROL_ENABLE +//#define HID_SYSTEMCONTROL_ENABLE +#define HID_GAMEPAD_ENABLE // only works without mouse absolute diff --git a/avr/variants/standard_hid/pins_arduino.h b/avr/variants/standard_hid/pins_arduino.h new file mode 100644 index 0000000..ec721d2 --- /dev/null +++ b/avr/variants/standard_hid/pins_arduino.h @@ -0,0 +1,38 @@ +/* +Copyright(c) 2014-2015 NicoHood +See the readme for credit to other people. + +This file is part of Hoodloader2. + +Hoodloader2 is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Hoodloader2 is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Hoodloader2. If not, see . +*/ + +// include the standard Uno board definition file +#include "../standard/pins_arduino.h" + +//================================================================================ +// HID Settings +//================================================================================ + +// HID Project needs to be installed https://github.com/NicoHood/HID + +// pre selected hid reports with autoinclude of the api +#define HID_MOUSE_ENABLE // normal mouse with buttons + wheel +#define HID_MOUSE_ABSOLUTE_ENABLE // only works with system and without gamepad +#define HID_KEYBOARD_LEDS_ENABLE // leds OR keys +//#define HID_KEYBOARD_KEYS_ENABLE +//#define HID_RAWHID_ENABLE // currently not working +#define HID_CONSUMERCONTROL_ENABLE +#define HID_SYSTEMCONTROL_ENABLE +//#define HID_GAMEPAD_ENABLE // only works without mouse absolute \ No newline at end of file diff --git a/tools/Atmega_Board_Programmer/bootloader_atmega16u2_HoodLoader2.h b/tools/Atmega_Board_Programmer/bootloader_atmega16u2_HoodLoader2.h deleted file mode 100644 index a08f59e..0000000 --- a/tools/Atmega_Board_Programmer/bootloader_atmega16u2_HoodLoader2.h +++ /dev/null @@ -1,1074 +0,0 @@ -/* -Copyright(c) 2014-2015 NicoHood -See the readme for credit to other people. - -This file is part of Hoodloader2. - -Hoodloader2 is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -Hoodloader2 is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Hoodloader2. If not, see . -*/ - -// File = HoodLoader2_0_3_Uno_16u2.hex -// Loader start: 3000, length: 4096 -// MD5 sum = 98 57 C4 BD 40 9D 64 A3 14 19 B7 37 15 AB F9 C7 - -const byte HoodLoader2_0_3_Uno_16u2_hex[] PROGMEM = { - 0x39, 0xC0, 0x00, 0x00, 0x82, 0xC0, 0x00, 0x00, 0x80, 0xC0, 0x00, 0x00, 0x7E, 0xC0, 0x00, 0x00, - 0x7C, 0xC0, 0x00, 0x00, 0x7A, 0xC0, 0x00, 0x00, 0x78, 0xC0, 0x00, 0x00, 0x76, 0xC0, 0x00, 0x00, - 0x74, 0xC0, 0x00, 0x00, 0x72, 0xC0, 0x00, 0x00, 0x70, 0xC0, 0x00, 0x00, 0x5B, 0xC5, 0x00, 0x00, - 0x6C, 0xC0, 0x00, 0x00, 0x6A, 0xC0, 0x00, 0x00, 0x68, 0xC0, 0x00, 0x00, 0x66, 0xC0, 0x00, 0x00, - 0x64, 0xC0, 0x00, 0x00, 0x62, 0xC0, 0x00, 0x00, 0x60, 0xC0, 0x00, 0x00, 0x5E, 0xC0, 0x00, 0x00, - 0x5C, 0xC0, 0x00, 0x00, 0x5A, 0xC0, 0x00, 0x00, 0x58, 0xC0, 0x00, 0x00, 0xB5, 0xC3, 0x00, 0x00, - 0x54, 0xC0, 0x00, 0x00, 0x52, 0xC0, 0x00, 0x00, 0x50, 0xC0, 0x00, 0x00, 0x4E, 0xC0, 0x00, 0x00, - 0x4C, 0xC0, 0x00, 0x00, 0x11, 0x24, 0x1F, 0xBE, 0xCF, 0xEF, 0xD2, 0xE0, 0xDE, 0xBF, 0xCD, 0xBF, - 0x30, 0x91, 0x80, 0x02, 0x10, 0x92, 0x80, 0x02, 0x24, 0xB7, 0x14, 0xBE, 0x88, 0xE1, 0x0F, 0xB6, - 0xF8, 0x94, 0x80, 0x93, 0x60, 0x00, 0x10, 0x92, 0x60, 0x00, 0x0F, 0xBE, 0xE0, 0xE0, 0xF0, 0xE0, - 0x85, 0x91, 0x94, 0x91, 0x01, 0x96, 0xE1, 0xF0, 0x21, 0xFF, 0x12, 0xC0, 0x37, 0x37, 0xC1, 0xF0, - 0x87, 0xE7, 0x80, 0x93, 0x80, 0x02, 0x8F, 0xEF, 0x9E, 0xE9, 0x24, 0xE2, 0x81, 0x50, 0x90, 0x40, - 0x20, 0x40, 0xE1, 0xF7, 0x00, 0xC0, 0x00, 0x00, 0x10, 0x92, 0x80, 0x02, 0x1F, 0xD0, 0x08, 0xC0, - 0x20, 0xFF, 0x02, 0xC0, 0x1B, 0xD0, 0x04, 0xC0, 0x23, 0xFF, 0x02, 0xC0, 0x37, 0x37, 0xD1, 0xF7, - 0x11, 0xE0, 0xA0, 0xE0, 0xB1, 0xE0, 0xE8, 0xED, 0xFE, 0xE3, 0x02, 0xC0, 0x05, 0x90, 0x0D, 0x92, - 0xAE, 0x39, 0xB1, 0x07, 0xD9, 0xF7, 0x12, 0xE0, 0xAE, 0xE9, 0xB1, 0xE0, 0x01, 0xC0, 0x1D, 0x92, - 0xA2, 0x33, 0xB1, 0x07, 0xE1, 0xF7, 0x3B, 0xD0, 0xE5, 0xC6, 0x7A, 0xCF, 0x8B, 0xB1, 0x80, 0x63, - 0x8B, 0xB9, 0x0C, 0x94, 0x00, 0x00, 0x08, 0x95, 0x84, 0xE0, 0x80, 0x93, 0xE9, 0x00, 0x0D, 0xC0, - 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x03, 0xC0, 0x8E, 0xB3, 0x88, 0x23, - 0x59, 0xF0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFF, 0xF9, 0xCF, 0x80, 0x91, 0xE8, 0x00, 0x85, 0xFF, - 0xEF, 0xCF, 0x80, 0x91, 0xF1, 0x00, 0x08, 0x95, 0x80, 0xE0, 0x08, 0x95, 0x93, 0xE0, 0x90, 0x93, - 0xE9, 0x00, 0x90, 0x91, 0xE8, 0x00, 0x95, 0xFF, 0x03, 0xC0, 0x80, 0x93, 0xF1, 0x00, 0x08, 0x95, - 0x90, 0x91, 0xE8, 0x00, 0x9E, 0x77, 0x90, 0x93, 0xE8, 0x00, 0x03, 0xC0, 0x9E, 0xB3, 0x99, 0x23, - 0x29, 0xF0, 0x90, 0x91, 0xE8, 0x00, 0x90, 0xFF, 0xF9, 0xCF, 0xEF, 0xCF, 0x08, 0x95, 0xCF, 0x93, - 0xDF, 0x93, 0xCD, 0xB7, 0xDE, 0xB7, 0x28, 0x97, 0x0F, 0xB6, 0xF8, 0x94, 0xDE, 0xBF, 0x0F, 0xBE, - 0xCD, 0xBF, 0x90, 0xE0, 0x80, 0xE8, 0x0F, 0xB6, 0xF8, 0x94, 0x80, 0x93, 0x61, 0x00, 0x90, 0x93, - 0x61, 0x00, 0x0F, 0xBE, 0x81, 0xE0, 0x85, 0xBF, 0x82, 0xE0, 0x85, 0xBF, 0x8C, 0xD4, 0x84, 0xE0, - 0x85, 0xBD, 0x8A, 0xB1, 0x88, 0x6B, 0x8A, 0xB9, 0x8B, 0xB1, 0x84, 0x6B, 0x8B, 0xB9, 0x78, 0x94, - 0x64, 0xE0, 0x86, 0x2E, 0x13, 0xE0, 0x99, 0x24, 0x93, 0x94, 0x09, 0xE0, 0x0E, 0xC2, 0x80, 0x92, - 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFF, 0x99, 0xC1, 0x9E, 0xDF, 0x98, 0x2F, 0x80, 0x91, - 0x9E, 0x01, 0x81, 0x11, 0x13, 0xC0, 0x80, 0x91, 0xC8, 0x00, 0x85, 0xFF, 0xFC, 0xCF, 0x90, 0x93, - 0xCE, 0x00, 0x80, 0x91, 0xF2, 0x00, 0x81, 0x11, 0x05, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, - 0x80, 0x93, 0xE8, 0x00, 0x5C, 0x98, 0x10, 0x93, 0xA1, 0x01, 0x84, 0xC1, 0x95, 0x34, 0x19, 0xF4, - 0x10, 0x92, 0x00, 0x01, 0x07, 0xC0, 0x89, 0x2F, 0x88, 0x57, 0x82, 0x30, 0x10, 0xF0, 0x94, 0x35, - 0x21, 0xF4, 0x7A, 0xDF, 0x8D, 0xE0, 0x92, 0xDF, 0x75, 0xC1, 0x90, 0x35, 0xD9, 0xF3, 0x9C, 0x34, - 0x09, 0xF4, 0xF8, 0xCF, 0x94, 0x37, 0x21, 0xF4, 0x84, 0xE4, 0x88, 0xDF, 0x80, 0xE0, 0xF3, 0xCF, - 0x91, 0x36, 0x11, 0xF4, 0x89, 0xE5, 0xEF, 0xCF, 0x91, 0x34, 0xD1, 0xF4, 0x65, 0xDF, 0xF8, 0x2E, - 0x63, 0xDF, 0x90, 0xE0, 0x88, 0x0F, 0x99, 0x1F, 0xFF, 0x0C, 0xFB, 0x82, 0x1A, 0x82, 0x2A, 0x81, - 0x3B, 0x81, 0x82, 0x2B, 0x93, 0x2B, 0xAA, 0x27, 0x97, 0xFD, 0xA0, 0x95, 0xBA, 0x2F, 0x80, 0x93, - 0x23, 0x02, 0x90, 0x93, 0x24, 0x02, 0xA0, 0x93, 0x25, 0x02, 0xB0, 0x93, 0x26, 0x02, 0xD2, 0xCF, - 0x90, 0x37, 0x11, 0xF4, 0x83, 0xE5, 0xCF, 0xCF, 0x93, 0x35, 0x71, 0xF4, 0x46, 0xE9, 0xE4, 0x2E, - 0x41, 0xE0, 0xF4, 0x2E, 0xF7, 0x01, 0x81, 0x91, 0x7F, 0x01, 0x58, 0xDF, 0xFD, 0xE9, 0xEF, 0x16, - 0xF1, 0xE0, 0xFF, 0x06, 0xB9, 0xF7, 0x36, 0xC1, 0x96, 0x35, 0x21, 0xF4, 0x81, 0xE3, 0x4E, 0xDF, - 0x80, 0xE3, 0xB9, 0xCF, 0x93, 0x37, 0x31, 0xF4, 0x89, 0xE8, 0x48, 0xDF, 0x84, 0xE9, 0x46, 0xDF, - 0x8E, 0xE1, 0xB1, 0xCF, 0x95, 0x36, 0xB1, 0xF4, 0xE0, 0xE0, 0xF0, 0xE0, 0x10, 0x93, 0x57, 0x00, - 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0x25, 0xE0, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, - 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xE0, 0x58, 0xFF, 0x4F, 0xE1, 0x15, 0x30, 0xE3, 0xF3, 0x07, - 0x69, 0xF7, 0x98, 0xCF, 0x9C, 0x36, 0x49, 0xF4, 0x0F, 0xDF, 0x80, 0x95, 0xE1, 0xE0, 0xF0, 0xE0, - 0x08, 0x2E, 0x00, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x8D, 0xCF, 0x92, 0x37, 0x19, 0xF4, 0xE1, 0xE0, - 0xF0, 0xE0, 0x04, 0xC0, 0x96, 0x34, 0x31, 0xF4, 0xE0, 0xE0, 0xF0, 0xE0, 0x00, 0x93, 0x57, 0x00, - 0x84, 0x91, 0x81, 0xCF, 0x9E, 0x34, 0x19, 0xF4, 0xE3, 0xE0, 0xF0, 0xE0, 0xF7, 0xCF, 0x91, 0x35, - 0x19, 0xF4, 0xE2, 0xE0, 0xF0, 0xE0, 0xF2, 0xCF, 0x92, 0x36, 0x31, 0xF4, 0x89, 0xE5, 0x06, 0xDF, - 0x80, 0xE0, 0x04, 0xDF, 0x80, 0xE8, 0x6F, 0xCF, 0x92, 0x34, 0x19, 0xF0, 0x97, 0x36, 0x09, 0xF0, - 0xD9, 0xC0, 0x9E, 0x83, 0xE1, 0xDE, 0x78, 0x2E, 0x61, 0x2C, 0xDE, 0xDE, 0x93, 0x01, 0x28, 0x2B, - 0x38, 0x87, 0x2F, 0x83, 0xD9, 0xDE, 0x89, 0x83, 0x85, 0x54, 0x9E, 0x81, 0x82, 0x30, 0x10, 0xF0, - 0x8F, 0xE3, 0x59, 0xCF, 0x97, 0x36, 0x09, 0xF0, 0x49, 0xC0, 0x31, 0xE1, 0x30, 0x93, 0x57, 0x00, - 0xE8, 0x95, 0xA1, 0x2C, 0x3D, 0xC0, 0xC0, 0x90, 0x23, 0x02, 0xD0, 0x90, 0x24, 0x02, 0xE0, 0x90, - 0x25, 0x02, 0xF0, 0x90, 0x26, 0x02, 0x29, 0x81, 0x26, 0x34, 0xB9, 0xF4, 0xEA, 0x2D, 0xF0, 0xE0, - 0xEC, 0x29, 0xFD, 0x29, 0x84, 0x91, 0xD2, 0xDE, 0xAA, 0x20, 0x69, 0xF0, 0x32, 0xE0, 0xC3, 0x0E, - 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x23, 0x02, 0xD0, 0x92, 0x24, 0x02, 0xE0, 0x92, - 0x25, 0x02, 0xF0, 0x92, 0x26, 0x02, 0xA9, 0x24, 0x15, 0xC0, 0xD7, 0x01, 0xC6, 0x01, 0xB6, 0x95, - 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0x68, 0xD5, 0xB9, 0xDE, 0x82, 0xE0, 0xC8, 0x0E, 0xD1, 0x1C, - 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x23, 0x02, 0xD0, 0x92, 0x24, 0x02, 0xE0, 0x92, 0x25, 0x02, - 0xF0, 0x92, 0x26, 0x02, 0x2F, 0x81, 0x38, 0x85, 0x21, 0x50, 0x31, 0x09, 0x38, 0x87, 0x2F, 0x83, - 0x2F, 0x81, 0x38, 0x85, 0x23, 0x2B, 0x09, 0xF0, 0xBE, 0xCF, 0x84, 0xC0, 0x20, 0x90, 0x23, 0x02, - 0x30, 0x90, 0x24, 0x02, 0x40, 0x90, 0x25, 0x02, 0x50, 0x90, 0x26, 0x02, 0x39, 0x81, 0x36, 0x34, - 0x09, 0xF0, 0x5C, 0xC0, 0xF1, 0x01, 0x10, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, - 0xFD, 0xCF, 0x54, 0xC0, 0x29, 0x81, 0x26, 0x34, 0x41, 0xF5, 0xAA, 0x20, 0x11, 0xF1, 0xC0, 0x90, - 0x23, 0x02, 0xD0, 0x90, 0x24, 0x02, 0xE0, 0x90, 0x25, 0x02, 0xF0, 0x90, 0x26, 0x02, 0x64, 0xDE, - 0x8D, 0x83, 0x1C, 0x82, 0x2C, 0x81, 0x3D, 0x81, 0x2B, 0x29, 0xF6, 0x01, 0x09, 0x01, 0x90, 0x92, - 0x57, 0x00, 0xE8, 0x95, 0x11, 0x24, 0xF2, 0xE0, 0xCF, 0x0E, 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, - 0xC0, 0x92, 0x23, 0x02, 0xD0, 0x92, 0x24, 0x02, 0xE0, 0x92, 0x25, 0x02, 0xF0, 0x92, 0x26, 0x02, - 0x02, 0xC0, 0x4A, 0xDE, 0xB8, 0x2E, 0xA9, 0x24, 0x22, 0xC0, 0x46, 0xDE, 0x68, 0x2F, 0x80, 0x91, - 0x23, 0x02, 0x90, 0x91, 0x24, 0x02, 0xA0, 0x91, 0x25, 0x02, 0xB0, 0x91, 0x26, 0x02, 0xB6, 0x95, - 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0x08, 0xD5, 0x80, 0x91, 0x23, 0x02, 0x90, 0x91, 0x24, 0x02, - 0xA0, 0x91, 0x25, 0x02, 0xB0, 0x91, 0x26, 0x02, 0x02, 0x96, 0xA1, 0x1D, 0xB1, 0x1D, 0x80, 0x93, - 0x23, 0x02, 0x90, 0x93, 0x24, 0x02, 0xA0, 0x93, 0x25, 0x02, 0xB0, 0x93, 0x26, 0x02, 0x2F, 0x81, - 0x38, 0x85, 0x21, 0x50, 0x31, 0x09, 0x38, 0x87, 0x2F, 0x83, 0x02, 0xC0, 0xB1, 0x2C, 0xA1, 0x2C, - 0x2F, 0x81, 0x38, 0x85, 0x23, 0x2B, 0x09, 0xF0, 0xA5, 0xCF, 0x39, 0x81, 0x36, 0x34, 0x09, 0xF0, - 0x99, 0xCE, 0x25, 0xE0, 0xF1, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, - 0xFD, 0xCF, 0x90, 0xCE, 0x9B, 0x31, 0x09, 0xF0, 0x33, 0xCF, 0x04, 0xC0, 0x80, 0x91, 0x9E, 0x01, - 0x81, 0x11, 0x53, 0xC0, 0x8F, 0xB7, 0xF8, 0x94, 0xF0, 0x90, 0x9F, 0x01, 0x8F, 0xBF, 0x80, 0x91, - 0x9E, 0x01, 0x81, 0x11, 0x1D, 0xC0, 0xFF, 0x20, 0x09, 0xF4, 0x47, 0xC0, 0x5D, 0x98, 0x10, 0x93, - 0xA0, 0x01, 0x16, 0xC0, 0xE0, 0x90, 0xA2, 0x01, 0xEE, 0x2D, 0xF0, 0xE0, 0xED, 0x55, 0xFE, 0x4F, - 0x80, 0x81, 0x04, 0xDE, 0x8E, 0x2D, 0x8F, 0x5F, 0x8F, 0x77, 0x80, 0x93, 0xA2, 0x01, 0x9F, 0xB7, - 0xF8, 0x94, 0x80, 0x91, 0x9F, 0x01, 0x81, 0x50, 0x80, 0x93, 0x9F, 0x01, 0x9F, 0xBF, 0xFA, 0x94, - 0xF1, 0x10, 0xE8, 0xCF, 0x10, 0x93, 0xE9, 0x00, 0x90, 0x91, 0xE8, 0x00, 0x80, 0x91, 0xE8, 0x00, - 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x95, 0xFD, 0x11, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFD, - 0x04, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, 0x0D, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, - 0x80, 0x93, 0xE8, 0x00, 0x03, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x21, 0xF0, 0x80, 0x91, 0xE8, 0x00, - 0x80, 0xFF, 0xF9, 0xCF, 0x80, 0x91, 0x9E, 0x01, 0x88, 0x23, 0x39, 0xF0, 0x80, 0x92, 0xE9, 0x00, - 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, 0xA8, 0x9B, 0x15, 0xC0, 0xA8, 0x9A, - 0x80, 0x91, 0xA0, 0x01, 0x88, 0x23, 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, 0xA0, 0x01, 0x81, 0x11, - 0x01, 0xC0, 0x5D, 0x9A, 0x80, 0x91, 0xA1, 0x01, 0x88, 0x23, 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, - 0xA1, 0x01, 0x81, 0x11, 0x01, 0xC0, 0x5C, 0x9A, 0x22, 0xD4, 0x80, 0x91, 0x00, 0x01, 0x81, 0x11, - 0xEE, 0xCD, 0x80, 0x91, 0xE0, 0x00, 0x81, 0x60, 0x80, 0x93, 0xE0, 0x00, 0x2C, 0xE0, 0x88, 0xE1, - 0x90, 0xE0, 0x0F, 0xB6, 0xF8, 0x94, 0xA8, 0x95, 0x80, 0x93, 0x60, 0x00, 0x0F, 0xBE, 0x20, 0x93, - 0x60, 0x00, 0xFF, 0xCF, 0x42, 0xE0, 0x61, 0xEC, 0x82, 0xE0, 0xEE, 0xD1, 0x42, 0xE3, 0x61, 0xE8, - 0x83, 0xE0, 0xEA, 0xD1, 0x42, 0xE3, 0x60, 0xE8, 0x84, 0xE0, 0xE6, 0xC1, 0xCF, 0x93, 0x80, 0x91, - 0x2A, 0x02, 0x98, 0x2F, 0x9F, 0x77, 0x91, 0x32, 0x09, 0xF0, 0xC4, 0xC0, 0x90, 0x91, 0x2B, 0x02, - 0x91, 0x32, 0x39, 0xF0, 0x92, 0x32, 0x09, 0xF4, 0xAA, 0xC0, 0x90, 0x32, 0x09, 0xF0, 0xBA, 0xC0, - 0x13, 0xC0, 0x81, 0x3A, 0x09, 0xF0, 0xB6, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, - 0xE8, 0x00, 0x67, 0xE0, 0x70, 0xE0, 0x81, 0xE0, 0x91, 0xE0, 0x64, 0xD1, 0x80, 0x91, 0xE8, 0x00, - 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, 0xA6, 0xC0, 0x81, 0x32, 0x09, 0xF0, 0xA3, 0xC0, 0x80, 0x91, - 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x27, 0xE0, 0x81, 0xE0, 0x91, 0xE0, 0x3E, 0xB3, - 0x33, 0x23, 0x39, 0xF1, 0x35, 0x30, 0x29, 0xF1, 0x30, 0x91, 0xE8, 0x00, 0x33, 0xFD, 0x21, 0xC0, - 0x30, 0x91, 0xE8, 0x00, 0x32, 0xFF, 0xF3, 0xCF, 0xFC, 0x01, 0x06, 0xC0, 0x80, 0x91, 0xF1, 0x00, - 0x81, 0x93, 0xCF, 0x01, 0x21, 0x50, 0x29, 0xF0, 0xCF, 0x01, 0x30, 0x91, 0xF2, 0x00, 0x31, 0x11, - 0xF5, 0xCF, 0x30, 0x91, 0xE8, 0x00, 0x3B, 0x77, 0x30, 0x93, 0xE8, 0x00, 0x21, 0x11, 0xDF, 0xCF, - 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFD, 0x05, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x11, 0xF0, 0x85, 0x30, - 0xB9, 0xF7, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x20, 0x91, 0x01, 0x01, - 0x30, 0x91, 0x02, 0x01, 0x40, 0x91, 0x03, 0x01, 0x50, 0x91, 0x04, 0x01, 0x21, 0x15, 0x81, 0xEE, - 0x38, 0x07, 0x41, 0x05, 0x51, 0x05, 0x21, 0xF4, 0x81, 0xE0, 0x80, 0x93, 0x9E, 0x01, 0x02, 0xC0, - 0x10, 0x92, 0x9E, 0x01, 0x10, 0x92, 0x9F, 0x01, 0x10, 0x92, 0xA2, 0x01, 0x10, 0x92, 0x27, 0x02, - 0xE0, 0x91, 0x06, 0x01, 0xE1, 0x50, 0xE2, 0x30, 0x28, 0xF4, 0xF0, 0xE0, 0xE6, 0x5F, 0xFE, 0x4F, - 0xC0, 0x81, 0x01, 0xC0, 0xC0, 0xE0, 0x80, 0x91, 0x05, 0x01, 0x82, 0x30, 0x09, 0xF4, 0xC8, 0x60, - 0x80, 0x91, 0x07, 0x01, 0x87, 0x30, 0x31, 0xF0, 0x88, 0x30, 0x31, 0xF0, 0x86, 0x30, 0x29, 0xF4, - 0xC2, 0x60, 0x03, 0xC0, 0xC4, 0x60, 0x01, 0xC0, 0xC6, 0x60, 0x5B, 0x9A, 0x10, 0x92, 0xC9, 0x00, - 0x10, 0x92, 0xC8, 0x00, 0x10, 0x92, 0xCA, 0x00, 0xCA, 0x01, 0xB9, 0x01, 0x96, 0x95, 0x87, 0x95, - 0x77, 0x95, 0x67, 0x95, 0x60, 0x58, 0x7B, 0x47, 0x81, 0x4E, 0x9F, 0x4F, 0x73, 0xD3, 0x21, 0x50, - 0x31, 0x09, 0x30, 0x93, 0xCD, 0x00, 0x20, 0x93, 0xCC, 0x00, 0xC0, 0x93, 0xCA, 0x00, 0x82, 0xE0, - 0x80, 0x93, 0xC8, 0x00, 0x88, 0xE9, 0x80, 0x93, 0xC9, 0x00, 0x5B, 0x98, 0x13, 0xC0, 0x81, 0x32, - 0x89, 0xF4, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x39, 0xD1, 0x80, 0x91, - 0x9E, 0x01, 0x81, 0x11, 0x06, 0xC0, 0x80, 0x91, 0x2C, 0x02, 0x80, 0xFF, 0x02, 0xC0, 0x5F, 0x98, - 0x01, 0xC0, 0x5F, 0x9A, 0xCF, 0x91, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, 0x0F, 0x92, - 0x11, 0x24, 0x8F, 0x93, 0x9F, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x90, 0x91, 0xCE, 0x00, 0x80, 0x91, - 0x9E, 0x01, 0x81, 0x11, 0x17, 0xC0, 0x8E, 0xB3, 0x84, 0x30, 0xA1, 0xF4, 0x80, 0x91, 0x9F, 0x01, - 0x81, 0x38, 0x80, 0xF4, 0x80, 0x91, 0x27, 0x02, 0xE8, 0x2F, 0xF0, 0xE0, 0xED, 0x55, 0xFE, 0x4F, - 0x90, 0x83, 0x8F, 0x5F, 0x8F, 0x77, 0x80, 0x93, 0x27, 0x02, 0x80, 0x91, 0x9F, 0x01, 0x8F, 0x5F, - 0x80, 0x93, 0x9F, 0x01, 0xFF, 0x91, 0xEF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, - 0x0F, 0x90, 0x1F, 0x90, 0x18, 0x95, 0x29, 0x2F, 0x30, 0xE0, 0x33, 0x27, 0x22, 0x30, 0x31, 0x05, - 0x39, 0xF0, 0x23, 0x30, 0x31, 0x05, 0x49, 0xF0, 0x21, 0x30, 0x31, 0x05, 0x89, 0xF0, 0x0B, 0xC0, - 0x2E, 0xE3, 0x30, 0xE0, 0x86, 0xE4, 0x91, 0xE0, 0x1E, 0xC0, 0x88, 0x23, 0x71, 0xF0, 0x81, 0x30, - 0x89, 0xF0, 0x82, 0x30, 0xA1, 0xF0, 0x20, 0xE0, 0x30, 0xE0, 0x80, 0xE0, 0x90, 0xE0, 0x13, 0xC0, - 0x22, 0xE1, 0x30, 0xE0, 0x84, 0xE8, 0x91, 0xE0, 0x0E, 0xC0, 0x24, 0xE0, 0x30, 0xE0, 0x82, 0xE4, - 0x91, 0xE0, 0x09, 0xC0, 0x22, 0xE1, 0x30, 0xE0, 0x8E, 0xE2, 0x91, 0xE0, 0x04, 0xC0, 0x20, 0xE2, - 0x30, 0xE0, 0x8C, 0xE0, 0x91, 0xE0, 0xFA, 0x01, 0x91, 0x83, 0x80, 0x83, 0xC9, 0x01, 0x08, 0x95, - 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, 0x23, 0xE0, 0xFB, 0x01, 0x20, 0x93, - 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, - 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, 0x25, 0xE0, - 0xFB, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0x81, 0xE1, - 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, - 0xFE, 0xCF, 0x21, 0xE0, 0xFB, 0x01, 0x0A, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x11, 0x24, - 0x08, 0x95, 0x21, 0xE2, 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, 0x29, 0xE0, - 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, 0xE1, 0xE0, 0xF0, 0xE0, 0x89, 0xE0, - 0x80, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, - 0xFE, 0xCF, 0x80, 0x95, 0x99, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x08, 0x2E, 0x90, 0x93, 0x57, 0x00, - 0xE8, 0x95, 0x08, 0x95, 0x20, 0x91, 0x30, 0x02, 0x30, 0x91, 0x31, 0x02, 0x26, 0x17, 0x37, 0x07, - 0x48, 0xF0, 0x61, 0x15, 0x71, 0x05, 0x39, 0xF4, 0x20, 0x91, 0xE8, 0x00, 0x2E, 0x77, 0x20, 0x93, - 0xE8, 0x00, 0x01, 0xC0, 0xB9, 0x01, 0x9C, 0x01, 0x80, 0xE0, 0x33, 0xC0, 0x9E, 0xB3, 0x99, 0x23, - 0x09, 0xF4, 0x44, 0xC0, 0x95, 0x30, 0x09, 0xF4, 0x43, 0xC0, 0x90, 0x91, 0xE8, 0x00, 0x93, 0xFD, - 0x41, 0xC0, 0x90, 0x91, 0xE8, 0x00, 0x92, 0xFD, 0x33, 0xC0, 0x90, 0x91, 0xE8, 0x00, 0x90, 0xFF, - 0x20, 0xC0, 0x80, 0x91, 0xF2, 0x00, 0x90, 0xE0, 0xF9, 0x01, 0x82, 0x1B, 0x93, 0x0B, 0x05, 0xC0, - 0x21, 0x91, 0x20, 0x93, 0xF1, 0x00, 0x61, 0x50, 0x71, 0x09, 0x9F, 0x01, 0x28, 0x0F, 0x39, 0x1F, - 0x61, 0x15, 0x71, 0x05, 0x19, 0xF0, 0x28, 0x30, 0x31, 0x05, 0x90, 0xF3, 0x81, 0xE0, 0x28, 0x30, - 0x31, 0x05, 0x09, 0xF0, 0x80, 0xE0, 0x90, 0x91, 0xE8, 0x00, 0x9E, 0x77, 0x90, 0x93, 0xE8, 0x00, - 0x9F, 0x01, 0x61, 0x15, 0x71, 0x05, 0x51, 0xF6, 0x81, 0x11, 0xC8, 0xCF, 0x09, 0xC0, 0x8E, 0xB3, - 0x88, 0x23, 0x61, 0xF0, 0x85, 0x30, 0x61, 0xF0, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFD, 0x0A, 0xC0, - 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFF, 0xF3, 0xCF, 0x80, 0xE0, 0x08, 0x95, 0x82, 0xE0, 0x08, 0x95, - 0x83, 0xE0, 0x08, 0x95, 0x81, 0xE0, 0x08, 0x95, 0x8F, 0x70, 0x80, 0x93, 0xE9, 0x00, 0xEB, 0xEE, - 0xF0, 0xE0, 0x80, 0x81, 0x81, 0x60, 0x80, 0x83, 0xED, 0xEE, 0xF0, 0xE0, 0x10, 0x82, 0x60, 0x93, - 0xEC, 0x00, 0x40, 0x83, 0x80, 0x91, 0xEE, 0x00, 0x88, 0x1F, 0x88, 0x27, 0x88, 0x1F, 0x08, 0x95, - 0x80, 0x91, 0x2A, 0x02, 0x87, 0xFD, 0x05, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0x0D, 0xC0, - 0x10, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFD, 0x04, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, - 0x08, 0x95, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x07, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xEC, 0xCF, - 0x08, 0x95, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x08, 0x95, 0x3C, 0xD0, - 0x3E, 0xD0, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x77, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, - 0x80, 0x68, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x7D, 0x80, 0x93, 0xD8, 0x00, - 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, 0x89, 0xBD, 0x09, 0xB4, 0x00, 0xFE, 0xFD, 0xCF, 0x1E, 0xBA, - 0x10, 0x92, 0x28, 0x02, 0x42, 0xE0, 0x60, 0xE0, 0x80, 0xE0, 0xAE, 0xDF, 0x80, 0x91, 0xE1, 0x00, - 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, - 0x80, 0x91, 0xE2, 0x00, 0x88, 0x60, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE0, 0x00, 0x8E, 0x7F, - 0x80, 0x93, 0xE0, 0x00, 0x08, 0x95, 0xE3, 0xE6, 0xF0, 0xE0, 0x80, 0x81, 0x8E, 0x7F, 0x80, 0x83, - 0x81, 0xE0, 0x80, 0x93, 0x29, 0x02, 0xC3, 0xCF, 0x10, 0x92, 0xE2, 0x00, 0x08, 0x95, 0x10, 0x92, - 0xE1, 0x00, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, 0x0F, 0x92, 0x11, 0x24, 0x2F, 0x93, - 0x3F, 0x93, 0x4F, 0x93, 0x5F, 0x93, 0x6F, 0x93, 0x7F, 0x93, 0x8F, 0x93, 0x9F, 0x93, 0xAF, 0x93, - 0xBF, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x80, 0x91, 0xE1, 0x00, 0x80, 0xFF, 0x16, 0xC0, 0x80, 0x91, - 0xE2, 0x00, 0x80, 0xFF, 0x12, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE2, 0x00, - 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xD8, 0x00, 0x80, 0x62, - 0x80, 0x93, 0xD8, 0x00, 0x19, 0xBC, 0x1E, 0xBA, 0x79, 0xD1, 0x80, 0x91, 0xE1, 0x00, 0x84, 0xFF, - 0x2E, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x84, 0xFF, 0x2A, 0xC0, 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, - 0x89, 0xBD, 0x09, 0xB4, 0x00, 0xFE, 0xFD, 0xCF, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x7D, 0x80, 0x93, - 0xD8, 0x00, 0x80, 0x91, 0xE1, 0x00, 0x8F, 0x7E, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, - 0x8F, 0x7E, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, - 0x80, 0x91, 0x28, 0x02, 0x88, 0x23, 0x11, 0xF0, 0x84, 0xE0, 0x07, 0xC0, 0x80, 0x91, 0xE3, 0x00, - 0x87, 0xFF, 0x02, 0xC0, 0x83, 0xE0, 0x01, 0xC0, 0x81, 0xE0, 0x8E, 0xBB, 0x47, 0xD1, 0x80, 0x91, - 0xE1, 0x00, 0x83, 0xFF, 0x21, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x83, 0xFF, 0x1D, 0xC0, 0x80, 0x91, - 0xE1, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x82, 0xE0, 0x8E, 0xBB, 0x10, 0x92, 0x28, 0x02, - 0x80, 0x91, 0xE1, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x8E, 0x7F, - 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, 0x80, 0x93, 0xE2, 0x00, 0x42, 0xE0, - 0x60, 0xE0, 0x80, 0xE0, 0x09, 0xDF, 0x22, 0xD1, 0xFF, 0x91, 0xEF, 0x91, 0xBF, 0x91, 0xAF, 0x91, - 0x9F, 0x91, 0x8F, 0x91, 0x7F, 0x91, 0x6F, 0x91, 0x5F, 0x91, 0x4F, 0x91, 0x3F, 0x91, 0x2F, 0x91, - 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, 0x18, 0x95, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, - 0x00, 0xD0, 0xCD, 0xB7, 0xDE, 0xB7, 0xEA, 0xE2, 0xF2, 0xE0, 0x80, 0x91, 0xF1, 0x00, 0x81, 0x93, - 0x82, 0xE0, 0xE2, 0x33, 0xF8, 0x07, 0xC9, 0xF7, 0x01, 0xDD, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFF, - 0xE9, 0xC0, 0x80, 0x91, 0x2A, 0x02, 0x90, 0x91, 0x2B, 0x02, 0x95, 0x30, 0x09, 0xF4, 0x70, 0xC0, - 0x38, 0xF4, 0x91, 0x30, 0x79, 0xF1, 0x70, 0xF0, 0x93, 0x30, 0x09, 0xF0, 0xDB, 0xC0, 0x2A, 0xC0, - 0x98, 0x30, 0x09, 0xF4, 0xAA, 0xC0, 0x99, 0x30, 0x09, 0xF4, 0xB9, 0xC0, 0x96, 0x30, 0x09, 0xF0, - 0xD1, 0xC0, 0x83, 0xC0, 0x80, 0x38, 0x99, 0xF0, 0x82, 0x38, 0x09, 0xF0, 0xCB, 0xC0, 0x80, 0x91, - 0x2E, 0x02, 0x90, 0x91, 0x2F, 0x02, 0x8F, 0x70, 0x99, 0x27, 0x80, 0x93, 0xE9, 0x00, 0x90, 0x91, - 0xEB, 0x00, 0x95, 0xFB, 0x99, 0x27, 0x90, 0xF9, 0x10, 0x92, 0xE9, 0x00, 0x01, 0xC0, 0x90, 0xE0, - 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x90, 0x93, 0xF1, 0x00, 0x10, 0x92, - 0xF1, 0x00, 0x8E, 0xC0, 0x88, 0x23, 0x19, 0xF0, 0x82, 0x30, 0x09, 0xF0, 0xAB, 0xC0, 0x8F, 0x71, - 0x82, 0x30, 0x09, 0xF0, 0xA7, 0xC0, 0x80, 0x91, 0x2C, 0x02, 0x81, 0x11, 0x2B, 0xC0, 0x80, 0x91, - 0x2E, 0x02, 0x90, 0x91, 0x2F, 0x02, 0x8F, 0x70, 0x99, 0x27, 0x00, 0x97, 0x09, 0xF4, 0x9A, 0xC0, - 0x80, 0x93, 0xE9, 0x00, 0x20, 0x91, 0xEB, 0x00, 0x20, 0xFF, 0x1C, 0xC0, 0x20, 0x91, 0x2B, 0x02, - 0x23, 0x30, 0x21, 0xF4, 0x80, 0x91, 0xEB, 0x00, 0x80, 0x62, 0x12, 0xC0, 0x90, 0x91, 0xEB, 0x00, - 0x90, 0x61, 0x90, 0x93, 0xEB, 0x00, 0x21, 0xE0, 0x30, 0xE0, 0x01, 0xC0, 0x22, 0x0F, 0x8A, 0x95, - 0xEA, 0xF7, 0x20, 0x93, 0xEA, 0x00, 0x10, 0x92, 0xEA, 0x00, 0x80, 0x91, 0xEB, 0x00, 0x88, 0x60, - 0x80, 0x93, 0xEB, 0x00, 0x10, 0x92, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x53, 0xC0, - 0x81, 0x11, 0x70, 0xC0, 0x80, 0x91, 0x2C, 0x02, 0x90, 0x91, 0x2D, 0x02, 0x8F, 0x77, 0x99, 0x27, - 0x18, 0x2F, 0x90, 0x91, 0xE3, 0x00, 0x90, 0x78, 0x98, 0x2B, 0x90, 0x93, 0xE3, 0x00, 0x80, 0x91, - 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x6B, 0xDE, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, - 0xFC, 0xCF, 0x80, 0x91, 0xE3, 0x00, 0x80, 0x68, 0x80, 0x93, 0xE3, 0x00, 0x11, 0x23, 0x11, 0xF0, - 0x83, 0xE0, 0x01, 0xC0, 0x82, 0xE0, 0x8E, 0xBB, 0x4D, 0xC0, 0x80, 0x58, 0x82, 0x30, 0x08, 0xF0, - 0x49, 0xC0, 0xAE, 0x01, 0x4F, 0x5F, 0x5F, 0x4F, 0x60, 0x91, 0x2E, 0x02, 0x80, 0x91, 0x2C, 0x02, - 0x90, 0x91, 0x2D, 0x02, 0x50, 0xDD, 0x00, 0x97, 0x09, 0xF4, 0x3C, 0xC0, 0x20, 0x91, 0xE8, 0x00, - 0x27, 0x7F, 0x20, 0x93, 0xE8, 0x00, 0xBC, 0x01, 0x89, 0x81, 0x9A, 0x81, 0xCB, 0xDD, 0x80, 0x91, - 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x2D, 0xC0, 0x80, 0x38, 0x59, 0xF5, 0x80, 0x91, - 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x80, 0x91, 0x28, 0x02, 0x80, 0x93, 0xF1, 0x00, - 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x2A, 0xDE, 0x1B, 0xC0, 0x81, 0x11, - 0x19, 0xC0, 0x90, 0x91, 0x2C, 0x02, 0x92, 0x30, 0xA8, 0xF4, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, - 0x80, 0x93, 0xE8, 0x00, 0x90, 0x93, 0x28, 0x02, 0x1B, 0xDE, 0x80, 0x91, 0x28, 0x02, 0x81, 0x11, - 0x04, 0xC0, 0x80, 0x91, 0xE3, 0x00, 0x87, 0xFF, 0x02, 0xC0, 0x84, 0xE0, 0x01, 0xC0, 0x81, 0xE0, - 0x8E, 0xBB, 0x08, 0xDC, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFF, 0x0A, 0xC0, 0x80, 0x91, 0xE8, 0x00, - 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x80, 0x91, 0xEB, 0x00, 0x80, 0x62, 0x80, 0x93, 0xEB, 0x00, - 0x0F, 0x90, 0x0F, 0x90, 0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, 0x08, 0x95, 0x08, 0x95, 0xCF, 0x93, - 0x8E, 0xB3, 0x88, 0x23, 0xA9, 0xF0, 0x80, 0x91, 0xE9, 0x00, 0x8F, 0x70, 0x90, 0x91, 0xEC, 0x00, - 0x90, 0xFF, 0x02, 0xC0, 0x90, 0xE8, 0x01, 0xC0, 0x90, 0xE0, 0xC9, 0x2F, 0xC8, 0x2B, 0x10, 0x92, - 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFD, 0xD8, 0xDE, 0xCF, 0x70, 0xC0, 0x93, 0xE9, 0x00, - 0xCF, 0x91, 0x08, 0x95, 0xA1, 0xE2, 0x1A, 0x2E, 0xAA, 0x1B, 0xBB, 0x1B, 0xFD, 0x01, 0x0D, 0xC0, - 0xAA, 0x1F, 0xBB, 0x1F, 0xEE, 0x1F, 0xFF, 0x1F, 0xA2, 0x17, 0xB3, 0x07, 0xE4, 0x07, 0xF5, 0x07, - 0x20, 0xF0, 0xA2, 0x1B, 0xB3, 0x0B, 0xE4, 0x0B, 0xF5, 0x0B, 0x66, 0x1F, 0x77, 0x1F, 0x88, 0x1F, - 0x99, 0x1F, 0x1A, 0x94, 0x69, 0xF7, 0x60, 0x95, 0x70, 0x95, 0x80, 0x95, 0x90, 0x95, 0x9B, 0x01, - 0xAC, 0x01, 0xBD, 0x01, 0xCF, 0x01, 0x08, 0x95, 0xF9, 0x99, 0xFE, 0xCF, 0x92, 0xBD, 0x81, 0xBD, - 0xF8, 0x9A, 0x99, 0x27, 0x80, 0xB5, 0x08, 0x95, 0x26, 0x2F, 0xF9, 0x99, 0xFE, 0xCF, 0x1F, 0xBA, - 0x92, 0xBD, 0x81, 0xBD, 0x20, 0xBD, 0x0F, 0xB6, 0xF8, 0x94, 0xFA, 0x9A, 0xF9, 0x9A, 0x0F, 0xBE, - 0x01, 0x96, 0x08, 0x95, 0xF8, 0x94, 0xFF, 0xCF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, - 0x80, 0x02, 0x30, 0x20, 0x20, 0x03, 0x48, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x4C, 0x00, - 0x6F, 0x00, 0x61, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x32, 0x00, 0x20, 0x00, 0x55, 0x00, - 0x6E, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x12, 0x03, 0x4E, 0x00, 0x69, 0x00, 0x63, 0x00, 0x6F, 0x00, - 0x48, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x00, 0x00, 0x04, 0x03, 0x09, 0x04, 0x09, 0x02, - 0x3E, 0x00, 0x02, 0x01, 0x00, 0x80, 0x32, 0x09, 0x04, 0x00, 0x00, 0x01, 0x02, 0x02, 0x01, 0x00, - 0x05, 0x24, 0x00, 0x10, 0x01, 0x04, 0x24, 0x02, 0x02, 0x05, 0x24, 0x06, 0x00, 0x01, 0x07, 0x05, - 0x82, 0x03, 0x08, 0x00, 0xFF, 0x09, 0x04, 0x01, 0x00, 0x02, 0x0A, 0x00, 0x00, 0x00, 0x07, 0x05, - 0x04, 0x02, 0x40, 0x00, 0x05, 0x07, 0x05, 0x83, 0x02, 0x40, 0x00, 0x05, 0x12, 0x01, 0x10, 0x01, - 0x02, 0x00, 0x00, 0x08, 0x41, 0x23, 0x43, 0x00, 0x03, 0x02, 0x01, 0x02, 0x00, 0x01, 0x48, 0x4C, - 0x32, 0x2E, 0x30, 0x2E, 0x33, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x77, 0xCC, 0x88, 0xCC, 0x99, 0xCC, 0xA5, 0xCC, 0xAA, 0xCC, 0xAF, 0xCC, 0xB5, 0xCC, 0x08, 0x95, - 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, - 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0x00, 0x30, 0x00, 0x00, 0x00, 0xDF, 0xFB, 0xDC, -}; // end of HoodLoader2_0_3_Uno_16u2_hex - - -// File = HoodLoader2_0_3_Mega_16u2.hex -// Loader start: 3000, length: 4096 -// MD5 sum = 00 79 6B B7 A6 31 D9 DC F0 8B 41 D4 28 61 50 FA - -const byte HoodLoader2_0_3_Mega_16u2_hex[] PROGMEM = { - 0x39, 0xC0, 0x00, 0x00, 0x82, 0xC0, 0x00, 0x00, 0x80, 0xC0, 0x00, 0x00, 0x7E, 0xC0, 0x00, 0x00, - 0x7C, 0xC0, 0x00, 0x00, 0x7A, 0xC0, 0x00, 0x00, 0x78, 0xC0, 0x00, 0x00, 0x76, 0xC0, 0x00, 0x00, - 0x74, 0xC0, 0x00, 0x00, 0x72, 0xC0, 0x00, 0x00, 0x70, 0xC0, 0x00, 0x00, 0x5B, 0xC5, 0x00, 0x00, - 0x6C, 0xC0, 0x00, 0x00, 0x6A, 0xC0, 0x00, 0x00, 0x68, 0xC0, 0x00, 0x00, 0x66, 0xC0, 0x00, 0x00, - 0x64, 0xC0, 0x00, 0x00, 0x62, 0xC0, 0x00, 0x00, 0x60, 0xC0, 0x00, 0x00, 0x5E, 0xC0, 0x00, 0x00, - 0x5C, 0xC0, 0x00, 0x00, 0x5A, 0xC0, 0x00, 0x00, 0x58, 0xC0, 0x00, 0x00, 0xB5, 0xC3, 0x00, 0x00, - 0x54, 0xC0, 0x00, 0x00, 0x52, 0xC0, 0x00, 0x00, 0x50, 0xC0, 0x00, 0x00, 0x4E, 0xC0, 0x00, 0x00, - 0x4C, 0xC0, 0x00, 0x00, 0x11, 0x24, 0x1F, 0xBE, 0xCF, 0xEF, 0xD2, 0xE0, 0xDE, 0xBF, 0xCD, 0xBF, - 0x30, 0x91, 0x80, 0x02, 0x10, 0x92, 0x80, 0x02, 0x24, 0xB7, 0x14, 0xBE, 0x88, 0xE1, 0x0F, 0xB6, - 0xF8, 0x94, 0x80, 0x93, 0x60, 0x00, 0x10, 0x92, 0x60, 0x00, 0x0F, 0xBE, 0xE0, 0xE0, 0xF0, 0xE0, - 0x85, 0x91, 0x94, 0x91, 0x01, 0x96, 0xE1, 0xF0, 0x21, 0xFF, 0x12, 0xC0, 0x37, 0x37, 0xC1, 0xF0, - 0x87, 0xE7, 0x80, 0x93, 0x80, 0x02, 0x8F, 0xEF, 0x9E, 0xE9, 0x24, 0xE2, 0x81, 0x50, 0x90, 0x40, - 0x20, 0x40, 0xE1, 0xF7, 0x00, 0xC0, 0x00, 0x00, 0x10, 0x92, 0x80, 0x02, 0x1F, 0xD0, 0x08, 0xC0, - 0x20, 0xFF, 0x02, 0xC0, 0x1B, 0xD0, 0x04, 0xC0, 0x23, 0xFF, 0x02, 0xC0, 0x37, 0x37, 0xD1, 0xF7, - 0x11, 0xE0, 0xA0, 0xE0, 0xB1, 0xE0, 0xE8, 0xED, 0xFE, 0xE3, 0x02, 0xC0, 0x05, 0x90, 0x0D, 0x92, - 0xA0, 0x3A, 0xB1, 0x07, 0xD9, 0xF7, 0x12, 0xE0, 0xA0, 0xEA, 0xB1, 0xE0, 0x01, 0xC0, 0x1D, 0x92, - 0xA4, 0x33, 0xB1, 0x07, 0xE1, 0xF7, 0x3B, 0xD0, 0xE5, 0xC6, 0x7A, 0xCF, 0x8B, 0xB1, 0x80, 0x63, - 0x8B, 0xB9, 0x0C, 0x94, 0x00, 0x00, 0x08, 0x95, 0x84, 0xE0, 0x80, 0x93, 0xE9, 0x00, 0x0D, 0xC0, - 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x03, 0xC0, 0x8E, 0xB3, 0x88, 0x23, - 0x59, 0xF0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFF, 0xF9, 0xCF, 0x80, 0x91, 0xE8, 0x00, 0x85, 0xFF, - 0xEF, 0xCF, 0x80, 0x91, 0xF1, 0x00, 0x08, 0x95, 0x80, 0xE0, 0x08, 0x95, 0x93, 0xE0, 0x90, 0x93, - 0xE9, 0x00, 0x90, 0x91, 0xE8, 0x00, 0x95, 0xFF, 0x03, 0xC0, 0x80, 0x93, 0xF1, 0x00, 0x08, 0x95, - 0x90, 0x91, 0xE8, 0x00, 0x9E, 0x77, 0x90, 0x93, 0xE8, 0x00, 0x03, 0xC0, 0x9E, 0xB3, 0x99, 0x23, - 0x29, 0xF0, 0x90, 0x91, 0xE8, 0x00, 0x90, 0xFF, 0xF9, 0xCF, 0xEF, 0xCF, 0x08, 0x95, 0xCF, 0x93, - 0xDF, 0x93, 0xCD, 0xB7, 0xDE, 0xB7, 0x28, 0x97, 0x0F, 0xB6, 0xF8, 0x94, 0xDE, 0xBF, 0x0F, 0xBE, - 0xCD, 0xBF, 0x90, 0xE0, 0x80, 0xE8, 0x0F, 0xB6, 0xF8, 0x94, 0x80, 0x93, 0x61, 0x00, 0x90, 0x93, - 0x61, 0x00, 0x0F, 0xBE, 0x81, 0xE0, 0x85, 0xBF, 0x82, 0xE0, 0x85, 0xBF, 0x8C, 0xD4, 0x84, 0xE0, - 0x85, 0xBD, 0x8A, 0xB1, 0x88, 0x6B, 0x8A, 0xB9, 0x8B, 0xB1, 0x84, 0x6B, 0x8B, 0xB9, 0x78, 0x94, - 0x64, 0xE0, 0x86, 0x2E, 0x13, 0xE0, 0x99, 0x24, 0x93, 0x94, 0x09, 0xE0, 0x0E, 0xC2, 0x80, 0x92, - 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFF, 0x99, 0xC1, 0x9E, 0xDF, 0x98, 0x2F, 0x80, 0x91, - 0xA0, 0x01, 0x81, 0x11, 0x13, 0xC0, 0x80, 0x91, 0xC8, 0x00, 0x85, 0xFF, 0xFC, 0xCF, 0x90, 0x93, - 0xCE, 0x00, 0x80, 0x91, 0xF2, 0x00, 0x81, 0x11, 0x05, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, - 0x80, 0x93, 0xE8, 0x00, 0x5C, 0x98, 0x10, 0x93, 0xA3, 0x01, 0x84, 0xC1, 0x95, 0x34, 0x19, 0xF4, - 0x10, 0x92, 0x00, 0x01, 0x07, 0xC0, 0x89, 0x2F, 0x88, 0x57, 0x82, 0x30, 0x10, 0xF0, 0x94, 0x35, - 0x21, 0xF4, 0x7A, 0xDF, 0x8D, 0xE0, 0x92, 0xDF, 0x75, 0xC1, 0x90, 0x35, 0xD9, 0xF3, 0x9C, 0x34, - 0x09, 0xF4, 0xF8, 0xCF, 0x94, 0x37, 0x21, 0xF4, 0x84, 0xE4, 0x88, 0xDF, 0x80, 0xE0, 0xF3, 0xCF, - 0x91, 0x36, 0x11, 0xF4, 0x89, 0xE5, 0xEF, 0xCF, 0x91, 0x34, 0xD1, 0xF4, 0x65, 0xDF, 0xF8, 0x2E, - 0x63, 0xDF, 0x90, 0xE0, 0x88, 0x0F, 0x99, 0x1F, 0xFF, 0x0C, 0xFB, 0x82, 0x1A, 0x82, 0x2A, 0x81, - 0x3B, 0x81, 0x82, 0x2B, 0x93, 0x2B, 0xAA, 0x27, 0x97, 0xFD, 0xA0, 0x95, 0xBA, 0x2F, 0x80, 0x93, - 0x25, 0x02, 0x90, 0x93, 0x26, 0x02, 0xA0, 0x93, 0x27, 0x02, 0xB0, 0x93, 0x28, 0x02, 0xD2, 0xCF, - 0x90, 0x37, 0x11, 0xF4, 0x83, 0xE5, 0xCF, 0xCF, 0x93, 0x35, 0x71, 0xF4, 0x48, 0xE9, 0xE4, 0x2E, - 0x41, 0xE0, 0xF4, 0x2E, 0xF7, 0x01, 0x81, 0x91, 0x7F, 0x01, 0x58, 0xDF, 0xFF, 0xE9, 0xEF, 0x16, - 0xF1, 0xE0, 0xFF, 0x06, 0xB9, 0xF7, 0x36, 0xC1, 0x96, 0x35, 0x21, 0xF4, 0x81, 0xE3, 0x4E, 0xDF, - 0x80, 0xE3, 0xB9, 0xCF, 0x93, 0x37, 0x31, 0xF4, 0x89, 0xE8, 0x48, 0xDF, 0x84, 0xE9, 0x46, 0xDF, - 0x8E, 0xE1, 0xB1, 0xCF, 0x95, 0x36, 0xB1, 0xF4, 0xE0, 0xE0, 0xF0, 0xE0, 0x10, 0x93, 0x57, 0x00, - 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0x25, 0xE0, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, - 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xE0, 0x58, 0xFF, 0x4F, 0xE1, 0x15, 0x30, 0xE3, 0xF3, 0x07, - 0x69, 0xF7, 0x98, 0xCF, 0x9C, 0x36, 0x49, 0xF4, 0x0F, 0xDF, 0x80, 0x95, 0xE1, 0xE0, 0xF0, 0xE0, - 0x08, 0x2E, 0x00, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x8D, 0xCF, 0x92, 0x37, 0x19, 0xF4, 0xE1, 0xE0, - 0xF0, 0xE0, 0x04, 0xC0, 0x96, 0x34, 0x31, 0xF4, 0xE0, 0xE0, 0xF0, 0xE0, 0x00, 0x93, 0x57, 0x00, - 0x84, 0x91, 0x81, 0xCF, 0x9E, 0x34, 0x19, 0xF4, 0xE3, 0xE0, 0xF0, 0xE0, 0xF7, 0xCF, 0x91, 0x35, - 0x19, 0xF4, 0xE2, 0xE0, 0xF0, 0xE0, 0xF2, 0xCF, 0x92, 0x36, 0x31, 0xF4, 0x89, 0xE5, 0x06, 0xDF, - 0x80, 0xE0, 0x04, 0xDF, 0x80, 0xE8, 0x6F, 0xCF, 0x92, 0x34, 0x19, 0xF0, 0x97, 0x36, 0x09, 0xF0, - 0xD9, 0xC0, 0x9E, 0x83, 0xE1, 0xDE, 0x78, 0x2E, 0x61, 0x2C, 0xDE, 0xDE, 0x93, 0x01, 0x28, 0x2B, - 0x38, 0x87, 0x2F, 0x83, 0xD9, 0xDE, 0x89, 0x83, 0x85, 0x54, 0x9E, 0x81, 0x82, 0x30, 0x10, 0xF0, - 0x8F, 0xE3, 0x59, 0xCF, 0x97, 0x36, 0x09, 0xF0, 0x49, 0xC0, 0x31, 0xE1, 0x30, 0x93, 0x57, 0x00, - 0xE8, 0x95, 0xA1, 0x2C, 0x3D, 0xC0, 0xC0, 0x90, 0x25, 0x02, 0xD0, 0x90, 0x26, 0x02, 0xE0, 0x90, - 0x27, 0x02, 0xF0, 0x90, 0x28, 0x02, 0x29, 0x81, 0x26, 0x34, 0xB9, 0xF4, 0xEA, 0x2D, 0xF0, 0xE0, - 0xEC, 0x29, 0xFD, 0x29, 0x84, 0x91, 0xD2, 0xDE, 0xAA, 0x20, 0x69, 0xF0, 0x32, 0xE0, 0xC3, 0x0E, - 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x25, 0x02, 0xD0, 0x92, 0x26, 0x02, 0xE0, 0x92, - 0x27, 0x02, 0xF0, 0x92, 0x28, 0x02, 0xA9, 0x24, 0x15, 0xC0, 0xD7, 0x01, 0xC6, 0x01, 0xB6, 0x95, - 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0x68, 0xD5, 0xB9, 0xDE, 0x82, 0xE0, 0xC8, 0x0E, 0xD1, 0x1C, - 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x25, 0x02, 0xD0, 0x92, 0x26, 0x02, 0xE0, 0x92, 0x27, 0x02, - 0xF0, 0x92, 0x28, 0x02, 0x2F, 0x81, 0x38, 0x85, 0x21, 0x50, 0x31, 0x09, 0x38, 0x87, 0x2F, 0x83, - 0x2F, 0x81, 0x38, 0x85, 0x23, 0x2B, 0x09, 0xF0, 0xBE, 0xCF, 0x84, 0xC0, 0x20, 0x90, 0x25, 0x02, - 0x30, 0x90, 0x26, 0x02, 0x40, 0x90, 0x27, 0x02, 0x50, 0x90, 0x28, 0x02, 0x39, 0x81, 0x36, 0x34, - 0x09, 0xF0, 0x5C, 0xC0, 0xF1, 0x01, 0x10, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, - 0xFD, 0xCF, 0x54, 0xC0, 0x29, 0x81, 0x26, 0x34, 0x41, 0xF5, 0xAA, 0x20, 0x11, 0xF1, 0xC0, 0x90, - 0x25, 0x02, 0xD0, 0x90, 0x26, 0x02, 0xE0, 0x90, 0x27, 0x02, 0xF0, 0x90, 0x28, 0x02, 0x64, 0xDE, - 0x8D, 0x83, 0x1C, 0x82, 0x2C, 0x81, 0x3D, 0x81, 0x2B, 0x29, 0xF6, 0x01, 0x09, 0x01, 0x90, 0x92, - 0x57, 0x00, 0xE8, 0x95, 0x11, 0x24, 0xF2, 0xE0, 0xCF, 0x0E, 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, - 0xC0, 0x92, 0x25, 0x02, 0xD0, 0x92, 0x26, 0x02, 0xE0, 0x92, 0x27, 0x02, 0xF0, 0x92, 0x28, 0x02, - 0x02, 0xC0, 0x4A, 0xDE, 0xB8, 0x2E, 0xA9, 0x24, 0x22, 0xC0, 0x46, 0xDE, 0x68, 0x2F, 0x80, 0x91, - 0x25, 0x02, 0x90, 0x91, 0x26, 0x02, 0xA0, 0x91, 0x27, 0x02, 0xB0, 0x91, 0x28, 0x02, 0xB6, 0x95, - 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0x08, 0xD5, 0x80, 0x91, 0x25, 0x02, 0x90, 0x91, 0x26, 0x02, - 0xA0, 0x91, 0x27, 0x02, 0xB0, 0x91, 0x28, 0x02, 0x02, 0x96, 0xA1, 0x1D, 0xB1, 0x1D, 0x80, 0x93, - 0x25, 0x02, 0x90, 0x93, 0x26, 0x02, 0xA0, 0x93, 0x27, 0x02, 0xB0, 0x93, 0x28, 0x02, 0x2F, 0x81, - 0x38, 0x85, 0x21, 0x50, 0x31, 0x09, 0x38, 0x87, 0x2F, 0x83, 0x02, 0xC0, 0xB1, 0x2C, 0xA1, 0x2C, - 0x2F, 0x81, 0x38, 0x85, 0x23, 0x2B, 0x09, 0xF0, 0xA5, 0xCF, 0x39, 0x81, 0x36, 0x34, 0x09, 0xF0, - 0x99, 0xCE, 0x25, 0xE0, 0xF1, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, - 0xFD, 0xCF, 0x90, 0xCE, 0x9B, 0x31, 0x09, 0xF0, 0x33, 0xCF, 0x04, 0xC0, 0x80, 0x91, 0xA0, 0x01, - 0x81, 0x11, 0x53, 0xC0, 0x8F, 0xB7, 0xF8, 0x94, 0xF0, 0x90, 0xA1, 0x01, 0x8F, 0xBF, 0x80, 0x91, - 0xA0, 0x01, 0x81, 0x11, 0x1D, 0xC0, 0xFF, 0x20, 0x09, 0xF4, 0x47, 0xC0, 0x5D, 0x98, 0x10, 0x93, - 0xA2, 0x01, 0x16, 0xC0, 0xE0, 0x90, 0xA4, 0x01, 0xEE, 0x2D, 0xF0, 0xE0, 0xEB, 0x55, 0xFE, 0x4F, - 0x80, 0x81, 0x04, 0xDE, 0x8E, 0x2D, 0x8F, 0x5F, 0x8F, 0x77, 0x80, 0x93, 0xA4, 0x01, 0x9F, 0xB7, - 0xF8, 0x94, 0x80, 0x91, 0xA1, 0x01, 0x81, 0x50, 0x80, 0x93, 0xA1, 0x01, 0x9F, 0xBF, 0xFA, 0x94, - 0xF1, 0x10, 0xE8, 0xCF, 0x10, 0x93, 0xE9, 0x00, 0x90, 0x91, 0xE8, 0x00, 0x80, 0x91, 0xE8, 0x00, - 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x95, 0xFD, 0x11, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFD, - 0x04, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, 0x0D, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, - 0x80, 0x93, 0xE8, 0x00, 0x03, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x21, 0xF0, 0x80, 0x91, 0xE8, 0x00, - 0x80, 0xFF, 0xF9, 0xCF, 0x80, 0x91, 0xA0, 0x01, 0x88, 0x23, 0x39, 0xF0, 0x80, 0x92, 0xE9, 0x00, - 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, 0xA8, 0x9B, 0x15, 0xC0, 0xA8, 0x9A, - 0x80, 0x91, 0xA2, 0x01, 0x88, 0x23, 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, 0xA2, 0x01, 0x81, 0x11, - 0x01, 0xC0, 0x5D, 0x9A, 0x80, 0x91, 0xA3, 0x01, 0x88, 0x23, 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, - 0xA3, 0x01, 0x81, 0x11, 0x01, 0xC0, 0x5C, 0x9A, 0x22, 0xD4, 0x80, 0x91, 0x00, 0x01, 0x81, 0x11, - 0xEE, 0xCD, 0x80, 0x91, 0xE0, 0x00, 0x81, 0x60, 0x80, 0x93, 0xE0, 0x00, 0x2C, 0xE0, 0x88, 0xE1, - 0x90, 0xE0, 0x0F, 0xB6, 0xF8, 0x94, 0xA8, 0x95, 0x80, 0x93, 0x60, 0x00, 0x0F, 0xBE, 0x20, 0x93, - 0x60, 0x00, 0xFF, 0xCF, 0x42, 0xE0, 0x61, 0xEC, 0x82, 0xE0, 0xEE, 0xD1, 0x42, 0xE3, 0x61, 0xE8, - 0x83, 0xE0, 0xEA, 0xD1, 0x42, 0xE3, 0x60, 0xE8, 0x84, 0xE0, 0xE6, 0xC1, 0xCF, 0x93, 0x80, 0x91, - 0x2C, 0x02, 0x98, 0x2F, 0x9F, 0x77, 0x91, 0x32, 0x09, 0xF0, 0xC4, 0xC0, 0x90, 0x91, 0x2D, 0x02, - 0x91, 0x32, 0x39, 0xF0, 0x92, 0x32, 0x09, 0xF4, 0xAA, 0xC0, 0x90, 0x32, 0x09, 0xF0, 0xBA, 0xC0, - 0x13, 0xC0, 0x81, 0x3A, 0x09, 0xF0, 0xB6, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, - 0xE8, 0x00, 0x67, 0xE0, 0x70, 0xE0, 0x81, 0xE0, 0x91, 0xE0, 0x64, 0xD1, 0x80, 0x91, 0xE8, 0x00, - 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, 0xA6, 0xC0, 0x81, 0x32, 0x09, 0xF0, 0xA3, 0xC0, 0x80, 0x91, - 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x27, 0xE0, 0x81, 0xE0, 0x91, 0xE0, 0x3E, 0xB3, - 0x33, 0x23, 0x39, 0xF1, 0x35, 0x30, 0x29, 0xF1, 0x30, 0x91, 0xE8, 0x00, 0x33, 0xFD, 0x21, 0xC0, - 0x30, 0x91, 0xE8, 0x00, 0x32, 0xFF, 0xF3, 0xCF, 0xFC, 0x01, 0x06, 0xC0, 0x80, 0x91, 0xF1, 0x00, - 0x81, 0x93, 0xCF, 0x01, 0x21, 0x50, 0x29, 0xF0, 0xCF, 0x01, 0x30, 0x91, 0xF2, 0x00, 0x31, 0x11, - 0xF5, 0xCF, 0x30, 0x91, 0xE8, 0x00, 0x3B, 0x77, 0x30, 0x93, 0xE8, 0x00, 0x21, 0x11, 0xDF, 0xCF, - 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFD, 0x05, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x11, 0xF0, 0x85, 0x30, - 0xB9, 0xF7, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x20, 0x91, 0x01, 0x01, - 0x30, 0x91, 0x02, 0x01, 0x40, 0x91, 0x03, 0x01, 0x50, 0x91, 0x04, 0x01, 0x21, 0x15, 0x81, 0xEE, - 0x38, 0x07, 0x41, 0x05, 0x51, 0x05, 0x21, 0xF4, 0x81, 0xE0, 0x80, 0x93, 0xA0, 0x01, 0x02, 0xC0, - 0x10, 0x92, 0xA0, 0x01, 0x10, 0x92, 0xA1, 0x01, 0x10, 0x92, 0xA4, 0x01, 0x10, 0x92, 0x29, 0x02, - 0xE0, 0x91, 0x06, 0x01, 0xE1, 0x50, 0xE2, 0x30, 0x28, 0xF4, 0xF0, 0xE0, 0xE6, 0x5F, 0xFE, 0x4F, - 0xC0, 0x81, 0x01, 0xC0, 0xC0, 0xE0, 0x80, 0x91, 0x05, 0x01, 0x82, 0x30, 0x09, 0xF4, 0xC8, 0x60, - 0x80, 0x91, 0x07, 0x01, 0x87, 0x30, 0x31, 0xF0, 0x88, 0x30, 0x31, 0xF0, 0x86, 0x30, 0x29, 0xF4, - 0xC2, 0x60, 0x03, 0xC0, 0xC4, 0x60, 0x01, 0xC0, 0xC6, 0x60, 0x5B, 0x9A, 0x10, 0x92, 0xC9, 0x00, - 0x10, 0x92, 0xC8, 0x00, 0x10, 0x92, 0xCA, 0x00, 0xCA, 0x01, 0xB9, 0x01, 0x96, 0x95, 0x87, 0x95, - 0x77, 0x95, 0x67, 0x95, 0x60, 0x58, 0x7B, 0x47, 0x81, 0x4E, 0x9F, 0x4F, 0x73, 0xD3, 0x21, 0x50, - 0x31, 0x09, 0x30, 0x93, 0xCD, 0x00, 0x20, 0x93, 0xCC, 0x00, 0xC0, 0x93, 0xCA, 0x00, 0x82, 0xE0, - 0x80, 0x93, 0xC8, 0x00, 0x88, 0xE9, 0x80, 0x93, 0xC9, 0x00, 0x5B, 0x98, 0x13, 0xC0, 0x81, 0x32, - 0x89, 0xF4, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x39, 0xD1, 0x80, 0x91, - 0xA0, 0x01, 0x81, 0x11, 0x06, 0xC0, 0x80, 0x91, 0x2E, 0x02, 0x80, 0xFF, 0x02, 0xC0, 0x5F, 0x98, - 0x01, 0xC0, 0x5F, 0x9A, 0xCF, 0x91, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, 0x0F, 0x92, - 0x11, 0x24, 0x8F, 0x93, 0x9F, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x90, 0x91, 0xCE, 0x00, 0x80, 0x91, - 0xA0, 0x01, 0x81, 0x11, 0x17, 0xC0, 0x8E, 0xB3, 0x84, 0x30, 0xA1, 0xF4, 0x80, 0x91, 0xA1, 0x01, - 0x81, 0x38, 0x80, 0xF4, 0x80, 0x91, 0x29, 0x02, 0xE8, 0x2F, 0xF0, 0xE0, 0xEB, 0x55, 0xFE, 0x4F, - 0x90, 0x83, 0x8F, 0x5F, 0x8F, 0x77, 0x80, 0x93, 0x29, 0x02, 0x80, 0x91, 0xA1, 0x01, 0x8F, 0x5F, - 0x80, 0x93, 0xA1, 0x01, 0xFF, 0x91, 0xEF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, - 0x0F, 0x90, 0x1F, 0x90, 0x18, 0x95, 0x29, 0x2F, 0x30, 0xE0, 0x33, 0x27, 0x22, 0x30, 0x31, 0x05, - 0x39, 0xF0, 0x23, 0x30, 0x31, 0x05, 0x49, 0xF0, 0x21, 0x30, 0x31, 0x05, 0x89, 0xF0, 0x0B, 0xC0, - 0x2E, 0xE3, 0x30, 0xE0, 0x88, 0xE4, 0x91, 0xE0, 0x1E, 0xC0, 0x88, 0x23, 0x71, 0xF0, 0x81, 0x30, - 0x89, 0xF0, 0x82, 0x30, 0xA1, 0xF0, 0x20, 0xE0, 0x30, 0xE0, 0x80, 0xE0, 0x90, 0xE0, 0x13, 0xC0, - 0x22, 0xE1, 0x30, 0xE0, 0x86, 0xE8, 0x91, 0xE0, 0x0E, 0xC0, 0x24, 0xE0, 0x30, 0xE0, 0x84, 0xE4, - 0x91, 0xE0, 0x09, 0xC0, 0x22, 0xE1, 0x30, 0xE0, 0x80, 0xE3, 0x91, 0xE0, 0x04, 0xC0, 0x22, 0xE2, - 0x30, 0xE0, 0x8C, 0xE0, 0x91, 0xE0, 0xFA, 0x01, 0x91, 0x83, 0x80, 0x83, 0xC9, 0x01, 0x08, 0x95, - 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, 0x23, 0xE0, 0xFB, 0x01, 0x20, 0x93, - 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, - 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, 0x25, 0xE0, - 0xFB, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0x81, 0xE1, - 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, - 0xFE, 0xCF, 0x21, 0xE0, 0xFB, 0x01, 0x0A, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x11, 0x24, - 0x08, 0x95, 0x21, 0xE2, 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, 0x29, 0xE0, - 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, 0xE1, 0xE0, 0xF0, 0xE0, 0x89, 0xE0, - 0x80, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, - 0xFE, 0xCF, 0x80, 0x95, 0x99, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x08, 0x2E, 0x90, 0x93, 0x57, 0x00, - 0xE8, 0x95, 0x08, 0x95, 0x20, 0x91, 0x32, 0x02, 0x30, 0x91, 0x33, 0x02, 0x26, 0x17, 0x37, 0x07, - 0x48, 0xF0, 0x61, 0x15, 0x71, 0x05, 0x39, 0xF4, 0x20, 0x91, 0xE8, 0x00, 0x2E, 0x77, 0x20, 0x93, - 0xE8, 0x00, 0x01, 0xC0, 0xB9, 0x01, 0x9C, 0x01, 0x80, 0xE0, 0x33, 0xC0, 0x9E, 0xB3, 0x99, 0x23, - 0x09, 0xF4, 0x44, 0xC0, 0x95, 0x30, 0x09, 0xF4, 0x43, 0xC0, 0x90, 0x91, 0xE8, 0x00, 0x93, 0xFD, - 0x41, 0xC0, 0x90, 0x91, 0xE8, 0x00, 0x92, 0xFD, 0x33, 0xC0, 0x90, 0x91, 0xE8, 0x00, 0x90, 0xFF, - 0x20, 0xC0, 0x80, 0x91, 0xF2, 0x00, 0x90, 0xE0, 0xF9, 0x01, 0x82, 0x1B, 0x93, 0x0B, 0x05, 0xC0, - 0x21, 0x91, 0x20, 0x93, 0xF1, 0x00, 0x61, 0x50, 0x71, 0x09, 0x9F, 0x01, 0x28, 0x0F, 0x39, 0x1F, - 0x61, 0x15, 0x71, 0x05, 0x19, 0xF0, 0x28, 0x30, 0x31, 0x05, 0x90, 0xF3, 0x81, 0xE0, 0x28, 0x30, - 0x31, 0x05, 0x09, 0xF0, 0x80, 0xE0, 0x90, 0x91, 0xE8, 0x00, 0x9E, 0x77, 0x90, 0x93, 0xE8, 0x00, - 0x9F, 0x01, 0x61, 0x15, 0x71, 0x05, 0x51, 0xF6, 0x81, 0x11, 0xC8, 0xCF, 0x09, 0xC0, 0x8E, 0xB3, - 0x88, 0x23, 0x61, 0xF0, 0x85, 0x30, 0x61, 0xF0, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFD, 0x0A, 0xC0, - 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFF, 0xF3, 0xCF, 0x80, 0xE0, 0x08, 0x95, 0x82, 0xE0, 0x08, 0x95, - 0x83, 0xE0, 0x08, 0x95, 0x81, 0xE0, 0x08, 0x95, 0x8F, 0x70, 0x80, 0x93, 0xE9, 0x00, 0xEB, 0xEE, - 0xF0, 0xE0, 0x80, 0x81, 0x81, 0x60, 0x80, 0x83, 0xED, 0xEE, 0xF0, 0xE0, 0x10, 0x82, 0x60, 0x93, - 0xEC, 0x00, 0x40, 0x83, 0x80, 0x91, 0xEE, 0x00, 0x88, 0x1F, 0x88, 0x27, 0x88, 0x1F, 0x08, 0x95, - 0x80, 0x91, 0x2C, 0x02, 0x87, 0xFD, 0x05, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0x0D, 0xC0, - 0x10, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFD, 0x04, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, - 0x08, 0x95, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x07, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xEC, 0xCF, - 0x08, 0x95, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x08, 0x95, 0x3C, 0xD0, - 0x3E, 0xD0, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x77, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, - 0x80, 0x68, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x7D, 0x80, 0x93, 0xD8, 0x00, - 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, 0x89, 0xBD, 0x09, 0xB4, 0x00, 0xFE, 0xFD, 0xCF, 0x1E, 0xBA, - 0x10, 0x92, 0x2A, 0x02, 0x42, 0xE0, 0x60, 0xE0, 0x80, 0xE0, 0xAE, 0xDF, 0x80, 0x91, 0xE1, 0x00, - 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, - 0x80, 0x91, 0xE2, 0x00, 0x88, 0x60, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE0, 0x00, 0x8E, 0x7F, - 0x80, 0x93, 0xE0, 0x00, 0x08, 0x95, 0xE3, 0xE6, 0xF0, 0xE0, 0x80, 0x81, 0x8E, 0x7F, 0x80, 0x83, - 0x81, 0xE0, 0x80, 0x93, 0x2B, 0x02, 0xC3, 0xCF, 0x10, 0x92, 0xE2, 0x00, 0x08, 0x95, 0x10, 0x92, - 0xE1, 0x00, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, 0x0F, 0x92, 0x11, 0x24, 0x2F, 0x93, - 0x3F, 0x93, 0x4F, 0x93, 0x5F, 0x93, 0x6F, 0x93, 0x7F, 0x93, 0x8F, 0x93, 0x9F, 0x93, 0xAF, 0x93, - 0xBF, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x80, 0x91, 0xE1, 0x00, 0x80, 0xFF, 0x16, 0xC0, 0x80, 0x91, - 0xE2, 0x00, 0x80, 0xFF, 0x12, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE2, 0x00, - 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xD8, 0x00, 0x80, 0x62, - 0x80, 0x93, 0xD8, 0x00, 0x19, 0xBC, 0x1E, 0xBA, 0x79, 0xD1, 0x80, 0x91, 0xE1, 0x00, 0x84, 0xFF, - 0x2E, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x84, 0xFF, 0x2A, 0xC0, 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, - 0x89, 0xBD, 0x09, 0xB4, 0x00, 0xFE, 0xFD, 0xCF, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x7D, 0x80, 0x93, - 0xD8, 0x00, 0x80, 0x91, 0xE1, 0x00, 0x8F, 0x7E, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, - 0x8F, 0x7E, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, - 0x80, 0x91, 0x2A, 0x02, 0x88, 0x23, 0x11, 0xF0, 0x84, 0xE0, 0x07, 0xC0, 0x80, 0x91, 0xE3, 0x00, - 0x87, 0xFF, 0x02, 0xC0, 0x83, 0xE0, 0x01, 0xC0, 0x81, 0xE0, 0x8E, 0xBB, 0x47, 0xD1, 0x80, 0x91, - 0xE1, 0x00, 0x83, 0xFF, 0x21, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x83, 0xFF, 0x1D, 0xC0, 0x80, 0x91, - 0xE1, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x82, 0xE0, 0x8E, 0xBB, 0x10, 0x92, 0x2A, 0x02, - 0x80, 0x91, 0xE1, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x8E, 0x7F, - 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, 0x80, 0x93, 0xE2, 0x00, 0x42, 0xE0, - 0x60, 0xE0, 0x80, 0xE0, 0x09, 0xDF, 0x22, 0xD1, 0xFF, 0x91, 0xEF, 0x91, 0xBF, 0x91, 0xAF, 0x91, - 0x9F, 0x91, 0x8F, 0x91, 0x7F, 0x91, 0x6F, 0x91, 0x5F, 0x91, 0x4F, 0x91, 0x3F, 0x91, 0x2F, 0x91, - 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, 0x18, 0x95, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, - 0x00, 0xD0, 0xCD, 0xB7, 0xDE, 0xB7, 0xEC, 0xE2, 0xF2, 0xE0, 0x80, 0x91, 0xF1, 0x00, 0x81, 0x93, - 0x82, 0xE0, 0xE4, 0x33, 0xF8, 0x07, 0xC9, 0xF7, 0x01, 0xDD, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFF, - 0xE9, 0xC0, 0x80, 0x91, 0x2C, 0x02, 0x90, 0x91, 0x2D, 0x02, 0x95, 0x30, 0x09, 0xF4, 0x70, 0xC0, - 0x38, 0xF4, 0x91, 0x30, 0x79, 0xF1, 0x70, 0xF0, 0x93, 0x30, 0x09, 0xF0, 0xDB, 0xC0, 0x2A, 0xC0, - 0x98, 0x30, 0x09, 0xF4, 0xAA, 0xC0, 0x99, 0x30, 0x09, 0xF4, 0xB9, 0xC0, 0x96, 0x30, 0x09, 0xF0, - 0xD1, 0xC0, 0x83, 0xC0, 0x80, 0x38, 0x99, 0xF0, 0x82, 0x38, 0x09, 0xF0, 0xCB, 0xC0, 0x80, 0x91, - 0x30, 0x02, 0x90, 0x91, 0x31, 0x02, 0x8F, 0x70, 0x99, 0x27, 0x80, 0x93, 0xE9, 0x00, 0x90, 0x91, - 0xEB, 0x00, 0x95, 0xFB, 0x99, 0x27, 0x90, 0xF9, 0x10, 0x92, 0xE9, 0x00, 0x01, 0xC0, 0x90, 0xE0, - 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x90, 0x93, 0xF1, 0x00, 0x10, 0x92, - 0xF1, 0x00, 0x8E, 0xC0, 0x88, 0x23, 0x19, 0xF0, 0x82, 0x30, 0x09, 0xF0, 0xAB, 0xC0, 0x8F, 0x71, - 0x82, 0x30, 0x09, 0xF0, 0xA7, 0xC0, 0x80, 0x91, 0x2E, 0x02, 0x81, 0x11, 0x2B, 0xC0, 0x80, 0x91, - 0x30, 0x02, 0x90, 0x91, 0x31, 0x02, 0x8F, 0x70, 0x99, 0x27, 0x00, 0x97, 0x09, 0xF4, 0x9A, 0xC0, - 0x80, 0x93, 0xE9, 0x00, 0x20, 0x91, 0xEB, 0x00, 0x20, 0xFF, 0x1C, 0xC0, 0x20, 0x91, 0x2D, 0x02, - 0x23, 0x30, 0x21, 0xF4, 0x80, 0x91, 0xEB, 0x00, 0x80, 0x62, 0x12, 0xC0, 0x90, 0x91, 0xEB, 0x00, - 0x90, 0x61, 0x90, 0x93, 0xEB, 0x00, 0x21, 0xE0, 0x30, 0xE0, 0x01, 0xC0, 0x22, 0x0F, 0x8A, 0x95, - 0xEA, 0xF7, 0x20, 0x93, 0xEA, 0x00, 0x10, 0x92, 0xEA, 0x00, 0x80, 0x91, 0xEB, 0x00, 0x88, 0x60, - 0x80, 0x93, 0xEB, 0x00, 0x10, 0x92, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x53, 0xC0, - 0x81, 0x11, 0x70, 0xC0, 0x80, 0x91, 0x2E, 0x02, 0x90, 0x91, 0x2F, 0x02, 0x8F, 0x77, 0x99, 0x27, - 0x18, 0x2F, 0x90, 0x91, 0xE3, 0x00, 0x90, 0x78, 0x98, 0x2B, 0x90, 0x93, 0xE3, 0x00, 0x80, 0x91, - 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x6B, 0xDE, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, - 0xFC, 0xCF, 0x80, 0x91, 0xE3, 0x00, 0x80, 0x68, 0x80, 0x93, 0xE3, 0x00, 0x11, 0x23, 0x11, 0xF0, - 0x83, 0xE0, 0x01, 0xC0, 0x82, 0xE0, 0x8E, 0xBB, 0x4D, 0xC0, 0x80, 0x58, 0x82, 0x30, 0x08, 0xF0, - 0x49, 0xC0, 0xAE, 0x01, 0x4F, 0x5F, 0x5F, 0x4F, 0x60, 0x91, 0x30, 0x02, 0x80, 0x91, 0x2E, 0x02, - 0x90, 0x91, 0x2F, 0x02, 0x50, 0xDD, 0x00, 0x97, 0x09, 0xF4, 0x3C, 0xC0, 0x20, 0x91, 0xE8, 0x00, - 0x27, 0x7F, 0x20, 0x93, 0xE8, 0x00, 0xBC, 0x01, 0x89, 0x81, 0x9A, 0x81, 0xCB, 0xDD, 0x80, 0x91, - 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x2D, 0xC0, 0x80, 0x38, 0x59, 0xF5, 0x80, 0x91, - 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x80, 0x91, 0x2A, 0x02, 0x80, 0x93, 0xF1, 0x00, - 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x2A, 0xDE, 0x1B, 0xC0, 0x81, 0x11, - 0x19, 0xC0, 0x90, 0x91, 0x2E, 0x02, 0x92, 0x30, 0xA8, 0xF4, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, - 0x80, 0x93, 0xE8, 0x00, 0x90, 0x93, 0x2A, 0x02, 0x1B, 0xDE, 0x80, 0x91, 0x2A, 0x02, 0x81, 0x11, - 0x04, 0xC0, 0x80, 0x91, 0xE3, 0x00, 0x87, 0xFF, 0x02, 0xC0, 0x84, 0xE0, 0x01, 0xC0, 0x81, 0xE0, - 0x8E, 0xBB, 0x08, 0xDC, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFF, 0x0A, 0xC0, 0x80, 0x91, 0xE8, 0x00, - 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x80, 0x91, 0xEB, 0x00, 0x80, 0x62, 0x80, 0x93, 0xEB, 0x00, - 0x0F, 0x90, 0x0F, 0x90, 0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, 0x08, 0x95, 0x08, 0x95, 0xCF, 0x93, - 0x8E, 0xB3, 0x88, 0x23, 0xA9, 0xF0, 0x80, 0x91, 0xE9, 0x00, 0x8F, 0x70, 0x90, 0x91, 0xEC, 0x00, - 0x90, 0xFF, 0x02, 0xC0, 0x90, 0xE8, 0x01, 0xC0, 0x90, 0xE0, 0xC9, 0x2F, 0xC8, 0x2B, 0x10, 0x92, - 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFD, 0xD8, 0xDE, 0xCF, 0x70, 0xC0, 0x93, 0xE9, 0x00, - 0xCF, 0x91, 0x08, 0x95, 0xA1, 0xE2, 0x1A, 0x2E, 0xAA, 0x1B, 0xBB, 0x1B, 0xFD, 0x01, 0x0D, 0xC0, - 0xAA, 0x1F, 0xBB, 0x1F, 0xEE, 0x1F, 0xFF, 0x1F, 0xA2, 0x17, 0xB3, 0x07, 0xE4, 0x07, 0xF5, 0x07, - 0x20, 0xF0, 0xA2, 0x1B, 0xB3, 0x0B, 0xE4, 0x0B, 0xF5, 0x0B, 0x66, 0x1F, 0x77, 0x1F, 0x88, 0x1F, - 0x99, 0x1F, 0x1A, 0x94, 0x69, 0xF7, 0x60, 0x95, 0x70, 0x95, 0x80, 0x95, 0x90, 0x95, 0x9B, 0x01, - 0xAC, 0x01, 0xBD, 0x01, 0xCF, 0x01, 0x08, 0x95, 0xF9, 0x99, 0xFE, 0xCF, 0x92, 0xBD, 0x81, 0xBD, - 0xF8, 0x9A, 0x99, 0x27, 0x80, 0xB5, 0x08, 0x95, 0x26, 0x2F, 0xF9, 0x99, 0xFE, 0xCF, 0x1F, 0xBA, - 0x92, 0xBD, 0x81, 0xBD, 0x20, 0xBD, 0x0F, 0xB6, 0xF8, 0x94, 0xFA, 0x9A, 0xF9, 0x9A, 0x0F, 0xBE, - 0x01, 0x96, 0x08, 0x95, 0xF8, 0x94, 0xFF, 0xCF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, - 0x80, 0x02, 0x30, 0x20, 0x22, 0x03, 0x48, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x4C, 0x00, - 0x6F, 0x00, 0x61, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x32, 0x00, 0x20, 0x00, 0x4D, 0x00, - 0x65, 0x00, 0x67, 0x00, 0x61, 0x00, 0x00, 0x00, 0x12, 0x03, 0x4E, 0x00, 0x69, 0x00, 0x63, 0x00, - 0x6F, 0x00, 0x48, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x00, 0x00, 0x04, 0x03, 0x09, 0x04, - 0x09, 0x02, 0x3E, 0x00, 0x02, 0x01, 0x00, 0x80, 0x32, 0x09, 0x04, 0x00, 0x00, 0x01, 0x02, 0x02, - 0x01, 0x00, 0x05, 0x24, 0x00, 0x10, 0x01, 0x04, 0x24, 0x02, 0x02, 0x05, 0x24, 0x06, 0x00, 0x01, - 0x07, 0x05, 0x82, 0x03, 0x08, 0x00, 0xFF, 0x09, 0x04, 0x01, 0x00, 0x02, 0x0A, 0x00, 0x00, 0x00, - 0x07, 0x05, 0x04, 0x02, 0x40, 0x00, 0x05, 0x07, 0x05, 0x83, 0x02, 0x40, 0x00, 0x05, 0x12, 0x01, - 0x10, 0x01, 0x02, 0x00, 0x00, 0x08, 0x41, 0x23, 0x42, 0x00, 0x03, 0x02, 0x01, 0x02, 0x00, 0x01, - 0x48, 0x4C, 0x32, 0x2E, 0x30, 0x2E, 0x33, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x77, 0xCC, 0x88, 0xCC, 0x99, 0xCC, 0xA5, 0xCC, 0xAA, 0xCC, 0xAF, 0xCC, 0xB5, 0xCC, 0x08, 0x95, - 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, - 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0x00, 0x30, 0x00, 0x00, 0x00, 0xDF, 0xFB, 0xDC, -}; // end of HoodLoader2_0_3_Mega_16u2_hex - - -// File = HoodLoader2_0_3_Uno_32u2.hex -// Loader start: 7000, length: 4096 -// MD5 sum = 3B E8 0F B7 EC 26 2C 5A 77 AA 06 7A D1 82 7B 75 - -const byte HoodLoader2_0_3_Uno_32u2_hex[] PROGMEM = { - 0x39, 0xC0, 0x00, 0x00, 0x82, 0xC0, 0x00, 0x00, 0x80, 0xC0, 0x00, 0x00, 0x7E, 0xC0, 0x00, 0x00, - 0x7C, 0xC0, 0x00, 0x00, 0x7A, 0xC0, 0x00, 0x00, 0x78, 0xC0, 0x00, 0x00, 0x76, 0xC0, 0x00, 0x00, - 0x74, 0xC0, 0x00, 0x00, 0x72, 0xC0, 0x00, 0x00, 0x70, 0xC0, 0x00, 0x00, 0x53, 0xC5, 0x00, 0x00, - 0x6C, 0xC0, 0x00, 0x00, 0x6A, 0xC0, 0x00, 0x00, 0x68, 0xC0, 0x00, 0x00, 0x66, 0xC0, 0x00, 0x00, - 0x64, 0xC0, 0x00, 0x00, 0x62, 0xC0, 0x00, 0x00, 0x60, 0xC0, 0x00, 0x00, 0x5E, 0xC0, 0x00, 0x00, - 0x5C, 0xC0, 0x00, 0x00, 0x5A, 0xC0, 0x00, 0x00, 0x58, 0xC0, 0x00, 0x00, 0xB0, 0xC3, 0x00, 0x00, - 0x54, 0xC0, 0x00, 0x00, 0x52, 0xC0, 0x00, 0x00, 0x50, 0xC0, 0x00, 0x00, 0x4E, 0xC0, 0x00, 0x00, - 0x4C, 0xC0, 0x00, 0x00, 0x11, 0x24, 0x1F, 0xBE, 0xCF, 0xEF, 0xD4, 0xE0, 0xDE, 0xBF, 0xCD, 0xBF, - 0x30, 0x91, 0x80, 0x02, 0x10, 0x92, 0x80, 0x02, 0x24, 0xB7, 0x14, 0xBE, 0x88, 0xE1, 0x0F, 0xB6, - 0xF8, 0x94, 0x80, 0x93, 0x60, 0x00, 0x10, 0x92, 0x60, 0x00, 0x0F, 0xBE, 0xE0, 0xE0, 0xF0, 0xE0, - 0x85, 0x91, 0x94, 0x91, 0x01, 0x96, 0xE1, 0xF0, 0x21, 0xFF, 0x12, 0xC0, 0x37, 0x37, 0xC1, 0xF0, - 0x87, 0xE7, 0x80, 0x93, 0x80, 0x02, 0x8F, 0xEF, 0x9E, 0xE9, 0x24, 0xE2, 0x81, 0x50, 0x90, 0x40, - 0x20, 0x40, 0xE1, 0xF7, 0x00, 0xC0, 0x00, 0x00, 0x10, 0x92, 0x80, 0x02, 0x1F, 0xD0, 0x08, 0xC0, - 0x20, 0xFF, 0x02, 0xC0, 0x1B, 0xD0, 0x04, 0xC0, 0x23, 0xFF, 0x02, 0xC0, 0x37, 0x37, 0xD1, 0xF7, - 0x11, 0xE0, 0xA0, 0xE0, 0xB1, 0xE0, 0xEA, 0xEA, 0xFE, 0xE7, 0x02, 0xC0, 0x05, 0x90, 0x0D, 0x92, - 0xAA, 0x39, 0xB1, 0x07, 0xD9, 0xF7, 0x22, 0xE0, 0xAA, 0xE9, 0xB1, 0xE0, 0x01, 0xC0, 0x1D, 0x92, - 0xAE, 0x32, 0xB2, 0x07, 0xE1, 0xF7, 0x37, 0xD0, 0xCE, 0xC6, 0x7A, 0xCF, 0x8B, 0xB1, 0x80, 0x63, - 0x8B, 0xB9, 0x0C, 0x94, 0x00, 0x00, 0x08, 0x95, 0x84, 0xE0, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, - 0xE8, 0x00, 0x85, 0xFD, 0x0E, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, - 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFD, 0xF3, 0xCF, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, 0x80, 0xE0, - 0x08, 0x95, 0x80, 0x91, 0xF1, 0x00, 0x08, 0x95, 0x93, 0xE0, 0x90, 0x93, 0xE9, 0x00, 0x90, 0x91, - 0xE8, 0x00, 0x95, 0xFF, 0x03, 0xC0, 0x80, 0x93, 0xF1, 0x00, 0x08, 0x95, 0x90, 0x91, 0xE8, 0x00, - 0x9E, 0x77, 0x90, 0x93, 0xE8, 0x00, 0x90, 0x91, 0xE8, 0x00, 0x90, 0xFD, 0xF4, 0xCF, 0x9E, 0xB3, - 0x91, 0x11, 0xF9, 0xCF, 0x08, 0x95, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0x1F, 0x92, 0xCD, 0xB7, - 0xDE, 0xB7, 0x90, 0xE0, 0x80, 0xE8, 0x0F, 0xB6, 0xF8, 0x94, 0x80, 0x93, 0x61, 0x00, 0x90, 0x93, - 0x61, 0x00, 0x0F, 0xBE, 0x81, 0xE0, 0x85, 0xBF, 0x82, 0xE0, 0x85, 0xBF, 0x8C, 0xD4, 0x84, 0xE0, - 0x85, 0xBD, 0x8A, 0xB1, 0x88, 0x6B, 0x8A, 0xB9, 0x8B, 0xB1, 0x84, 0x6B, 0x8B, 0xB9, 0x78, 0x94, - 0x13, 0xE0, 0x77, 0x24, 0x73, 0x94, 0xE5, 0xE0, 0x4E, 0x2E, 0x21, 0x2C, 0x31, 0x2C, 0x80, 0x91, - 0x00, 0x01, 0x88, 0x23, 0x09, 0xF4, 0x0A, 0xC2, 0x84, 0xE0, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, - 0xE8, 0x00, 0x82, 0xFF, 0x90, 0xC1, 0xA0, 0xDF, 0x98, 0x2F, 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, - 0x13, 0xC0, 0x80, 0x91, 0xC8, 0x00, 0x85, 0xFF, 0xFC, 0xCF, 0x90, 0x93, 0xCE, 0x00, 0x80, 0x91, - 0xF2, 0x00, 0x81, 0x11, 0x05, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, - 0x5C, 0x98, 0x10, 0x93, 0x9F, 0x01, 0x7B, 0xC1, 0x95, 0x34, 0x19, 0xF4, 0x10, 0x92, 0x00, 0x01, - 0x32, 0xC0, 0x88, 0xE8, 0x89, 0x0F, 0x82, 0x30, 0x10, 0xF0, 0x94, 0x35, 0x11, 0xF4, 0x7C, 0xDF, - 0x2A, 0xC0, 0x90, 0x35, 0x41, 0xF1, 0x9C, 0x34, 0x31, 0xF1, 0x94, 0x37, 0x21, 0xF4, 0x84, 0xE4, - 0x8B, 0xDF, 0x80, 0xE0, 0x03, 0xC0, 0x91, 0x36, 0x19, 0xF4, 0x89, 0xE5, 0x85, 0xDF, 0x5F, 0xC1, - 0x91, 0x34, 0xD9, 0xF4, 0x69, 0xDF, 0x08, 0x2F, 0x67, 0xDF, 0x90, 0xE0, 0x88, 0x0F, 0x99, 0x1F, - 0x20, 0x2F, 0x30, 0xE0, 0x32, 0x2F, 0x22, 0x27, 0x33, 0x0F, 0x82, 0x2B, 0x93, 0x2B, 0xAA, 0x27, - 0x97, 0xFD, 0xA0, 0x95, 0xBA, 0x2F, 0x80, 0x93, 0x9A, 0x01, 0x90, 0x93, 0x9B, 0x01, 0xA0, 0x93, - 0x9C, 0x01, 0xB0, 0x93, 0x9D, 0x01, 0x8D, 0xE0, 0xE1, 0xCF, 0x90, 0x37, 0x11, 0xF4, 0x83, 0xE5, - 0xDD, 0xCF, 0x93, 0x35, 0x71, 0xF4, 0x52, 0xE9, 0xE5, 0x2E, 0x51, 0xE0, 0xF5, 0x2E, 0xF7, 0x01, - 0x81, 0x91, 0x7F, 0x01, 0x59, 0xDF, 0xF9, 0xE9, 0xEF, 0x16, 0xF1, 0xE0, 0xFF, 0x06, 0xB9, 0xF7, - 0x2E, 0xC1, 0x96, 0x35, 0x21, 0xF4, 0x81, 0xE3, 0x4F, 0xDF, 0x80, 0xE3, 0xC7, 0xCF, 0x93, 0x37, - 0x31, 0xF4, 0x8A, 0xE8, 0x49, 0xDF, 0x85, 0xE9, 0x47, 0xDF, 0x8E, 0xE1, 0xBF, 0xCF, 0x95, 0x36, - 0xA9, 0xF4, 0xE0, 0xE0, 0xF0, 0xE0, 0x10, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, - 0xFD, 0xCF, 0x40, 0x92, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xE0, 0x58, - 0xFF, 0x4F, 0xE1, 0x15, 0x80, 0xE7, 0xF8, 0x07, 0x71, 0xF7, 0xC5, 0xCF, 0x9C, 0x36, 0x51, 0xF4, - 0x13, 0xDF, 0x80, 0x95, 0x99, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x08, 0x2E, 0x90, 0x93, 0x57, 0x00, - 0xE8, 0x95, 0xB9, 0xCF, 0x92, 0x37, 0x21, 0xF4, 0x89, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x10, 0xC0, - 0x96, 0x34, 0x19, 0xF4, 0x89, 0xE0, 0xF1, 0x01, 0x0B, 0xC0, 0x9E, 0x34, 0x21, 0xF4, 0x89, 0xE0, - 0xE3, 0xE0, 0xF0, 0xE0, 0x05, 0xC0, 0x91, 0x35, 0x39, 0xF4, 0x89, 0xE0, 0xE2, 0xE0, 0xF0, 0xE0, - 0x80, 0x93, 0x57, 0x00, 0x84, 0x91, 0x82, 0xCF, 0x92, 0x36, 0x31, 0xF4, 0x89, 0xE5, 0x04, 0xDF, - 0x80, 0xE0, 0x02, 0xDF, 0x80, 0xE8, 0x7A, 0xCF, 0x92, 0x34, 0x19, 0xF0, 0x97, 0x36, 0x09, 0xF0, - 0xCE, 0xC0, 0x99, 0x83, 0xE1, 0xDE, 0xA8, 0x2E, 0xB1, 0x2C, 0xBA, 0x2C, 0xAA, 0x24, 0xDC, 0xDE, - 0xA8, 0x2A, 0xDA, 0xDE, 0x08, 0x2F, 0x8B, 0xEB, 0x80, 0x0F, 0x99, 0x81, 0x82, 0x30, 0x10, 0xF0, - 0x8F, 0xE3, 0x64, 0xCF, 0x97, 0x36, 0x09, 0xF0, 0x44, 0xC0, 0xF1, 0xE1, 0xF0, 0x93, 0x57, 0x00, - 0xE8, 0x95, 0x45, 0x01, 0xB1, 0x2C, 0x81, 0x14, 0x91, 0x04, 0x09, 0xF4, 0xB8, 0xC0, 0xC0, 0x90, - 0x9A, 0x01, 0xD0, 0x90, 0x9B, 0x01, 0xE0, 0x90, 0x9C, 0x01, 0xF0, 0x90, 0x9D, 0x01, 0x06, 0x34, - 0xB9, 0xF4, 0xEB, 0x2D, 0xF0, 0xE0, 0xEC, 0x29, 0xFD, 0x29, 0x84, 0x91, 0xCD, 0xDE, 0xBB, 0x20, - 0x69, 0xF0, 0x82, 0xE0, 0xC8, 0x0E, 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9A, 0x01, - 0xD0, 0x92, 0x9B, 0x01, 0xE0, 0x92, 0x9C, 0x01, 0xF0, 0x92, 0x9D, 0x01, 0xB7, 0x24, 0x15, 0xC0, - 0xD7, 0x01, 0xC6, 0x01, 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0x4E, 0xD5, 0xB4, 0xDE, - 0x92, 0xE0, 0xC9, 0x0E, 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9A, 0x01, 0xD0, 0x92, - 0x9B, 0x01, 0xE0, 0x92, 0x9C, 0x01, 0xF0, 0x92, 0x9D, 0x01, 0xE1, 0xE0, 0x8E, 0x1A, 0x91, 0x08, - 0xC2, 0xCF, 0xC0, 0x90, 0x9A, 0x01, 0xD0, 0x90, 0x9B, 0x01, 0xE0, 0x90, 0x9C, 0x01, 0xF0, 0x90, - 0x9D, 0x01, 0x06, 0x34, 0x29, 0xF0, 0xBB, 0x82, 0xAA, 0x82, 0x51, 0x2C, 0x61, 0x2C, 0x31, 0xC0, - 0xF6, 0x01, 0x10, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xF3, 0xCF, - 0x06, 0x34, 0x79, 0xF5, 0x66, 0x20, 0x51, 0xF1, 0x80, 0x90, 0x9A, 0x01, 0x90, 0x90, 0x9B, 0x01, - 0xA0, 0x90, 0x9C, 0x01, 0xB0, 0x90, 0x9D, 0x01, 0x67, 0xDE, 0x25, 0x2D, 0x30, 0xE0, 0x38, 0x2B, - 0xF4, 0x01, 0x09, 0x01, 0x70, 0x92, 0x57, 0x00, 0xE8, 0x95, 0x11, 0x24, 0xF2, 0xE0, 0x8F, 0x0E, - 0x91, 0x1C, 0xA1, 0x1C, 0xB1, 0x1C, 0x80, 0x92, 0x9A, 0x01, 0x90, 0x92, 0x9B, 0x01, 0xA0, 0x92, - 0x9C, 0x01, 0xB0, 0x92, 0x9D, 0x01, 0x67, 0x24, 0x8A, 0x81, 0x9B, 0x81, 0x01, 0x97, 0x9B, 0x83, - 0x8A, 0x83, 0xEA, 0x81, 0xFB, 0x81, 0xEF, 0x2B, 0x99, 0xF6, 0x26, 0xC0, 0x45, 0xDE, 0x58, 0x2E, - 0xF2, 0xCF, 0x42, 0xDE, 0x68, 0x2F, 0x80, 0x91, 0x9A, 0x01, 0x90, 0x91, 0x9B, 0x01, 0xA0, 0x91, - 0x9C, 0x01, 0xB0, 0x91, 0x9D, 0x01, 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0xED, 0xD4, - 0x80, 0x91, 0x9A, 0x01, 0x90, 0x91, 0x9B, 0x01, 0xA0, 0x91, 0x9C, 0x01, 0xB0, 0x91, 0x9D, 0x01, - 0x02, 0x96, 0xA1, 0x1D, 0xB1, 0x1D, 0x80, 0x93, 0x9A, 0x01, 0x90, 0x93, 0x9B, 0x01, 0xA0, 0x93, - 0x9C, 0x01, 0xB0, 0x93, 0x9D, 0x01, 0xD0, 0xCF, 0x06, 0x34, 0x09, 0xF0, 0xCC, 0xCE, 0xF6, 0x01, - 0x40, 0x92, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xC4, 0xCE, 0x9B, 0x31, - 0x09, 0xF0, 0x3E, 0xCF, 0x04, 0xC0, 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, 0x56, 0xC0, 0x8F, 0xB7, - 0xF8, 0x94, 0x90, 0x91, 0xA3, 0x01, 0x8F, 0xBF, 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, 0x06, 0xC0, - 0x99, 0x23, 0x09, 0xF4, 0x4A, 0xC0, 0x5D, 0x98, 0x10, 0x93, 0xA0, 0x01, 0x09, 0x2F, 0x00, 0x23, - 0xB9, 0xF0, 0xF0, 0x90, 0xA2, 0x01, 0xEF, 0x2D, 0xF0, 0xE0, 0xEC, 0x55, 0xFE, 0x4F, 0x80, 0x81, - 0x0B, 0xDE, 0x81, 0xE0, 0x8F, 0x0D, 0x8F, 0x77, 0x80, 0x93, 0xA2, 0x01, 0x9F, 0xB7, 0xF8, 0x94, - 0x80, 0x91, 0xA3, 0x01, 0x81, 0x50, 0x80, 0x93, 0xA3, 0x01, 0x9F, 0xBF, 0x01, 0x50, 0xE7, 0xCF, - 0x10, 0x93, 0xE9, 0x00, 0x90, 0x91, 0xE8, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, - 0xE8, 0x00, 0x95, 0xFD, 0x1D, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFD, 0x10, 0xC0, 0x8E, 0xB3, - 0x81, 0x11, 0xF9, 0xCF, 0x80, 0x91, 0x9E, 0x01, 0x88, 0x23, 0xB9, 0xF0, 0xF4, 0xE0, 0xF0, 0x93, - 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x0E, 0xC0, 0x80, 0x91, - 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x03, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x51, 0xF3, - 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xF9, 0xCF, 0xE5, 0xCF, 0xA8, 0x9B, 0x15, 0xC0, 0xA8, 0x9A, - 0x80, 0x91, 0xA0, 0x01, 0x88, 0x23, 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, 0xA0, 0x01, 0x81, 0x11, - 0x01, 0xC0, 0x5D, 0x9A, 0x80, 0x91, 0x9F, 0x01, 0x88, 0x23, 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, - 0x9F, 0x01, 0x81, 0x11, 0x01, 0xC0, 0x5C, 0x9A, 0x13, 0xD4, 0xF1, 0xCD, 0x80, 0x91, 0xE0, 0x00, - 0x81, 0x60, 0x80, 0x93, 0xE0, 0x00, 0x2C, 0xE0, 0x88, 0xE1, 0x90, 0xE0, 0x0F, 0xB6, 0xF8, 0x94, - 0xA8, 0x95, 0x80, 0x93, 0x60, 0x00, 0x0F, 0xBE, 0x20, 0x93, 0x60, 0x00, 0xFF, 0xCF, 0x42, 0xE0, - 0x61, 0xEC, 0x82, 0xE0, 0xF1, 0xD1, 0x42, 0xE3, 0x61, 0xE8, 0x83, 0xE0, 0xED, 0xD1, 0x42, 0xE3, - 0x60, 0xE8, 0x84, 0xE0, 0xE9, 0xC1, 0xCF, 0x93, 0x80, 0x91, 0x26, 0x02, 0x98, 0x2F, 0x9F, 0x77, - 0x91, 0x32, 0x09, 0xF0, 0xCA, 0xC0, 0x90, 0x91, 0x27, 0x02, 0x91, 0x32, 0x39, 0xF0, 0x92, 0x32, - 0x09, 0xF4, 0xB0, 0xC0, 0x90, 0x32, 0x09, 0xF0, 0xC0, 0xC0, 0x13, 0xC0, 0x81, 0x3A, 0x09, 0xF0, - 0xBC, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x67, 0xE0, 0x70, 0xE0, - 0x81, 0xE0, 0x91, 0xE0, 0x68, 0xD1, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, - 0xAC, 0xC0, 0x81, 0x32, 0x09, 0xF0, 0xA9, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, - 0xE8, 0x00, 0x27, 0xE0, 0x81, 0xE0, 0x91, 0xE0, 0x3E, 0xB3, 0x33, 0x23, 0x31, 0xF1, 0x35, 0x30, - 0x21, 0xF1, 0x30, 0x91, 0xE8, 0x00, 0x33, 0xFD, 0x20, 0xC0, 0x30, 0x91, 0xE8, 0x00, 0x32, 0xFF, - 0xF3, 0xCF, 0xFC, 0x01, 0xCF, 0x01, 0x30, 0x91, 0xF2, 0x00, 0x33, 0x23, 0x31, 0xF0, 0x80, 0x91, - 0xF1, 0x00, 0x81, 0x93, 0xCF, 0x01, 0x21, 0x50, 0xA9, 0xF7, 0x30, 0x91, 0xE8, 0x00, 0x3B, 0x77, - 0x30, 0x93, 0xE8, 0x00, 0x21, 0x11, 0xE0, 0xCF, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFD, 0x05, 0xC0, - 0x8E, 0xB3, 0x88, 0x23, 0x11, 0xF0, 0x85, 0x30, 0xB9, 0xF7, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, - 0x80, 0x93, 0xE8, 0x00, 0x80, 0x91, 0x01, 0x01, 0x90, 0x91, 0x02, 0x01, 0xA0, 0x91, 0x03, 0x01, - 0xB0, 0x91, 0x04, 0x01, 0x81, 0x15, 0x91, 0x4E, 0xA1, 0x05, 0xB1, 0x05, 0x21, 0xF4, 0x81, 0xE0, - 0x80, 0x93, 0x9E, 0x01, 0x02, 0xC0, 0x10, 0x92, 0x9E, 0x01, 0x10, 0x92, 0xA3, 0x01, 0x10, 0x92, - 0xA2, 0x01, 0x10, 0x92, 0xA1, 0x01, 0x80, 0x91, 0x06, 0x01, 0x81, 0x30, 0x31, 0xF0, 0x82, 0x30, - 0x11, 0xF0, 0xC0, 0xE0, 0x03, 0xC0, 0xC0, 0xE2, 0x01, 0xC0, 0xC0, 0xE3, 0x80, 0x91, 0x05, 0x01, - 0x82, 0x30, 0x09, 0xF4, 0xC8, 0x60, 0x80, 0x91, 0x07, 0x01, 0x87, 0x30, 0x31, 0xF0, 0x88, 0x30, - 0x31, 0xF0, 0x86, 0x30, 0x29, 0xF4, 0xC2, 0x60, 0x03, 0xC0, 0xC4, 0x60, 0x01, 0xC0, 0xC6, 0x60, - 0x5B, 0x9A, 0x10, 0x92, 0xC9, 0x00, 0x10, 0x92, 0xC8, 0x00, 0x10, 0x92, 0xCA, 0x00, 0x20, 0x91, - 0x01, 0x01, 0x30, 0x91, 0x02, 0x01, 0x40, 0x91, 0x03, 0x01, 0x50, 0x91, 0x04, 0x01, 0xCA, 0x01, - 0xB9, 0x01, 0x96, 0x95, 0x87, 0x95, 0x77, 0x95, 0x67, 0x95, 0x60, 0x58, 0x7B, 0x47, 0x81, 0x4E, - 0x9F, 0x4F, 0x61, 0xD3, 0x21, 0x50, 0x31, 0x09, 0x30, 0x93, 0xCD, 0x00, 0x20, 0x93, 0xCC, 0x00, - 0xC0, 0x93, 0xCA, 0x00, 0x82, 0xE0, 0x80, 0x93, 0xC8, 0x00, 0x88, 0xE9, 0x80, 0x93, 0xC9, 0x00, - 0x5B, 0x98, 0x13, 0xC0, 0x81, 0x32, 0x89, 0xF4, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, - 0xE8, 0x00, 0x36, 0xD1, 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, 0x06, 0xC0, 0x80, 0x91, 0x28, 0x02, - 0x80, 0xFF, 0x02, 0xC0, 0x5F, 0x98, 0x01, 0xC0, 0x5F, 0x9A, 0xCF, 0x91, 0x08, 0x95, 0x1F, 0x92, - 0x0F, 0x92, 0x0F, 0xB6, 0x0F, 0x92, 0x11, 0x24, 0x8F, 0x93, 0x9F, 0x93, 0xEF, 0x93, 0xFF, 0x93, - 0x90, 0x91, 0xCE, 0x00, 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, 0x17, 0xC0, 0x8E, 0xB3, 0x84, 0x30, - 0xA1, 0xF4, 0x80, 0x91, 0xA3, 0x01, 0x81, 0x38, 0x80, 0xF4, 0x80, 0x91, 0xA1, 0x01, 0xE8, 0x2F, - 0xF0, 0xE0, 0xEC, 0x55, 0xFE, 0x4F, 0x90, 0x83, 0x8F, 0x5F, 0x8F, 0x77, 0x80, 0x93, 0xA1, 0x01, - 0x80, 0x91, 0xA3, 0x01, 0x8F, 0x5F, 0x80, 0x93, 0xA3, 0x01, 0xFF, 0x91, 0xEF, 0x91, 0x9F, 0x91, - 0x8F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, 0x18, 0x95, 0x29, 0x2F, 0x30, 0xE0, - 0x22, 0x30, 0x31, 0x05, 0x39, 0xF0, 0x23, 0x30, 0x31, 0x05, 0x49, 0xF0, 0x21, 0x30, 0x31, 0x05, - 0x61, 0xF4, 0x10, 0xC0, 0x8E, 0xE3, 0x90, 0xE0, 0x22, 0xE4, 0x31, 0xE0, 0x1E, 0xC0, 0x88, 0x23, - 0x71, 0xF0, 0x81, 0x30, 0x89, 0xF0, 0x82, 0x30, 0xA1, 0xF0, 0x80, 0xE0, 0x90, 0xE0, 0x20, 0xE0, - 0x30, 0xE0, 0x13, 0xC0, 0x82, 0xE1, 0x90, 0xE0, 0x20, 0xE8, 0x31, 0xE0, 0x0E, 0xC0, 0x84, 0xE0, - 0x90, 0xE0, 0x2E, 0xE3, 0x31, 0xE0, 0x09, 0xC0, 0x82, 0xE1, 0x90, 0xE0, 0x2A, 0xE2, 0x31, 0xE0, - 0x04, 0xC0, 0x80, 0xE2, 0x90, 0xE0, 0x28, 0xE0, 0x31, 0xE0, 0xFA, 0x01, 0x31, 0x83, 0x20, 0x83, - 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, 0x23, 0xE0, 0xFB, 0x01, - 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0x81, 0xE1, 0x80, 0x93, - 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, - 0x25, 0xE0, 0xFB, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, - 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, - 0xF9, 0x99, 0xFE, 0xCF, 0x21, 0xE0, 0xFB, 0x01, 0x0A, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, - 0x11, 0x24, 0x08, 0x95, 0x21, 0xE2, 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, - 0x29, 0xE0, 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, 0xE1, 0xE0, 0xF0, 0xE0, - 0x89, 0xE0, 0x80, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, - 0xF9, 0x99, 0xFE, 0xCF, 0x80, 0x95, 0x99, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x08, 0x2E, 0x90, 0x93, - 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x20, 0x91, 0x2C, 0x02, 0x30, 0x91, 0x2D, 0x02, 0x26, 0x17, - 0x37, 0x07, 0x48, 0xF0, 0x61, 0x15, 0x71, 0x05, 0x39, 0xF4, 0x20, 0x91, 0xE8, 0x00, 0x2E, 0x77, - 0x20, 0x93, 0xE8, 0x00, 0x01, 0xC0, 0xB9, 0x01, 0x20, 0xE0, 0x61, 0x15, 0x71, 0x05, 0xC9, 0xF1, - 0x3E, 0xB3, 0x33, 0x23, 0x09, 0xF4, 0x42, 0xC0, 0x35, 0x30, 0x09, 0xF4, 0x41, 0xC0, 0x30, 0x91, - 0xE8, 0x00, 0x33, 0xFD, 0x3F, 0xC0, 0x30, 0x91, 0xE8, 0x00, 0x32, 0xFF, 0x06, 0xC0, 0x80, 0x91, - 0xE8, 0x00, 0x82, 0xFF, 0x29, 0xC0, 0x80, 0xE0, 0x08, 0x95, 0x30, 0x91, 0xE8, 0x00, 0x30, 0xFF, - 0xE4, 0xCF, 0x20, 0x91, 0xF2, 0x00, 0x30, 0xE0, 0xFC, 0x01, 0x28, 0x1B, 0x39, 0x0B, 0xCF, 0x01, - 0x82, 0x0F, 0x93, 0x1F, 0x61, 0x15, 0x71, 0x05, 0x49, 0xF0, 0x88, 0x30, 0x91, 0x05, 0x30, 0xF4, - 0x81, 0x91, 0x80, 0x93, 0xF1, 0x00, 0x61, 0x50, 0x71, 0x09, 0xF1, 0xCF, 0x21, 0xE0, 0x08, 0x97, - 0x09, 0xF0, 0x20, 0xE0, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0xCF, 0x01, - 0xC4, 0xCF, 0x21, 0x11, 0xC5, 0xCF, 0xD3, 0xCF, 0x8E, 0xB3, 0x88, 0x23, 0x39, 0xF0, 0x85, 0x30, - 0x39, 0xF0, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFF, 0xCA, 0xCF, 0x04, 0xC0, 0x82, 0xE0, 0x08, 0x95, - 0x83, 0xE0, 0x08, 0x95, 0x81, 0xE0, 0x08, 0x95, 0x8F, 0x70, 0x80, 0x93, 0xE9, 0x00, 0xEB, 0xEE, - 0xF0, 0xE0, 0x80, 0x81, 0x81, 0x60, 0x80, 0x83, 0xED, 0xEE, 0xF0, 0xE0, 0x10, 0x82, 0x60, 0x93, - 0xEC, 0x00, 0x40, 0x83, 0x80, 0x91, 0xEE, 0x00, 0x88, 0x1F, 0x88, 0x27, 0x88, 0x1F, 0x08, 0x95, - 0x80, 0x91, 0x26, 0x02, 0x87, 0xFD, 0x05, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0x0D, 0xC0, - 0x10, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFD, 0x04, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, - 0x08, 0x95, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x07, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xEC, 0xCF, - 0x08, 0x95, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x08, 0x95, 0x3C, 0xD0, - 0x3E, 0xD0, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x77, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, - 0x80, 0x68, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x7D, 0x80, 0x93, 0xD8, 0x00, - 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, 0x89, 0xBD, 0x09, 0xB4, 0x00, 0xFE, 0xFD, 0xCF, 0x1E, 0xBA, - 0x10, 0x92, 0x24, 0x02, 0x42, 0xE0, 0x60, 0xE0, 0x80, 0xE0, 0xAE, 0xDF, 0x80, 0x91, 0xE1, 0x00, - 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, - 0x80, 0x91, 0xE2, 0x00, 0x88, 0x60, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE0, 0x00, 0x8E, 0x7F, - 0x80, 0x93, 0xE0, 0x00, 0x08, 0x95, 0xE3, 0xE6, 0xF0, 0xE0, 0x80, 0x81, 0x8E, 0x7F, 0x80, 0x83, - 0x81, 0xE0, 0x80, 0x93, 0x25, 0x02, 0xC3, 0xCF, 0x10, 0x92, 0xE2, 0x00, 0x08, 0x95, 0x10, 0x92, - 0xE1, 0x00, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, 0x0F, 0x92, 0x11, 0x24, 0x2F, 0x93, - 0x3F, 0x93, 0x4F, 0x93, 0x5F, 0x93, 0x6F, 0x93, 0x7F, 0x93, 0x8F, 0x93, 0x9F, 0x93, 0xAF, 0x93, - 0xBF, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x80, 0x91, 0xE1, 0x00, 0x80, 0xFF, 0x16, 0xC0, 0x80, 0x91, - 0xE2, 0x00, 0x80, 0xFF, 0x12, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE2, 0x00, - 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xD8, 0x00, 0x80, 0x62, - 0x80, 0x93, 0xD8, 0x00, 0x19, 0xBC, 0x1E, 0xBA, 0x6A, 0xD1, 0x80, 0x91, 0xE1, 0x00, 0x84, 0xFF, - 0x2E, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x84, 0xFF, 0x2A, 0xC0, 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, - 0x89, 0xBD, 0x09, 0xB4, 0x00, 0xFE, 0xFD, 0xCF, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x7D, 0x80, 0x93, - 0xD8, 0x00, 0x80, 0x91, 0xE1, 0x00, 0x8F, 0x7E, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, - 0x8F, 0x7E, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, - 0x80, 0x91, 0x24, 0x02, 0x88, 0x23, 0x11, 0xF0, 0x84, 0xE0, 0x07, 0xC0, 0x80, 0x91, 0xE3, 0x00, - 0x87, 0xFF, 0x02, 0xC0, 0x83, 0xE0, 0x01, 0xC0, 0x81, 0xE0, 0x8E, 0xBB, 0x38, 0xD1, 0x80, 0x91, - 0xE1, 0x00, 0x83, 0xFF, 0x21, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x83, 0xFF, 0x1D, 0xC0, 0x80, 0x91, - 0xE1, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x82, 0xE0, 0x8E, 0xBB, 0x10, 0x92, 0x24, 0x02, - 0x80, 0x91, 0xE1, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x8E, 0x7F, - 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, 0x80, 0x93, 0xE2, 0x00, 0x42, 0xE0, - 0x60, 0xE0, 0x80, 0xE0, 0x09, 0xDF, 0x13, 0xD1, 0xFF, 0x91, 0xEF, 0x91, 0xBF, 0x91, 0xAF, 0x91, - 0x9F, 0x91, 0x8F, 0x91, 0x7F, 0x91, 0x6F, 0x91, 0x5F, 0x91, 0x4F, 0x91, 0x3F, 0x91, 0x2F, 0x91, - 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, 0x18, 0x95, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, - 0x00, 0xD0, 0xCD, 0xB7, 0xDE, 0xB7, 0xE6, 0xE2, 0xF2, 0xE0, 0x80, 0x91, 0xF1, 0x00, 0x81, 0x93, - 0x82, 0xE0, 0xEE, 0x32, 0xF8, 0x07, 0xC9, 0xF7, 0xFE, 0xDC, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFF, - 0xDA, 0xC0, 0x90, 0x91, 0x26, 0x02, 0x80, 0x91, 0x27, 0x02, 0x85, 0x30, 0x09, 0xF4, 0x65, 0xC0, - 0x30, 0xF4, 0x81, 0x30, 0x59, 0xF1, 0x68, 0xF0, 0x83, 0x30, 0x41, 0xF1, 0xCC, 0xC0, 0x88, 0x30, - 0x09, 0xF4, 0x9C, 0xC0, 0x89, 0x30, 0x09, 0xF4, 0xAB, 0xC0, 0x86, 0x30, 0x09, 0xF0, 0xC3, 0xC0, - 0x75, 0xC0, 0x90, 0x38, 0x81, 0xF0, 0x92, 0x38, 0x09, 0xF0, 0xBD, 0xC0, 0x80, 0x91, 0x2A, 0x02, - 0x8F, 0x70, 0x80, 0x93, 0xE9, 0x00, 0x90, 0x91, 0xEB, 0x00, 0x95, 0xFB, 0x99, 0x27, 0x90, 0xF9, - 0x10, 0x92, 0xE9, 0x00, 0x01, 0xC0, 0x90, 0xE0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, - 0xE8, 0x00, 0x90, 0x93, 0xF1, 0x00, 0x10, 0x92, 0xF1, 0x00, 0x83, 0xC0, 0x29, 0x2F, 0x2D, 0x7F, - 0x09, 0xF0, 0xA1, 0xC0, 0x92, 0x30, 0x09, 0xF0, 0x9E, 0xC0, 0x90, 0x91, 0x28, 0x02, 0x91, 0x11, - 0x26, 0xC0, 0x20, 0x91, 0x2A, 0x02, 0x2F, 0x70, 0x09, 0xF4, 0x95, 0xC0, 0x20, 0x93, 0xE9, 0x00, - 0x90, 0x91, 0xEB, 0x00, 0x90, 0xFF, 0x1B, 0xC0, 0x83, 0x30, 0x21, 0xF4, 0x80, 0x91, 0xEB, 0x00, - 0x80, 0x62, 0x13, 0xC0, 0x80, 0x91, 0xEB, 0x00, 0x80, 0x61, 0x80, 0x93, 0xEB, 0x00, 0x81, 0xE0, - 0x90, 0xE0, 0x02, 0x2E, 0x01, 0xC0, 0x88, 0x0F, 0x0A, 0x94, 0xEA, 0xF7, 0x80, 0x93, 0xEA, 0x00, - 0x10, 0x92, 0xEA, 0x00, 0x80, 0x91, 0xEB, 0x00, 0x88, 0x60, 0x80, 0x93, 0xEB, 0x00, 0x10, 0x92, - 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x4F, 0xC0, 0x91, 0x11, 0x6C, 0xC0, 0x10, 0x91, - 0x28, 0x02, 0x1F, 0x77, 0x80, 0x91, 0xE3, 0x00, 0x80, 0x78, 0x81, 0x2B, 0x80, 0x93, 0xE3, 0x00, - 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x7A, 0xDE, 0x80, 0x91, 0xE8, 0x00, - 0x80, 0xFF, 0xFC, 0xCF, 0x80, 0x91, 0xE3, 0x00, 0x80, 0x68, 0x80, 0x93, 0xE3, 0x00, 0x11, 0x23, - 0x11, 0xF0, 0x83, 0xE0, 0x01, 0xC0, 0x82, 0xE0, 0x8E, 0xBB, 0x4D, 0xC0, 0x90, 0x58, 0x92, 0x30, - 0x08, 0xF0, 0x49, 0xC0, 0xAE, 0x01, 0x4F, 0x5F, 0x5F, 0x4F, 0x60, 0x91, 0x2A, 0x02, 0x80, 0x91, - 0x28, 0x02, 0x90, 0x91, 0x29, 0x02, 0x62, 0xDD, 0x00, 0x97, 0x09, 0xF4, 0x3C, 0xC0, 0x20, 0x91, - 0xE8, 0x00, 0x27, 0x7F, 0x20, 0x93, 0xE8, 0x00, 0xBC, 0x01, 0x89, 0x81, 0x9A, 0x81, 0xDB, 0xDD, - 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x2D, 0xC0, 0x90, 0x38, 0x59, 0xF5, - 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x80, 0x91, 0x24, 0x02, 0x80, 0x93, - 0xF1, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x39, 0xDE, 0x1B, 0xC0, - 0x91, 0x11, 0x19, 0xC0, 0x90, 0x91, 0x28, 0x02, 0x92, 0x30, 0xA8, 0xF4, 0x80, 0x91, 0xE8, 0x00, - 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x90, 0x93, 0x24, 0x02, 0x2A, 0xDE, 0x80, 0x91, 0x24, 0x02, - 0x81, 0x11, 0x04, 0xC0, 0x80, 0x91, 0xE3, 0x00, 0x87, 0xFF, 0x02, 0xC0, 0x84, 0xE0, 0x01, 0xC0, - 0x81, 0xE0, 0x8E, 0xBB, 0x14, 0xDC, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFF, 0x0A, 0xC0, 0x80, 0x91, - 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x80, 0x91, 0xEB, 0x00, 0x80, 0x62, 0x80, 0x93, - 0xEB, 0x00, 0x0F, 0x90, 0x0F, 0x90, 0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, 0x08, 0x95, 0x08, 0x95, - 0xCF, 0x93, 0x8E, 0xB3, 0x88, 0x23, 0xA9, 0xF0, 0x80, 0x91, 0xE9, 0x00, 0x8F, 0x70, 0x90, 0x91, - 0xEC, 0x00, 0x90, 0xFF, 0x02, 0xC0, 0x90, 0xE8, 0x01, 0xC0, 0x90, 0xE0, 0xC9, 0x2F, 0xC8, 0x2B, - 0x10, 0x92, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFD, 0xE7, 0xDE, 0xCF, 0x70, 0xC0, 0x93, - 0xE9, 0x00, 0xCF, 0x91, 0x08, 0x95, 0xA1, 0xE2, 0x1A, 0x2E, 0xAA, 0x1B, 0xBB, 0x1B, 0xFD, 0x01, - 0x0D, 0xC0, 0xAA, 0x1F, 0xBB, 0x1F, 0xEE, 0x1F, 0xFF, 0x1F, 0xA2, 0x17, 0xB3, 0x07, 0xE4, 0x07, - 0xF5, 0x07, 0x20, 0xF0, 0xA2, 0x1B, 0xB3, 0x0B, 0xE4, 0x0B, 0xF5, 0x0B, 0x66, 0x1F, 0x77, 0x1F, - 0x88, 0x1F, 0x99, 0x1F, 0x1A, 0x94, 0x69, 0xF7, 0x60, 0x95, 0x70, 0x95, 0x80, 0x95, 0x90, 0x95, - 0x9B, 0x01, 0xAC, 0x01, 0xBD, 0x01, 0xCF, 0x01, 0x08, 0x95, 0xF9, 0x99, 0xFE, 0xCF, 0x92, 0xBD, - 0x81, 0xBD, 0xF8, 0x9A, 0x99, 0x27, 0x80, 0xB5, 0x08, 0x95, 0x26, 0x2F, 0xF9, 0x99, 0xFE, 0xCF, - 0x1F, 0xBA, 0x92, 0xBD, 0x81, 0xBD, 0x20, 0xBD, 0x0F, 0xB6, 0xF8, 0x94, 0xFA, 0x9A, 0xF9, 0x9A, - 0x0F, 0xBE, 0x01, 0x96, 0x08, 0x95, 0xF8, 0x94, 0xFF, 0xCF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x20, 0x03, 0x48, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x4C, 0x00, 0x6F, 0x00, - 0x61, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x32, 0x00, 0x20, 0x00, 0x55, 0x00, 0x6E, 0x00, - 0x6F, 0x00, 0x00, 0x00, 0x12, 0x03, 0x4E, 0x00, 0x69, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x48, 0x00, - 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x00, 0x00, 0x04, 0x03, 0x09, 0x04, 0x09, 0x02, 0x3E, 0x00, - 0x02, 0x01, 0x00, 0x80, 0x32, 0x09, 0x04, 0x00, 0x00, 0x01, 0x02, 0x02, 0x01, 0x00, 0x05, 0x24, - 0x00, 0x10, 0x01, 0x04, 0x24, 0x02, 0x02, 0x05, 0x24, 0x06, 0x00, 0x01, 0x07, 0x05, 0x82, 0x03, - 0x08, 0x00, 0xFF, 0x09, 0x04, 0x01, 0x00, 0x02, 0x0A, 0x00, 0x00, 0x00, 0x07, 0x05, 0x04, 0x02, - 0x40, 0x00, 0x05, 0x07, 0x05, 0x83, 0x02, 0x40, 0x00, 0x05, 0x12, 0x01, 0x10, 0x01, 0x02, 0x00, - 0x00, 0x08, 0x41, 0x23, 0x43, 0x00, 0x03, 0x02, 0x01, 0x02, 0x00, 0x01, 0x48, 0x4C, 0x32, 0x2E, - 0x30, 0x2E, 0x33, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x70, 0xCC, 0x81, 0xCC, 0x92, 0xCC, 0x9E, 0xCC, 0xA3, 0xCC, 0xA8, 0xCC, 0xAE, 0xCC, 0x08, 0x95, - 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, - 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0x00, 0x70, 0x00, 0x00, 0x00, 0xDF, 0xFB, 0xDC, -}; // end of HoodLoader2_0_3_Uno_32u2_hex - - -// File = HoodLoader2_0_3_Mega_32u2.hex -// Loader start: 7000, length: 4096 -// MD5 sum = 45 8C DF 9E F4 CF E2 49 6F 98 35 4A D5 66 CE 0E - -const byte HoodLoader2_0_3_Mega_32u2_hex[] PROGMEM = { - 0x39, 0xC0, 0x00, 0x00, 0x82, 0xC0, 0x00, 0x00, 0x80, 0xC0, 0x00, 0x00, 0x7E, 0xC0, 0x00, 0x00, - 0x7C, 0xC0, 0x00, 0x00, 0x7A, 0xC0, 0x00, 0x00, 0x78, 0xC0, 0x00, 0x00, 0x76, 0xC0, 0x00, 0x00, - 0x74, 0xC0, 0x00, 0x00, 0x72, 0xC0, 0x00, 0x00, 0x70, 0xC0, 0x00, 0x00, 0x53, 0xC5, 0x00, 0x00, - 0x6C, 0xC0, 0x00, 0x00, 0x6A, 0xC0, 0x00, 0x00, 0x68, 0xC0, 0x00, 0x00, 0x66, 0xC0, 0x00, 0x00, - 0x64, 0xC0, 0x00, 0x00, 0x62, 0xC0, 0x00, 0x00, 0x60, 0xC0, 0x00, 0x00, 0x5E, 0xC0, 0x00, 0x00, - 0x5C, 0xC0, 0x00, 0x00, 0x5A, 0xC0, 0x00, 0x00, 0x58, 0xC0, 0x00, 0x00, 0xB0, 0xC3, 0x00, 0x00, - 0x54, 0xC0, 0x00, 0x00, 0x52, 0xC0, 0x00, 0x00, 0x50, 0xC0, 0x00, 0x00, 0x4E, 0xC0, 0x00, 0x00, - 0x4C, 0xC0, 0x00, 0x00, 0x11, 0x24, 0x1F, 0xBE, 0xCF, 0xEF, 0xD4, 0xE0, 0xDE, 0xBF, 0xCD, 0xBF, - 0x30, 0x91, 0x80, 0x02, 0x10, 0x92, 0x80, 0x02, 0x24, 0xB7, 0x14, 0xBE, 0x88, 0xE1, 0x0F, 0xB6, - 0xF8, 0x94, 0x80, 0x93, 0x60, 0x00, 0x10, 0x92, 0x60, 0x00, 0x0F, 0xBE, 0xE0, 0xE0, 0xF0, 0xE0, - 0x85, 0x91, 0x94, 0x91, 0x01, 0x96, 0xE1, 0xF0, 0x21, 0xFF, 0x12, 0xC0, 0x37, 0x37, 0xC1, 0xF0, - 0x87, 0xE7, 0x80, 0x93, 0x80, 0x02, 0x8F, 0xEF, 0x9E, 0xE9, 0x24, 0xE2, 0x81, 0x50, 0x90, 0x40, - 0x20, 0x40, 0xE1, 0xF7, 0x00, 0xC0, 0x00, 0x00, 0x10, 0x92, 0x80, 0x02, 0x1F, 0xD0, 0x08, 0xC0, - 0x20, 0xFF, 0x02, 0xC0, 0x1B, 0xD0, 0x04, 0xC0, 0x23, 0xFF, 0x02, 0xC0, 0x37, 0x37, 0xD1, 0xF7, - 0x11, 0xE0, 0xA0, 0xE0, 0xB1, 0xE0, 0xEA, 0xEA, 0xFE, 0xE7, 0x02, 0xC0, 0x05, 0x90, 0x0D, 0x92, - 0xAC, 0x39, 0xB1, 0x07, 0xD9, 0xF7, 0x22, 0xE0, 0xAC, 0xE9, 0xB1, 0xE0, 0x01, 0xC0, 0x1D, 0x92, - 0xA0, 0x33, 0xB2, 0x07, 0xE1, 0xF7, 0x37, 0xD0, 0xCE, 0xC6, 0x7A, 0xCF, 0x8B, 0xB1, 0x80, 0x63, - 0x8B, 0xB9, 0x0C, 0x94, 0x00, 0x00, 0x08, 0x95, 0x84, 0xE0, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, - 0xE8, 0x00, 0x85, 0xFD, 0x0E, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, - 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFD, 0xF3, 0xCF, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, 0x80, 0xE0, - 0x08, 0x95, 0x80, 0x91, 0xF1, 0x00, 0x08, 0x95, 0x93, 0xE0, 0x90, 0x93, 0xE9, 0x00, 0x90, 0x91, - 0xE8, 0x00, 0x95, 0xFF, 0x03, 0xC0, 0x80, 0x93, 0xF1, 0x00, 0x08, 0x95, 0x90, 0x91, 0xE8, 0x00, - 0x9E, 0x77, 0x90, 0x93, 0xE8, 0x00, 0x90, 0x91, 0xE8, 0x00, 0x90, 0xFD, 0xF4, 0xCF, 0x9E, 0xB3, - 0x91, 0x11, 0xF9, 0xCF, 0x08, 0x95, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0x1F, 0x92, 0xCD, 0xB7, - 0xDE, 0xB7, 0x90, 0xE0, 0x80, 0xE8, 0x0F, 0xB6, 0xF8, 0x94, 0x80, 0x93, 0x61, 0x00, 0x90, 0x93, - 0x61, 0x00, 0x0F, 0xBE, 0x81, 0xE0, 0x85, 0xBF, 0x82, 0xE0, 0x85, 0xBF, 0x8C, 0xD4, 0x84, 0xE0, - 0x85, 0xBD, 0x8A, 0xB1, 0x88, 0x6B, 0x8A, 0xB9, 0x8B, 0xB1, 0x84, 0x6B, 0x8B, 0xB9, 0x78, 0x94, - 0x13, 0xE0, 0x77, 0x24, 0x73, 0x94, 0xE5, 0xE0, 0x4E, 0x2E, 0x21, 0x2C, 0x31, 0x2C, 0x80, 0x91, - 0x00, 0x01, 0x88, 0x23, 0x09, 0xF4, 0x0A, 0xC2, 0x84, 0xE0, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, - 0xE8, 0x00, 0x82, 0xFF, 0x90, 0xC1, 0xA0, 0xDF, 0x98, 0x2F, 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, - 0x13, 0xC0, 0x80, 0x91, 0xC8, 0x00, 0x85, 0xFF, 0xFC, 0xCF, 0x90, 0x93, 0xCE, 0x00, 0x80, 0x91, - 0xF2, 0x00, 0x81, 0x11, 0x05, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, - 0x5C, 0x98, 0x10, 0x93, 0xA1, 0x01, 0x7B, 0xC1, 0x95, 0x34, 0x19, 0xF4, 0x10, 0x92, 0x00, 0x01, - 0x32, 0xC0, 0x88, 0xE8, 0x89, 0x0F, 0x82, 0x30, 0x10, 0xF0, 0x94, 0x35, 0x11, 0xF4, 0x7C, 0xDF, - 0x2A, 0xC0, 0x90, 0x35, 0x41, 0xF1, 0x9C, 0x34, 0x31, 0xF1, 0x94, 0x37, 0x21, 0xF4, 0x84, 0xE4, - 0x8B, 0xDF, 0x80, 0xE0, 0x03, 0xC0, 0x91, 0x36, 0x19, 0xF4, 0x89, 0xE5, 0x85, 0xDF, 0x5F, 0xC1, - 0x91, 0x34, 0xD9, 0xF4, 0x69, 0xDF, 0x08, 0x2F, 0x67, 0xDF, 0x90, 0xE0, 0x88, 0x0F, 0x99, 0x1F, - 0x20, 0x2F, 0x30, 0xE0, 0x32, 0x2F, 0x22, 0x27, 0x33, 0x0F, 0x82, 0x2B, 0x93, 0x2B, 0xAA, 0x27, - 0x97, 0xFD, 0xA0, 0x95, 0xBA, 0x2F, 0x80, 0x93, 0x9C, 0x01, 0x90, 0x93, 0x9D, 0x01, 0xA0, 0x93, - 0x9E, 0x01, 0xB0, 0x93, 0x9F, 0x01, 0x8D, 0xE0, 0xE1, 0xCF, 0x90, 0x37, 0x11, 0xF4, 0x83, 0xE5, - 0xDD, 0xCF, 0x93, 0x35, 0x71, 0xF4, 0x54, 0xE9, 0xE5, 0x2E, 0x51, 0xE0, 0xF5, 0x2E, 0xF7, 0x01, - 0x81, 0x91, 0x7F, 0x01, 0x59, 0xDF, 0xFB, 0xE9, 0xEF, 0x16, 0xF1, 0xE0, 0xFF, 0x06, 0xB9, 0xF7, - 0x2E, 0xC1, 0x96, 0x35, 0x21, 0xF4, 0x81, 0xE3, 0x4F, 0xDF, 0x80, 0xE3, 0xC7, 0xCF, 0x93, 0x37, - 0x31, 0xF4, 0x8A, 0xE8, 0x49, 0xDF, 0x85, 0xE9, 0x47, 0xDF, 0x8E, 0xE1, 0xBF, 0xCF, 0x95, 0x36, - 0xA9, 0xF4, 0xE0, 0xE0, 0xF0, 0xE0, 0x10, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, - 0xFD, 0xCF, 0x40, 0x92, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xE0, 0x58, - 0xFF, 0x4F, 0xE1, 0x15, 0x80, 0xE7, 0xF8, 0x07, 0x71, 0xF7, 0xC5, 0xCF, 0x9C, 0x36, 0x51, 0xF4, - 0x13, 0xDF, 0x80, 0x95, 0x99, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x08, 0x2E, 0x90, 0x93, 0x57, 0x00, - 0xE8, 0x95, 0xB9, 0xCF, 0x92, 0x37, 0x21, 0xF4, 0x89, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x10, 0xC0, - 0x96, 0x34, 0x19, 0xF4, 0x89, 0xE0, 0xF1, 0x01, 0x0B, 0xC0, 0x9E, 0x34, 0x21, 0xF4, 0x89, 0xE0, - 0xE3, 0xE0, 0xF0, 0xE0, 0x05, 0xC0, 0x91, 0x35, 0x39, 0xF4, 0x89, 0xE0, 0xE2, 0xE0, 0xF0, 0xE0, - 0x80, 0x93, 0x57, 0x00, 0x84, 0x91, 0x82, 0xCF, 0x92, 0x36, 0x31, 0xF4, 0x89, 0xE5, 0x04, 0xDF, - 0x80, 0xE0, 0x02, 0xDF, 0x80, 0xE8, 0x7A, 0xCF, 0x92, 0x34, 0x19, 0xF0, 0x97, 0x36, 0x09, 0xF0, - 0xCE, 0xC0, 0x99, 0x83, 0xE1, 0xDE, 0xA8, 0x2E, 0xB1, 0x2C, 0xBA, 0x2C, 0xAA, 0x24, 0xDC, 0xDE, - 0xA8, 0x2A, 0xDA, 0xDE, 0x08, 0x2F, 0x8B, 0xEB, 0x80, 0x0F, 0x99, 0x81, 0x82, 0x30, 0x10, 0xF0, - 0x8F, 0xE3, 0x64, 0xCF, 0x97, 0x36, 0x09, 0xF0, 0x44, 0xC0, 0xF1, 0xE1, 0xF0, 0x93, 0x57, 0x00, - 0xE8, 0x95, 0x45, 0x01, 0xB1, 0x2C, 0x81, 0x14, 0x91, 0x04, 0x09, 0xF4, 0xB8, 0xC0, 0xC0, 0x90, - 0x9C, 0x01, 0xD0, 0x90, 0x9D, 0x01, 0xE0, 0x90, 0x9E, 0x01, 0xF0, 0x90, 0x9F, 0x01, 0x06, 0x34, - 0xB9, 0xF4, 0xEB, 0x2D, 0xF0, 0xE0, 0xEC, 0x29, 0xFD, 0x29, 0x84, 0x91, 0xCD, 0xDE, 0xBB, 0x20, - 0x69, 0xF0, 0x82, 0xE0, 0xC8, 0x0E, 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9C, 0x01, - 0xD0, 0x92, 0x9D, 0x01, 0xE0, 0x92, 0x9E, 0x01, 0xF0, 0x92, 0x9F, 0x01, 0xB7, 0x24, 0x15, 0xC0, - 0xD7, 0x01, 0xC6, 0x01, 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0x4E, 0xD5, 0xB4, 0xDE, - 0x92, 0xE0, 0xC9, 0x0E, 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9C, 0x01, 0xD0, 0x92, - 0x9D, 0x01, 0xE0, 0x92, 0x9E, 0x01, 0xF0, 0x92, 0x9F, 0x01, 0xE1, 0xE0, 0x8E, 0x1A, 0x91, 0x08, - 0xC2, 0xCF, 0xC0, 0x90, 0x9C, 0x01, 0xD0, 0x90, 0x9D, 0x01, 0xE0, 0x90, 0x9E, 0x01, 0xF0, 0x90, - 0x9F, 0x01, 0x06, 0x34, 0x29, 0xF0, 0xBB, 0x82, 0xAA, 0x82, 0x51, 0x2C, 0x61, 0x2C, 0x31, 0xC0, - 0xF6, 0x01, 0x10, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xF3, 0xCF, - 0x06, 0x34, 0x79, 0xF5, 0x66, 0x20, 0x51, 0xF1, 0x80, 0x90, 0x9C, 0x01, 0x90, 0x90, 0x9D, 0x01, - 0xA0, 0x90, 0x9E, 0x01, 0xB0, 0x90, 0x9F, 0x01, 0x67, 0xDE, 0x25, 0x2D, 0x30, 0xE0, 0x38, 0x2B, - 0xF4, 0x01, 0x09, 0x01, 0x70, 0x92, 0x57, 0x00, 0xE8, 0x95, 0x11, 0x24, 0xF2, 0xE0, 0x8F, 0x0E, - 0x91, 0x1C, 0xA1, 0x1C, 0xB1, 0x1C, 0x80, 0x92, 0x9C, 0x01, 0x90, 0x92, 0x9D, 0x01, 0xA0, 0x92, - 0x9E, 0x01, 0xB0, 0x92, 0x9F, 0x01, 0x67, 0x24, 0x8A, 0x81, 0x9B, 0x81, 0x01, 0x97, 0x9B, 0x83, - 0x8A, 0x83, 0xEA, 0x81, 0xFB, 0x81, 0xEF, 0x2B, 0x99, 0xF6, 0x26, 0xC0, 0x45, 0xDE, 0x58, 0x2E, - 0xF2, 0xCF, 0x42, 0xDE, 0x68, 0x2F, 0x80, 0x91, 0x9C, 0x01, 0x90, 0x91, 0x9D, 0x01, 0xA0, 0x91, - 0x9E, 0x01, 0xB0, 0x91, 0x9F, 0x01, 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0xED, 0xD4, - 0x80, 0x91, 0x9C, 0x01, 0x90, 0x91, 0x9D, 0x01, 0xA0, 0x91, 0x9E, 0x01, 0xB0, 0x91, 0x9F, 0x01, - 0x02, 0x96, 0xA1, 0x1D, 0xB1, 0x1D, 0x80, 0x93, 0x9C, 0x01, 0x90, 0x93, 0x9D, 0x01, 0xA0, 0x93, - 0x9E, 0x01, 0xB0, 0x93, 0x9F, 0x01, 0xD0, 0xCF, 0x06, 0x34, 0x09, 0xF0, 0xCC, 0xCE, 0xF6, 0x01, - 0x40, 0x92, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xC4, 0xCE, 0x9B, 0x31, - 0x09, 0xF0, 0x3E, 0xCF, 0x04, 0xC0, 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, 0x56, 0xC0, 0x8F, 0xB7, - 0xF8, 0x94, 0x90, 0x91, 0xA5, 0x01, 0x8F, 0xBF, 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, 0x06, 0xC0, - 0x99, 0x23, 0x09, 0xF4, 0x4A, 0xC0, 0x5D, 0x98, 0x10, 0x93, 0xA2, 0x01, 0x09, 0x2F, 0x00, 0x23, - 0xB9, 0xF0, 0xF0, 0x90, 0xA4, 0x01, 0xEF, 0x2D, 0xF0, 0xE0, 0xEA, 0x55, 0xFE, 0x4F, 0x80, 0x81, - 0x0B, 0xDE, 0x81, 0xE0, 0x8F, 0x0D, 0x8F, 0x77, 0x80, 0x93, 0xA4, 0x01, 0x9F, 0xB7, 0xF8, 0x94, - 0x80, 0x91, 0xA5, 0x01, 0x81, 0x50, 0x80, 0x93, 0xA5, 0x01, 0x9F, 0xBF, 0x01, 0x50, 0xE7, 0xCF, - 0x10, 0x93, 0xE9, 0x00, 0x90, 0x91, 0xE8, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, - 0xE8, 0x00, 0x95, 0xFD, 0x1D, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFD, 0x10, 0xC0, 0x8E, 0xB3, - 0x81, 0x11, 0xF9, 0xCF, 0x80, 0x91, 0xA0, 0x01, 0x88, 0x23, 0xB9, 0xF0, 0xF4, 0xE0, 0xF0, 0x93, - 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x0E, 0xC0, 0x80, 0x91, - 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x03, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x51, 0xF3, - 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xF9, 0xCF, 0xE5, 0xCF, 0xA8, 0x9B, 0x15, 0xC0, 0xA8, 0x9A, - 0x80, 0x91, 0xA2, 0x01, 0x88, 0x23, 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, 0xA2, 0x01, 0x81, 0x11, - 0x01, 0xC0, 0x5D, 0x9A, 0x80, 0x91, 0xA1, 0x01, 0x88, 0x23, 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, - 0xA1, 0x01, 0x81, 0x11, 0x01, 0xC0, 0x5C, 0x9A, 0x13, 0xD4, 0xF1, 0xCD, 0x80, 0x91, 0xE0, 0x00, - 0x81, 0x60, 0x80, 0x93, 0xE0, 0x00, 0x2C, 0xE0, 0x88, 0xE1, 0x90, 0xE0, 0x0F, 0xB6, 0xF8, 0x94, - 0xA8, 0x95, 0x80, 0x93, 0x60, 0x00, 0x0F, 0xBE, 0x20, 0x93, 0x60, 0x00, 0xFF, 0xCF, 0x42, 0xE0, - 0x61, 0xEC, 0x82, 0xE0, 0xF1, 0xD1, 0x42, 0xE3, 0x61, 0xE8, 0x83, 0xE0, 0xED, 0xD1, 0x42, 0xE3, - 0x60, 0xE8, 0x84, 0xE0, 0xE9, 0xC1, 0xCF, 0x93, 0x80, 0x91, 0x28, 0x02, 0x98, 0x2F, 0x9F, 0x77, - 0x91, 0x32, 0x09, 0xF0, 0xCA, 0xC0, 0x90, 0x91, 0x29, 0x02, 0x91, 0x32, 0x39, 0xF0, 0x92, 0x32, - 0x09, 0xF4, 0xB0, 0xC0, 0x90, 0x32, 0x09, 0xF0, 0xC0, 0xC0, 0x13, 0xC0, 0x81, 0x3A, 0x09, 0xF0, - 0xBC, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x67, 0xE0, 0x70, 0xE0, - 0x81, 0xE0, 0x91, 0xE0, 0x68, 0xD1, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, - 0xAC, 0xC0, 0x81, 0x32, 0x09, 0xF0, 0xA9, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, - 0xE8, 0x00, 0x27, 0xE0, 0x81, 0xE0, 0x91, 0xE0, 0x3E, 0xB3, 0x33, 0x23, 0x31, 0xF1, 0x35, 0x30, - 0x21, 0xF1, 0x30, 0x91, 0xE8, 0x00, 0x33, 0xFD, 0x20, 0xC0, 0x30, 0x91, 0xE8, 0x00, 0x32, 0xFF, - 0xF3, 0xCF, 0xFC, 0x01, 0xCF, 0x01, 0x30, 0x91, 0xF2, 0x00, 0x33, 0x23, 0x31, 0xF0, 0x80, 0x91, - 0xF1, 0x00, 0x81, 0x93, 0xCF, 0x01, 0x21, 0x50, 0xA9, 0xF7, 0x30, 0x91, 0xE8, 0x00, 0x3B, 0x77, - 0x30, 0x93, 0xE8, 0x00, 0x21, 0x11, 0xE0, 0xCF, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFD, 0x05, 0xC0, - 0x8E, 0xB3, 0x88, 0x23, 0x11, 0xF0, 0x85, 0x30, 0xB9, 0xF7, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, - 0x80, 0x93, 0xE8, 0x00, 0x80, 0x91, 0x01, 0x01, 0x90, 0x91, 0x02, 0x01, 0xA0, 0x91, 0x03, 0x01, - 0xB0, 0x91, 0x04, 0x01, 0x81, 0x15, 0x91, 0x4E, 0xA1, 0x05, 0xB1, 0x05, 0x21, 0xF4, 0x81, 0xE0, - 0x80, 0x93, 0xA0, 0x01, 0x02, 0xC0, 0x10, 0x92, 0xA0, 0x01, 0x10, 0x92, 0xA5, 0x01, 0x10, 0x92, - 0xA4, 0x01, 0x10, 0x92, 0xA3, 0x01, 0x80, 0x91, 0x06, 0x01, 0x81, 0x30, 0x31, 0xF0, 0x82, 0x30, - 0x11, 0xF0, 0xC0, 0xE0, 0x03, 0xC0, 0xC0, 0xE2, 0x01, 0xC0, 0xC0, 0xE3, 0x80, 0x91, 0x05, 0x01, - 0x82, 0x30, 0x09, 0xF4, 0xC8, 0x60, 0x80, 0x91, 0x07, 0x01, 0x87, 0x30, 0x31, 0xF0, 0x88, 0x30, - 0x31, 0xF0, 0x86, 0x30, 0x29, 0xF4, 0xC2, 0x60, 0x03, 0xC0, 0xC4, 0x60, 0x01, 0xC0, 0xC6, 0x60, - 0x5B, 0x9A, 0x10, 0x92, 0xC9, 0x00, 0x10, 0x92, 0xC8, 0x00, 0x10, 0x92, 0xCA, 0x00, 0x20, 0x91, - 0x01, 0x01, 0x30, 0x91, 0x02, 0x01, 0x40, 0x91, 0x03, 0x01, 0x50, 0x91, 0x04, 0x01, 0xCA, 0x01, - 0xB9, 0x01, 0x96, 0x95, 0x87, 0x95, 0x77, 0x95, 0x67, 0x95, 0x60, 0x58, 0x7B, 0x47, 0x81, 0x4E, - 0x9F, 0x4F, 0x61, 0xD3, 0x21, 0x50, 0x31, 0x09, 0x30, 0x93, 0xCD, 0x00, 0x20, 0x93, 0xCC, 0x00, - 0xC0, 0x93, 0xCA, 0x00, 0x82, 0xE0, 0x80, 0x93, 0xC8, 0x00, 0x88, 0xE9, 0x80, 0x93, 0xC9, 0x00, - 0x5B, 0x98, 0x13, 0xC0, 0x81, 0x32, 0x89, 0xF4, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, - 0xE8, 0x00, 0x36, 0xD1, 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, 0x06, 0xC0, 0x80, 0x91, 0x2A, 0x02, - 0x80, 0xFF, 0x02, 0xC0, 0x5F, 0x98, 0x01, 0xC0, 0x5F, 0x9A, 0xCF, 0x91, 0x08, 0x95, 0x1F, 0x92, - 0x0F, 0x92, 0x0F, 0xB6, 0x0F, 0x92, 0x11, 0x24, 0x8F, 0x93, 0x9F, 0x93, 0xEF, 0x93, 0xFF, 0x93, - 0x90, 0x91, 0xCE, 0x00, 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, 0x17, 0xC0, 0x8E, 0xB3, 0x84, 0x30, - 0xA1, 0xF4, 0x80, 0x91, 0xA5, 0x01, 0x81, 0x38, 0x80, 0xF4, 0x80, 0x91, 0xA3, 0x01, 0xE8, 0x2F, - 0xF0, 0xE0, 0xEA, 0x55, 0xFE, 0x4F, 0x90, 0x83, 0x8F, 0x5F, 0x8F, 0x77, 0x80, 0x93, 0xA3, 0x01, - 0x80, 0x91, 0xA5, 0x01, 0x8F, 0x5F, 0x80, 0x93, 0xA5, 0x01, 0xFF, 0x91, 0xEF, 0x91, 0x9F, 0x91, - 0x8F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, 0x18, 0x95, 0x29, 0x2F, 0x30, 0xE0, - 0x22, 0x30, 0x31, 0x05, 0x39, 0xF0, 0x23, 0x30, 0x31, 0x05, 0x49, 0xF0, 0x21, 0x30, 0x31, 0x05, - 0x61, 0xF4, 0x10, 0xC0, 0x8E, 0xE3, 0x90, 0xE0, 0x24, 0xE4, 0x31, 0xE0, 0x1E, 0xC0, 0x88, 0x23, - 0x71, 0xF0, 0x81, 0x30, 0x89, 0xF0, 0x82, 0x30, 0xA1, 0xF0, 0x80, 0xE0, 0x90, 0xE0, 0x20, 0xE0, - 0x30, 0xE0, 0x13, 0xC0, 0x82, 0xE1, 0x90, 0xE0, 0x22, 0xE8, 0x31, 0xE0, 0x0E, 0xC0, 0x84, 0xE0, - 0x90, 0xE0, 0x20, 0xE4, 0x31, 0xE0, 0x09, 0xC0, 0x82, 0xE1, 0x90, 0xE0, 0x2C, 0xE2, 0x31, 0xE0, - 0x04, 0xC0, 0x82, 0xE2, 0x90, 0xE0, 0x28, 0xE0, 0x31, 0xE0, 0xFA, 0x01, 0x31, 0x83, 0x20, 0x83, - 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, 0x23, 0xE0, 0xFB, 0x01, - 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0x81, 0xE1, 0x80, 0x93, - 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, - 0x25, 0xE0, 0xFB, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, - 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, - 0xF9, 0x99, 0xFE, 0xCF, 0x21, 0xE0, 0xFB, 0x01, 0x0A, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, - 0x11, 0x24, 0x08, 0x95, 0x21, 0xE2, 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, - 0x29, 0xE0, 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, 0xE1, 0xE0, 0xF0, 0xE0, - 0x89, 0xE0, 0x80, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, - 0xF9, 0x99, 0xFE, 0xCF, 0x80, 0x95, 0x99, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x08, 0x2E, 0x90, 0x93, - 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x20, 0x91, 0x2E, 0x02, 0x30, 0x91, 0x2F, 0x02, 0x26, 0x17, - 0x37, 0x07, 0x48, 0xF0, 0x61, 0x15, 0x71, 0x05, 0x39, 0xF4, 0x20, 0x91, 0xE8, 0x00, 0x2E, 0x77, - 0x20, 0x93, 0xE8, 0x00, 0x01, 0xC0, 0xB9, 0x01, 0x20, 0xE0, 0x61, 0x15, 0x71, 0x05, 0xC9, 0xF1, - 0x3E, 0xB3, 0x33, 0x23, 0x09, 0xF4, 0x42, 0xC0, 0x35, 0x30, 0x09, 0xF4, 0x41, 0xC0, 0x30, 0x91, - 0xE8, 0x00, 0x33, 0xFD, 0x3F, 0xC0, 0x30, 0x91, 0xE8, 0x00, 0x32, 0xFF, 0x06, 0xC0, 0x80, 0x91, - 0xE8, 0x00, 0x82, 0xFF, 0x29, 0xC0, 0x80, 0xE0, 0x08, 0x95, 0x30, 0x91, 0xE8, 0x00, 0x30, 0xFF, - 0xE4, 0xCF, 0x20, 0x91, 0xF2, 0x00, 0x30, 0xE0, 0xFC, 0x01, 0x28, 0x1B, 0x39, 0x0B, 0xCF, 0x01, - 0x82, 0x0F, 0x93, 0x1F, 0x61, 0x15, 0x71, 0x05, 0x49, 0xF0, 0x88, 0x30, 0x91, 0x05, 0x30, 0xF4, - 0x81, 0x91, 0x80, 0x93, 0xF1, 0x00, 0x61, 0x50, 0x71, 0x09, 0xF1, 0xCF, 0x21, 0xE0, 0x08, 0x97, - 0x09, 0xF0, 0x20, 0xE0, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0xCF, 0x01, - 0xC4, 0xCF, 0x21, 0x11, 0xC5, 0xCF, 0xD3, 0xCF, 0x8E, 0xB3, 0x88, 0x23, 0x39, 0xF0, 0x85, 0x30, - 0x39, 0xF0, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFF, 0xCA, 0xCF, 0x04, 0xC0, 0x82, 0xE0, 0x08, 0x95, - 0x83, 0xE0, 0x08, 0x95, 0x81, 0xE0, 0x08, 0x95, 0x8F, 0x70, 0x80, 0x93, 0xE9, 0x00, 0xEB, 0xEE, - 0xF0, 0xE0, 0x80, 0x81, 0x81, 0x60, 0x80, 0x83, 0xED, 0xEE, 0xF0, 0xE0, 0x10, 0x82, 0x60, 0x93, - 0xEC, 0x00, 0x40, 0x83, 0x80, 0x91, 0xEE, 0x00, 0x88, 0x1F, 0x88, 0x27, 0x88, 0x1F, 0x08, 0x95, - 0x80, 0x91, 0x28, 0x02, 0x87, 0xFD, 0x05, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0x0D, 0xC0, - 0x10, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFD, 0x04, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, - 0x08, 0x95, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x07, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xEC, 0xCF, - 0x08, 0x95, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x08, 0x95, 0x3C, 0xD0, - 0x3E, 0xD0, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x77, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, - 0x80, 0x68, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x7D, 0x80, 0x93, 0xD8, 0x00, - 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, 0x89, 0xBD, 0x09, 0xB4, 0x00, 0xFE, 0xFD, 0xCF, 0x1E, 0xBA, - 0x10, 0x92, 0x26, 0x02, 0x42, 0xE0, 0x60, 0xE0, 0x80, 0xE0, 0xAE, 0xDF, 0x80, 0x91, 0xE1, 0x00, - 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, - 0x80, 0x91, 0xE2, 0x00, 0x88, 0x60, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE0, 0x00, 0x8E, 0x7F, - 0x80, 0x93, 0xE0, 0x00, 0x08, 0x95, 0xE3, 0xE6, 0xF0, 0xE0, 0x80, 0x81, 0x8E, 0x7F, 0x80, 0x83, - 0x81, 0xE0, 0x80, 0x93, 0x27, 0x02, 0xC3, 0xCF, 0x10, 0x92, 0xE2, 0x00, 0x08, 0x95, 0x10, 0x92, - 0xE1, 0x00, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, 0x0F, 0x92, 0x11, 0x24, 0x2F, 0x93, - 0x3F, 0x93, 0x4F, 0x93, 0x5F, 0x93, 0x6F, 0x93, 0x7F, 0x93, 0x8F, 0x93, 0x9F, 0x93, 0xAF, 0x93, - 0xBF, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x80, 0x91, 0xE1, 0x00, 0x80, 0xFF, 0x16, 0xC0, 0x80, 0x91, - 0xE2, 0x00, 0x80, 0xFF, 0x12, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE2, 0x00, - 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xD8, 0x00, 0x80, 0x62, - 0x80, 0x93, 0xD8, 0x00, 0x19, 0xBC, 0x1E, 0xBA, 0x6A, 0xD1, 0x80, 0x91, 0xE1, 0x00, 0x84, 0xFF, - 0x2E, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x84, 0xFF, 0x2A, 0xC0, 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, - 0x89, 0xBD, 0x09, 0xB4, 0x00, 0xFE, 0xFD, 0xCF, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x7D, 0x80, 0x93, - 0xD8, 0x00, 0x80, 0x91, 0xE1, 0x00, 0x8F, 0x7E, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, - 0x8F, 0x7E, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, - 0x80, 0x91, 0x26, 0x02, 0x88, 0x23, 0x11, 0xF0, 0x84, 0xE0, 0x07, 0xC0, 0x80, 0x91, 0xE3, 0x00, - 0x87, 0xFF, 0x02, 0xC0, 0x83, 0xE0, 0x01, 0xC0, 0x81, 0xE0, 0x8E, 0xBB, 0x38, 0xD1, 0x80, 0x91, - 0xE1, 0x00, 0x83, 0xFF, 0x21, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x83, 0xFF, 0x1D, 0xC0, 0x80, 0x91, - 0xE1, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x82, 0xE0, 0x8E, 0xBB, 0x10, 0x92, 0x26, 0x02, - 0x80, 0x91, 0xE1, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x8E, 0x7F, - 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, 0x80, 0x93, 0xE2, 0x00, 0x42, 0xE0, - 0x60, 0xE0, 0x80, 0xE0, 0x09, 0xDF, 0x13, 0xD1, 0xFF, 0x91, 0xEF, 0x91, 0xBF, 0x91, 0xAF, 0x91, - 0x9F, 0x91, 0x8F, 0x91, 0x7F, 0x91, 0x6F, 0x91, 0x5F, 0x91, 0x4F, 0x91, 0x3F, 0x91, 0x2F, 0x91, - 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, 0x18, 0x95, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, - 0x00, 0xD0, 0xCD, 0xB7, 0xDE, 0xB7, 0xE8, 0xE2, 0xF2, 0xE0, 0x80, 0x91, 0xF1, 0x00, 0x81, 0x93, - 0x82, 0xE0, 0xE0, 0x33, 0xF8, 0x07, 0xC9, 0xF7, 0xFE, 0xDC, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFF, - 0xDA, 0xC0, 0x90, 0x91, 0x28, 0x02, 0x80, 0x91, 0x29, 0x02, 0x85, 0x30, 0x09, 0xF4, 0x65, 0xC0, - 0x30, 0xF4, 0x81, 0x30, 0x59, 0xF1, 0x68, 0xF0, 0x83, 0x30, 0x41, 0xF1, 0xCC, 0xC0, 0x88, 0x30, - 0x09, 0xF4, 0x9C, 0xC0, 0x89, 0x30, 0x09, 0xF4, 0xAB, 0xC0, 0x86, 0x30, 0x09, 0xF0, 0xC3, 0xC0, - 0x75, 0xC0, 0x90, 0x38, 0x81, 0xF0, 0x92, 0x38, 0x09, 0xF0, 0xBD, 0xC0, 0x80, 0x91, 0x2C, 0x02, - 0x8F, 0x70, 0x80, 0x93, 0xE9, 0x00, 0x90, 0x91, 0xEB, 0x00, 0x95, 0xFB, 0x99, 0x27, 0x90, 0xF9, - 0x10, 0x92, 0xE9, 0x00, 0x01, 0xC0, 0x90, 0xE0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, - 0xE8, 0x00, 0x90, 0x93, 0xF1, 0x00, 0x10, 0x92, 0xF1, 0x00, 0x83, 0xC0, 0x29, 0x2F, 0x2D, 0x7F, - 0x09, 0xF0, 0xA1, 0xC0, 0x92, 0x30, 0x09, 0xF0, 0x9E, 0xC0, 0x90, 0x91, 0x2A, 0x02, 0x91, 0x11, - 0x26, 0xC0, 0x20, 0x91, 0x2C, 0x02, 0x2F, 0x70, 0x09, 0xF4, 0x95, 0xC0, 0x20, 0x93, 0xE9, 0x00, - 0x90, 0x91, 0xEB, 0x00, 0x90, 0xFF, 0x1B, 0xC0, 0x83, 0x30, 0x21, 0xF4, 0x80, 0x91, 0xEB, 0x00, - 0x80, 0x62, 0x13, 0xC0, 0x80, 0x91, 0xEB, 0x00, 0x80, 0x61, 0x80, 0x93, 0xEB, 0x00, 0x81, 0xE0, - 0x90, 0xE0, 0x02, 0x2E, 0x01, 0xC0, 0x88, 0x0F, 0x0A, 0x94, 0xEA, 0xF7, 0x80, 0x93, 0xEA, 0x00, - 0x10, 0x92, 0xEA, 0x00, 0x80, 0x91, 0xEB, 0x00, 0x88, 0x60, 0x80, 0x93, 0xEB, 0x00, 0x10, 0x92, - 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x4F, 0xC0, 0x91, 0x11, 0x6C, 0xC0, 0x10, 0x91, - 0x2A, 0x02, 0x1F, 0x77, 0x80, 0x91, 0xE3, 0x00, 0x80, 0x78, 0x81, 0x2B, 0x80, 0x93, 0xE3, 0x00, - 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x7A, 0xDE, 0x80, 0x91, 0xE8, 0x00, - 0x80, 0xFF, 0xFC, 0xCF, 0x80, 0x91, 0xE3, 0x00, 0x80, 0x68, 0x80, 0x93, 0xE3, 0x00, 0x11, 0x23, - 0x11, 0xF0, 0x83, 0xE0, 0x01, 0xC0, 0x82, 0xE0, 0x8E, 0xBB, 0x4D, 0xC0, 0x90, 0x58, 0x92, 0x30, - 0x08, 0xF0, 0x49, 0xC0, 0xAE, 0x01, 0x4F, 0x5F, 0x5F, 0x4F, 0x60, 0x91, 0x2C, 0x02, 0x80, 0x91, - 0x2A, 0x02, 0x90, 0x91, 0x2B, 0x02, 0x62, 0xDD, 0x00, 0x97, 0x09, 0xF4, 0x3C, 0xC0, 0x20, 0x91, - 0xE8, 0x00, 0x27, 0x7F, 0x20, 0x93, 0xE8, 0x00, 0xBC, 0x01, 0x89, 0x81, 0x9A, 0x81, 0xDB, 0xDD, - 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x2D, 0xC0, 0x90, 0x38, 0x59, 0xF5, - 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x80, 0x91, 0x26, 0x02, 0x80, 0x93, - 0xF1, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x39, 0xDE, 0x1B, 0xC0, - 0x91, 0x11, 0x19, 0xC0, 0x90, 0x91, 0x2A, 0x02, 0x92, 0x30, 0xA8, 0xF4, 0x80, 0x91, 0xE8, 0x00, - 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x90, 0x93, 0x26, 0x02, 0x2A, 0xDE, 0x80, 0x91, 0x26, 0x02, - 0x81, 0x11, 0x04, 0xC0, 0x80, 0x91, 0xE3, 0x00, 0x87, 0xFF, 0x02, 0xC0, 0x84, 0xE0, 0x01, 0xC0, - 0x81, 0xE0, 0x8E, 0xBB, 0x14, 0xDC, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFF, 0x0A, 0xC0, 0x80, 0x91, - 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x80, 0x91, 0xEB, 0x00, 0x80, 0x62, 0x80, 0x93, - 0xEB, 0x00, 0x0F, 0x90, 0x0F, 0x90, 0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, 0x08, 0x95, 0x08, 0x95, - 0xCF, 0x93, 0x8E, 0xB3, 0x88, 0x23, 0xA9, 0xF0, 0x80, 0x91, 0xE9, 0x00, 0x8F, 0x70, 0x90, 0x91, - 0xEC, 0x00, 0x90, 0xFF, 0x02, 0xC0, 0x90, 0xE8, 0x01, 0xC0, 0x90, 0xE0, 0xC9, 0x2F, 0xC8, 0x2B, - 0x10, 0x92, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFD, 0xE7, 0xDE, 0xCF, 0x70, 0xC0, 0x93, - 0xE9, 0x00, 0xCF, 0x91, 0x08, 0x95, 0xA1, 0xE2, 0x1A, 0x2E, 0xAA, 0x1B, 0xBB, 0x1B, 0xFD, 0x01, - 0x0D, 0xC0, 0xAA, 0x1F, 0xBB, 0x1F, 0xEE, 0x1F, 0xFF, 0x1F, 0xA2, 0x17, 0xB3, 0x07, 0xE4, 0x07, - 0xF5, 0x07, 0x20, 0xF0, 0xA2, 0x1B, 0xB3, 0x0B, 0xE4, 0x0B, 0xF5, 0x0B, 0x66, 0x1F, 0x77, 0x1F, - 0x88, 0x1F, 0x99, 0x1F, 0x1A, 0x94, 0x69, 0xF7, 0x60, 0x95, 0x70, 0x95, 0x80, 0x95, 0x90, 0x95, - 0x9B, 0x01, 0xAC, 0x01, 0xBD, 0x01, 0xCF, 0x01, 0x08, 0x95, 0xF9, 0x99, 0xFE, 0xCF, 0x92, 0xBD, - 0x81, 0xBD, 0xF8, 0x9A, 0x99, 0x27, 0x80, 0xB5, 0x08, 0x95, 0x26, 0x2F, 0xF9, 0x99, 0xFE, 0xCF, - 0x1F, 0xBA, 0x92, 0xBD, 0x81, 0xBD, 0x20, 0xBD, 0x0F, 0xB6, 0xF8, 0x94, 0xFA, 0x9A, 0xF9, 0x9A, - 0x0F, 0xBE, 0x01, 0x96, 0x08, 0x95, 0xF8, 0x94, 0xFF, 0xCF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x22, 0x03, 0x48, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x4C, 0x00, 0x6F, 0x00, - 0x61, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x32, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x65, 0x00, - 0x67, 0x00, 0x61, 0x00, 0x00, 0x00, 0x12, 0x03, 0x4E, 0x00, 0x69, 0x00, 0x63, 0x00, 0x6F, 0x00, - 0x48, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x00, 0x00, 0x04, 0x03, 0x09, 0x04, 0x09, 0x02, - 0x3E, 0x00, 0x02, 0x01, 0x00, 0x80, 0x32, 0x09, 0x04, 0x00, 0x00, 0x01, 0x02, 0x02, 0x01, 0x00, - 0x05, 0x24, 0x00, 0x10, 0x01, 0x04, 0x24, 0x02, 0x02, 0x05, 0x24, 0x06, 0x00, 0x01, 0x07, 0x05, - 0x82, 0x03, 0x08, 0x00, 0xFF, 0x09, 0x04, 0x01, 0x00, 0x02, 0x0A, 0x00, 0x00, 0x00, 0x07, 0x05, - 0x04, 0x02, 0x40, 0x00, 0x05, 0x07, 0x05, 0x83, 0x02, 0x40, 0x00, 0x05, 0x12, 0x01, 0x10, 0x01, - 0x02, 0x00, 0x00, 0x08, 0x41, 0x23, 0x42, 0x00, 0x03, 0x02, 0x01, 0x02, 0x00, 0x01, 0x48, 0x4C, - 0x32, 0x2E, 0x30, 0x2E, 0x33, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x70, 0xCC, 0x81, 0xCC, 0x92, 0xCC, 0x9E, 0xCC, 0xA3, 0xCC, 0xA8, 0xCC, 0xAE, 0xCC, 0x08, 0x95, - 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, - 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0x00, 0x70, 0x00, 0x00, 0x00, 0xDF, 0xFB, 0xDC, -}; // end of HoodLoader2_0_3_Mega_32u2_hex diff --git a/tools/Atmega_Board_Programmer/Atmega_Board_Programmer.ino b/tools/HoodLoader2_Installation_Sketch/HoodLoader2_Installation_Sketch.ino similarity index 52% rename from tools/Atmega_Board_Programmer/Atmega_Board_Programmer.ino rename to tools/HoodLoader2_Installation_Sketch/HoodLoader2_Installation_Sketch.ino index 7d1ca07..8d46943 100644 --- a/tools/Atmega_Board_Programmer/Atmega_Board_Programmer.ino +++ b/tools/HoodLoader2_Installation_Sketch/HoodLoader2_Installation_Sketch.ino @@ -19,9 +19,10 @@ along with Hoodloader2. If not, see . */ // Atmega chip programmer -// Author: Nick Gammon, modified by NicoHood +// Author: Nick Gammon // Date: 22nd May 2012 -// Version: 1.25 + +// For more information including wiring, see: http://www.gammon.com.au/forum/?id=11635 // Version 1.1: Reset foundSig to -1 each time around the loop. // Version 1.2: Put hex bootloader data into separate files @@ -46,6 +47,18 @@ along with Hoodloader2. If not, see . // Version 1.21: Automatically clear "divide by 8" fuse bit // Version 1.22: Fixed compiling problems under IDE 1.5.8 // Version 1.23: Added support for Leonardo bootloader +// Version 1.24: Added bootloader for Uno Atmega16U2 chip (the USB interface) +// Version 1.25: Fixed bug re verifying uploaded sketch for the Lilypad +// Version 1.26: Turn off programming mode when done (so chip can run) +// Version 1.27: Made bootloaders conditional, so you can omit some to save space +// Version 1.28: Changed _BV () macro to bit () macro. +// Version 1.29: Display message if cannot enter programming mode. +// Version 1.30: Various tidy-ups +// Version 1.31: Fixed bug in doing second lot of programming under IDE 1.6.0 +// Version 1.32: Bug fixes, added support for At90USB82, At90USB162 signatures + +// Changes by NicoHood: +// Version 1.23: Added support for Leonardo bootloader // Version 1.23-A: Removed unnecessary Bootloaders, added Hoodloader // Version 1.23-B: Fixed resetting bug when connected directly // Version 1.24: Added bootloader for Uno Atmega16U2 chip (the USB interface) @@ -59,36 +72,46 @@ along with Hoodloader2. If not, see . // Version 1.27: Added HoodLoader2.0.3, also for 32u2 (IDE 1.5.8 or higher) // Version 1.27-B: Fixed Mega uploading, added timeout, added Leonardo compatibity again (flash size problem) // Version 1.27-C: Outcommented 32u2 due to a 4kb 328 bootloader problem if no optiboot is installed +// Version 1.29-HL203-A: Updated to 1.29, reworked the whole sketch +// Version 1.30-HL204-A: Updated HL to version 2.0.4 +// Version 1.31-HL204-A: Added 8u2, 16u2, 32u2 Support +// Version 1.32-HL204-A: Bug fixes, added support for At90USB82, At90USB162 signatures -#define VERSION "1.27-C" +#define VERSION "1.32-HL204-A" //================================================================================ -// HoodLoader2 definitions +// HoodLoader2 Settings //================================================================================ -// depending on the uploading board decide what hex file we should use -#ifdef ARDUINO_AVR_MEGA2560 -#define HOODLOADER2_16U2_MEGA -#if ARDUINO >= 158 -//#define HOODLOADER2_32U2_MEGA -#endif -#elif defined ARDUINO_AVR_UNO -#define HOODLOADER2_16U2_UNO -#if ARDUINO >= 158 -//#define HOODLOADER2_32U2_UNO -#endif -#else -// by default use the file for Arduino Uno. Its no problem to upload an Uno file to a Mega though. -#define HOODLOADER2_16U2_UNO -#if (ARDUINO >= 158) -//#define HOODLOADER2_32U2_UNO -#endif +// make some of these false to reduce compile size (the ones you don't want) +#define USE_ATMEGA8U2 false +#define USE_ATMEGA16U2 true +#define USE_ATMEGA32U2 false +#define USE_AT90USB162 false // todo, not supported + +// also use Mega 16u2 bootloader files? +#define USE_MEGA_BOOTLOADER true + +// force Mega bootloader for blind pin selection/DFU hex file +#define FORCE_MEGA_BOOTLOADER false + +// DFU options (16u2 only) +#ifdef USE_ATMEGA16U2 +#define USE_ATMEGA16U2_DFU true +// use the full 16kb DFU Bootloader with USB-Serial +// you have to deactuivate the mega bootloader then +// but you can stull burn a mega DFU file in the followed setting +#define USE_ATMEGA16U2_DFU_FULL false #endif #define BUTTON_DFU 8 #define BUTTON_HOODLOADER2 7 -char force16u2; +enum { + HL2_UNO, + HL2_MEGA, + DFU +} board; /* @@ -118,10 +141,14 @@ char force16u2; */ +// indicates if programming + verification was successfull +bool success; + +const int ENTER_PROGRAMMING_ATTEMPTS = 50; + #include #include -#define SERIAL Serial const unsigned long BAUD_RATE = 115200; const byte CLOCKOUT = 9; @@ -134,6 +161,9 @@ const byte SCK = 13; // SPI clock // number of items in an array #define NUMITEMS(arg) ((unsigned int) (sizeof (arg) / sizeof (arg [0]))) +#define xstr(s) str(s) +#define str(s) #s + // programming commands to send via SPI to the chip enum { progamEnable = 0xAC, @@ -181,111 +211,101 @@ typedef struct { const unsigned long kb = 1024; // hex bootloader data +#if USE_ATMEGA8U2 +#include "bootloader_atmega8u2.h" +#endif +#if USE_ATMEGA16U2 #include "bootloader_atmega16u2.h" -#include "bootloader_atmega16u2_HoodLoader2.h" +#endif +#if USE_ATMEGA32U2 +#include "bootloader_atmega32u2.h" +#endif +#if USE_AT90USB162 +#include "bootloader_at90usb162.h" +#endif // see Atmega328 datasheet page 298 signatureType signatures [] = { // signature description flash size bootloader size - // // Attiny84 family - // { { 0x1E, 0x91, 0x0B }, "ATtiny24", 2 * kb, 0 }, - // { { 0x1E, 0x92, 0x07 }, "ATtiny44", 4 * kb, 0 }, - // { { 0x1E, 0x93, 0x0C }, "ATtiny84", 8 * kb, 0 }, - // - // // Attiny85 family - // { { 0x1E, 0x91, 0x08 }, "ATtiny25", 2 * kb, 0 }, - // { { 0x1E, 0x92, 0x06 }, "ATtiny45", 4 * kb, 0 }, - // { { 0x1E, 0x93, 0x0B }, "ATtiny85", 8 * kb, 0 }, + // Attiny84 family + { { 0x1E, 0x91, 0x0B }, "ATtiny24", 2 * kb, 0 }, + { { 0x1E, 0x92, 0x07 }, "ATtiny44", 4 * kb, 0 }, + { { 0x1E, 0x93, 0x0C }, "ATtiny84", 8 * kb, 0 }, + + // Attiny85 family + { { 0x1E, 0x91, 0x08 }, "ATtiny25", 2 * kb, 0 }, + { { 0x1E, 0x92, 0x06 }, "ATtiny45", 4 * kb, 0 }, + { { 0x1E, 0x93, 0x0B }, "ATtiny85", 8 * kb, 0 }, // Atmega328 family { { 0x1E, 0x92, 0x0A }, "ATmega48PA", 4 * kb, 0 }, { { 0x1E, 0x93, 0x0F }, "ATmega88PA", 8 * kb, 256 }, { { 0x1E, 0x94, 0x0B }, "ATmega168PA", 16 * kb, 256 }, - { { 0x1E, 0x95, 0x0F }, "ATmega328P", 32 * kb, 512 }, + { { 0x1E, 0x95, 0x14 }, "ATmega328", 32 * kb, 512 }, - { { 0x1E, 0x95, 0x14 }, "ATmega328", 32 * kb, 512 }, - - // // Atmega644 family - // { { 0x1E, 0x94, 0x0A }, "ATmega164P", 16 * kb, 256 }, - // { { 0x1E, 0x95, 0x08 }, "ATmega324P", 32 * kb, 512 }, - // { { 0x1E, 0x96, 0x0A }, "ATmega644P", 64 * kb, 1 * kb }, + // Atmega644 family + { { 0x1E, 0x94, 0x0A }, "ATmega164P", 16 * kb, 256 }, + { { 0x1E, 0x95, 0x08 }, "ATmega324P", 32 * kb, 512 }, + { { 0x1E, 0x96, 0x0A }, "ATmega644P", 64 * kb, 1 * kb }, // Atmega2560 family { { 0x1E, 0x96, 0x08 }, "ATmega640", 64 * kb, 1 * kb }, { { 0x1E, 0x97, 0x03 }, "ATmega1280", 128 * kb, 1 * kb }, - { { 0x1E, 0x97, 0x04 }, "ATmega1281", 128 * kb, 1 * kb }, { { 0x1E, 0x98, 0x01 }, "ATmega2560", 256 * kb, 1 * kb }, { { 0x1E, 0x98, 0x02 }, "ATmega2561", 256 * kb, 1 * kb }, - // Atmega32U2 family - { { 0x1E, 0x93, 0x89 }, "ATmega8U2", 8 * kb, 512 }, + // AT90USB family + { { 0x1E, 0x93, 0x82 }, "At90USB82", 8 * kb, 512 }, + { { 0x1E, 0x94, 0x82 }, "At90USB162", 16 * kb, 512 }, -#ifdef HOODLOADER2_16U2_MEGA && !defined(__AVR_ATmega32U4__) - { { 0x1E, 0x94, 0x89 }, "ATmega16U2", 16 * kb, 512 , - Arduino_COMBINED_dfu_usbserial_atmega16u2_Mega2560_Rev3_hex, // loader image - 0x0000, // start address (0x0000-0x4000) - sizeof Arduino_COMBINED_dfu_usbserial_atmega16u2_Mega2560_Rev3_hex, - 128, // page size in bytes (for committing) - 0xEF, // fuse low byte: external clock, m - 0xD9, // fuse high byte: SPI enable, NOT boot into bootloader, 4096 byte bootloader - 0xF4, // fuse extended byte: brown-out detection at 2.6V - 0x0F - }, // lock bits - -#elif !defined(__AVR_ATmega32U4__) // HOODLOADER2_16U2_UNO - { { 0x1E, 0x94, 0x89 }, "ATmega16U2", 16 * kb, 512 , - Arduino_COMBINED_dfu_usbserial_atmega16u2_Uno_Rev3_hex, // loader image - 0x0000, // start address (0x0000-0x4000) - sizeof Arduino_COMBINED_dfu_usbserial_atmega16u2_Uno_Rev3_hex, + // Atmega32U2 family +#if USE_ATMEGA8U2 + { { 0x1E, 0x93, 0x89 }, "ATmega8U2", 8 * kb, 512, + HoodLoader2_0_4_Uno_8u2_hex,// loader image + 0x1000, // start address + sizeof HoodLoader2_0_4_Uno_8u2_hex, 128, // page size in bytes (for committing) 0xEF, // fuse low byte: external clock, m - 0xD9, // fuse high byte: SPI enable, NOT boot into bootloader, 4096 byte bootloader - 0xF4, // fuse extended byte: brown-out detection at 2.6V - 0x0F - }, // lock bits - -#else // 32u4 is only able to burn the HoodLoader2 without the DFU (workaround) - { { 0x1E, 0x94, 0x89 }, "ATmega16U2", 16 * kb, 512 , - HoodLoader2_0_3_Uno_16u2_hex, // loader image - 0x0300, // start address (0x0000-0x4000) - sizeof HoodLoader2_0_3_Uno_16u2_hex, - 128, // page size in bytes (for committing) - 0xFF, // fuse low byte: external clock, m - 0xD8, // fuse high byte: SPI enable, NOT boot into bootloader, 4096 byte bootloader + 0xD8, // fuse high byte: SPI enable, boot into bootloader, 4096 byte bootloader 0xFC, // fuse extended byte: brown-out detection at 2.6V - 0x2F - }, // lock bits + 0xCF // lock bits + }, +#else + { { 0x1E, 0x93, 0x89 }, "ATmega8U2", 8 * kb, 512 }, #endif - { { 0x1E, 0x95, 0x8A }, "ATmega32U2", 32 * kb, 512 -#if defined(HOODLOADER2_32U2_UNO) && !defined(__AVR_ATmega32U4__) - , - HoodLoader2_0_3_Uno_32u2_hex, // loader image - 0x7000, // start address (0x0000-0x4000) - sizeof HoodLoader2_0_3_Uno_32u2_hex, +#if USE_ATMEGA16U2 + { { 0x1E, 0x94, 0x89 }, "ATmega16U2", 16 * kb, 512, + HoodLoader2_0_4_Uno_16u2_hex,// loader image + 0x3000, // start address + sizeof HoodLoader2_0_4_Uno_16u2_hex, 128, // page size in bytes (for committing) - 0xFF, // fuse low byte: external clock, m - 0xD8, // fuse high byte: SPI enable, NOT boot into bootloader, 4096 byte bootloader + 0xEF, // fuse low byte: external clock, m + 0xD8, // fuse high byte: SPI enable, boot into bootloader, 4096 byte bootloader 0xFC, // fuse extended byte: brown-out detection at 2.6V - 0x2F - }, // lock bits -#elif defined(HOODLOADER2_32U2_MEGA) && !defined(__AVR_ATmega32U4__) - , - HoodLoader2_0_3_Mega_32u2_hex, // loader image - 0x7000, // start address (0x0000-0x4000) - sizeof HoodLoader2_0_3_Mega_32u2_hex, + 0xCF // lock bits + }, +#else + { { 0x1E, 0x94, 0x89 }, "ATmega16U2", 16 * kb, 512 }, +#endif + +#if USE_ATMEGA32U2 + { { 0x1E, 0x95, 0x8A }, "ATmega32U2", 32 * kb, 512, + HoodLoader2_0_4_Uno_32u2_hex,// loader image + 0x7000, // start address + sizeof HoodLoader2_0_4_Uno_32u2_hex, 128, // page size in bytes (for committing) - 0xFF, // fuse low byte: external clock, m - 0xD8, // fuse high byte: SPI enable, NOT boot into bootloader, 4096 byte bootloader + 0xEF, // fuse low byte: external clock, m + 0xD8, // fuse high byte: SPI enable, boot into bootloader, 4096 byte bootloader 0xFC, // fuse extended byte: brown-out detection at 2.6V - 0x2F - }, // lock bits -#else + 0xCF // lock bits }, +#else + { { 0x1E, 0x95, 0x8A }, "ATmega32U2", 32 * kb, 512 }, #endif // Atmega32U4 family @@ -295,15 +315,15 @@ signatureType signatures [] = // ATmega1284P family { { 0x1E, 0x97, 0x05 }, "ATmega1284P", 128 * kb, 1 * kb }, - // // ATtiny4313 family - // { { 0x1E, 0x91, 0x0A }, "ATtiny2313A", 2 * kb, 0 }, - // { { 0x1E, 0x92, 0x0D }, "ATtiny4313", 4 * kb, 0 }, - // - // // ATtiny13 family - // { { 0x1E, 0x90, 0x07 }, "ATtiny13A", 1 * kb, 0 }, - // - // // Atmega8A family - // { { 0x1E, 0x93, 0x07 }, "ATmega8A", 8 * kb, 256 }, + // ATtiny4313 family + { { 0x1E, 0x91, 0x0A }, "ATtiny2313A", 2 * kb, 0 }, + { { 0x1E, 0x92, 0x0D }, "ATtiny4313", 4 * kb, 0 }, + + // ATtiny13 family + { { 0x1E, 0x90, 0x07 }, "ATtiny13A", 1 * kb, 0 }, + + // Atmega8A family + { { 0x1E, 0x93, 0x07 }, "ATmega8A", 8 * kb, 256 }, }; // end of signatures @@ -350,27 +370,27 @@ byte writeFlash (unsigned long addr, const byte data) void showHex (const byte b, const boolean newline = false, const boolean show0x = true) { if (show0x) - SERIAL.print (F("0x")); + Serial.print (F("0x")); // try to avoid using sprintf char buf [4] = { ((b >> 4) & 0x0F) | '0', (b & 0x0F) | '0', ' ' , 0 }; if (buf [0] > '9') buf [0] += 7; if (buf [1] > '9') buf [1] += 7; - SERIAL.print (buf); + Serial.print (buf); if (newline) - SERIAL.println (); + Serial.println (); } // end of showHex // convert a boolean to Yes/No void showYesNo (const boolean b, const boolean newline = false) { if (b) - SERIAL.print (F("Yes")); + Serial.print (F("Yes")); else - SERIAL.print (F("No")); + Serial.print (F("No")); if (newline) - SERIAL.println (); + Serial.println (); } // end of showYesNo // poll the target device until it is ready to be programmed @@ -388,8 +408,8 @@ void pollUntilReady () // commit page void commitPage (unsigned long addr) { - SERIAL.print (F("Committing page starting at 0x")); - SERIAL.println (addr, HEX); + Serial.print (F("Committing page starting at 0x")); + Serial.println (addr, HEX); addr >>= 1; // turn into word address @@ -417,15 +437,15 @@ void writeFuse (const byte newValue, const byte instruction) void getFuseBytes () { - SERIAL.print (F("LFuse = ")); + Serial.print (F("LFuse = ")); showHex (program (readLowFuseByte, readLowFuseByteArg2), true); - SERIAL.print (F("HFuse = ")); + Serial.print (F("HFuse = ")); showHex (program (readHighFuseByte, readHighFuseByteArg2), true); - SERIAL.print (F("EFuse = ")); + Serial.print (F("EFuse = ")); showHex (program (readExtendedFuseByte, readExtendedFuseByteArg2), true); - SERIAL.print (F("Lock byte = ")); + Serial.print (F("Lock byte = ")); showHex (program (readLockByte, readLockByteArg2), true); - SERIAL.print ("Clock calibration = "); + Serial.print (F("Clock calibration = ")); showHex (program (readCalibrationByte), true); } // end of getFuseBytes @@ -435,7 +455,7 @@ void writeBootloader () if (signatures [foundSig].bootloader == 0) { - SERIAL.println (F("No bootloader support for this device.")); + Serial.println (F("No bootloader support for this device.")); return; } // end if @@ -456,125 +476,124 @@ void writeBootloader () const byte * bootloader = signatures [foundSig].bootloader; - SERIAL.print (F("Bootloader address = 0x")); - SERIAL.println (addr, HEX); - SERIAL.print (F("Bootloader length = ")); - SERIAL.print (len); - SERIAL.println (F(" bytes.")); - - byte subcommand = 'U'; - - // 16u2: DFU + USB-SERIAL or HoodLoader2 - if (signatures [foundSig].sig [0] == 0x1E && - signatures [foundSig].sig [1] == 0x94 && - signatures [foundSig].sig [2] == 0x89) + // Atmega u2 Series with HoodLoader2 + if (board == DFU) { - // HoodLoader 2 save mode - if (force16u2 == 'H' || force16u2 == 'D') - subcommand = force16u2; - else { - SERIAL.println (F("Type 'H' to use HoodLoader2, or 'D' for the original DFU + USB-SERIAL firmware.")); - do - { - subcommand = toupper (SERIAL.read ()); +#if USE_ATMEGA16U2 +#if USE_ATMEGA16U2_DFU + // Atmega16u2 + if (signatures [foundSig].sig [0] == 0x1E && + signatures [foundSig].sig [1] == 0x95 && + signatures [foundSig].sig [2] == 0x89) { + +#if USE_ATMEGA16U2_DFU_FULL +#if defined(ARDUINO_AVR_MEGA2560) || FORCE_MEGA_BOOTLOADER + bootloader = Arduino_COMBINED_dfu_usbserial_atmega16u2_Uno_Rev3_hex_Full; // loader image + len = sizeof(Arduino_COMBINED_dfu_usbserial_atmega16u2_Uno_Rev3_hex_Full); +#else + bootloader = Arduino_COMBINED_dfu_usbserial_atmega16u2_Mega2560_Rev3_hex_Full; // loader image + len = sizeof(Arduino_COMBINED_dfu_usbserial_atmega16u2_Mega2560_Rev3_hex_Full); +#endif + addr = 0x0000; // start address +#else + // DFU bootloader only is the same for Uno/Mega + bootloader = Arduino_COMBINED_dfu_usbserial_atmega16u2_Uno_Rev3_hex; // loader image + len = sizeof(Arduino_COMBINED_dfu_usbserial_atmega16u2_Uno_Rev3_hex); + addr = 0x3000; // start address +#endif - } while (subcommand != 'H' && subcommand != 'D'); + newhFuse = 0xD9; // fuse high byte: SPI enable, NOT boot into bootloader, 4096 byte bootloader + newextFuse = 0xF4; // fuse extended byte: brown-out detection at 2.6V } - - if (subcommand == 'H') - { - newlFuse = 0xFF; - newhFuse = 0xD8; - newextFuse = 0xFC; - newlockByte = 0x2F; - addr = 0x3000; -#ifdef HOODLOADER2_16U2_MEGA - SERIAL.println (F("Using Hoodloader2 Mega.")); - bootloader = HoodLoader2_0_3_Mega_16u2_hex; - len = sizeof HoodLoader2_0_3_Mega_16u2_hex; -#else // HOODLOADER2_16U2_UNO - SERIAL.println (F("Using Hoodloader2 Uno.")); - bootloader = HoodLoader2_0_3_Uno_16u2_hex; - len = sizeof HoodLoader2_0_3_Uno_16u2_hex; #endif +#endif + } // end DFU + +#if USE_MEGA_BOOTLOADER + if (board == HL2_MEGA) { +#if USE_ATMEGA8U2 + // Atmega8u2 + if (signatures [foundSig].sig [0] == 0x1E && + signatures [foundSig].sig [1] == 0x94 && + signatures [foundSig].sig [2] == 0x89) { + bootloader = HoodLoader2_0_4_Mega_8u2_hex, // loader image + len = sizeof(HoodLoader2_0_4_Mega_8u2_hex); } +#endif - else if (subcommand == 'D') -#ifdef HOODLOADER2_16U2_MEGA - SERIAL.println (F("Using original DFU + USB-SERIAL loader for Mega.")); -#else // HOODLOADER2_16U2_UNO - SERIAL.println (F("Using original DFU + USB-SERIAL loader for Uno.")); +#if USE_ATMEGA16U2 + // Atmega16u2 + if (signatures [foundSig].sig [0] == 0x1E && + signatures [foundSig].sig [1] == 0x95 && + signatures [foundSig].sig [2] == 0x89) { + bootloader = HoodLoader2_0_4_Mega_16u2_hex, // loader image + len = sizeof(HoodLoader2_0_4_Mega_16u2_hex); + } #endif - } - // special 32u2 case - else if (signatures [foundSig].sig [0] == 0x1E && 0x1E, - signatures [foundSig].sig [1] == 0x95 && - signatures [foundSig].sig [2] == 0x8A) - { - // HoodLoader 2 save mode - if (force16u2 == 'H' || force16u2 == 'D') - subcommand = force16u2; - } - unsigned long oldPage = addr & pagemask; +#if USE_ATMEGA32U2 + // Atmega32u2 + if (signatures [foundSig].sig [0] == 0x1E && + signatures [foundSig].sig [1] == 0x96 && + signatures [foundSig].sig [2] == 0x89) { + bootloader = HoodLoader2_0_4_Mega_32u2_hex, // loader image + len = sizeof(HoodLoader2_0_4_Mega_32u2_hex); + } +#endif + } // end Mega +#endif - SERIAL.println (F("Type 'Q' to quit, 'V' to verify, or 'G' to program the chip with the bootloader ...")); - char command; - do - { - command = toupper (SERIAL.read ()); - // HoodLoader 2 save mode - if (force16u2 == 'H' || force16u2 == 'D') - command = 'G'; + Serial.print (F("Bootloader address = 0x")); + Serial.println (addr, HEX); + Serial.print (F("Bootloader length = ")); + Serial.print (len); + Serial.println (F(" bytes.")); - } while (command != 'G' && command != 'V' && command != 'Q'); - // let them do nothing - if (command == 'Q') - return; + unsigned long oldPage = addr & pagemask; - if (command == 'G') + Serial.println (F("Programming the chip with the bootloader ...")); + + // Automatically fix up fuse to run faster, then write to device + if (lFuse != newlFuse) { + if ((lFuse & 0x80) == 0) + Serial.println (F("Clearing 'Divide clock by 8' fuse bit.")); - // Automatically fix up fuse to run faster, then write to device - if (lFuse != newlFuse) - { - if ((lFuse & 0x80) == 0) - SERIAL.println (F("Clearing 'Divide clock by 8' fuse bit.")); - - SERIAL.println (F("Fixing low fuse setting ...")); - writeFuse (newlFuse, writeLowFuseByte); - delay (1000); - digitalWrite (RESET, HIGH); // latch fuse - startProgramming (); - delay (1000); - } + Serial.println (F("Fixing low fuse setting ...")); + writeFuse (newlFuse, writeLowFuseByte); + delay (1000); + digitalWrite (RESET, HIGH); // latch fuse + if (!startProgramming ()) + return; + delay (1000); + } - SERIAL.println (F("Erasing chip ...")); - program (progamEnable, chipErase); // erase it - delay (20); // for Atmega8 - pollUntilReady (); - SERIAL.println (F("Writing bootloader ...")); - for (i = 0; i < len; i += 2) + Serial.println (F("Erasing chip ...")); + program (progamEnable, chipErase); // erase it + delay (20); // for Atmega8 + pollUntilReady (); + Serial.println (F("Writing bootloader ...")); + for (i = 0; i < len; i += 2) + { + unsigned long thisPage = (addr + i) & pagemask; + // page changed? commit old one + if (thisPage != oldPage) { - unsigned long thisPage = (addr + i) & pagemask; - // page changed? commit old one - if (thisPage != oldPage) - { - commitPage (oldPage); - oldPage = thisPage; - } - writeFlash (addr + i, pgm_read_byte(bootloader + i)); - writeFlash (addr + i + 1, pgm_read_byte(bootloader + i + 1)); - } // end while doing each word + commitPage (oldPage); + oldPage = thisPage; + } + writeFlash (addr + i, pgm_read_byte(bootloader + i)); + writeFlash (addr + i + 1, pgm_read_byte(bootloader + i + 1)); + } // end while doing each word - // commit final page - commitPage (oldPage); - SERIAL.println (F("Written.")); - } // end if programming + // commit final page + commitPage (oldPage); + Serial.println (F("Written.")); + // end if programming - SERIAL.println (F("Verifying ...")); + Serial.println (F("Verifying ...")); // count errors unsigned int errors = 0; @@ -587,32 +606,22 @@ void writeBootloader () { if (errors <= 100) { - SERIAL.print (F("Verification error at address ")); - SERIAL.print (addr + i, HEX); - SERIAL.print (F(". Got: ")); + Serial.print (F("Verification error at address ")); + Serial.print (addr + i, HEX); + Serial.print (F(". Got: ")); showHex (found); - SERIAL.print (F(" Expected: ")); + Serial.print (F(" Expected: ")); showHex (expected, true); } // end of haven't shown 100 errors yet errors++; } // end if error } // end of for - if (errors == 0) - SERIAL.println (F("No errors found.")); - else - { - SERIAL.print (errors, DEC); - SERIAL.println (F(" verification error(s).")); - if (errors > 100) - SERIAL.println (F("First 100 shown.")); - return; // don't change fuses if errors - } // end if - - if (command == 'G') - { - SERIAL.println (F("Writing fuses ...")); + if (errors == 0) { + Serial.println (F("No errors found.")); + success = true; + Serial.println (F("Writing fuses ...")); writeFuse (newlFuse, writeLowFuseByte); writeFuse (newhFuse, writeHighFuseByte); writeFuse (newextFuse, writeExtendedFuseByte); @@ -620,25 +629,32 @@ void writeBootloader () // confirm them getFuseBytes (); - } // end if programming + } + else + { + Serial.print (errors, DEC); + Serial.println (F(" verification error(s).")); + if (errors > 100) + Serial.println (F("First 100 shown.")); + return; // don't change fuses if errors + } // end if - SERIAL.println (F("Done.")); + Serial.println (F("Done.")); } // end of writeBootloader bool startProgramming () { - SERIAL.println (F("Attempting to enter programming mode ...")); - SERIAL.println (F("Device will disconnect and reconnect on success, no more output here.")); - digitalWrite (RESET, HIGH); // ensure SS stays high for now + Serial.print (F("Attempting to enter programming mode ...")); + digitalWrite (RESET, HIGH); // ensure SS stays high for now SPI.begin (); SPI.setClockDivider (SPI_CLOCK_DIV64); byte confirm; pinMode (RESET, OUTPUT); pinMode (SCK, OUTPUT); - uint8_t timeout = 0; + unsigned int timeout = 0; // we are in sync if we get back programAcknowledge on the third byte do @@ -655,14 +671,22 @@ bool startProgramming () SPI.transfer (programAcknowledge); confirm = SPI.transfer (0); SPI.transfer (0); - timeout++; - if (timeout == 50) { - SERIAL.println (F("Failed to enter programming mode. Double check all wires!")); - return false; - } + + if (confirm != programAcknowledge) + { + Serial.print (F(".")); + if (timeout++ >= ENTER_PROGRAMMING_ATTEMPTS) + { + Serial.println (); + Serial.println (F("Failed to enter programming mode. Double-check wiring!")); + stopProgramming(); + return false; + } // end of too many attempts + } // end of not entered programming mode } while (confirm != programAcknowledge); - SERIAL.println (F("Entered programming mode OK.")); + Serial.println (); + Serial.println (F("Entered programming mode OK.")); return true; } // end of startProgramming @@ -672,19 +696,18 @@ void stopProgramming () // turn off pull-ups, if any digitalWrite (RESET, LOW); - digitalWrite (SCK, LOW); - digitalWrite (MOSI, LOW); - digitalWrite (MISO, LOW); + digitalWrite (SCK, LOW); + digitalWrite (MOSI, LOW); + digitalWrite (MISO, LOW); // set everything back to inputs pinMode (RESET, INPUT); - pinMode (SCK, INPUT); - pinMode (MOSI, INPUT); - pinMode (MISO, INPUT); + pinMode (SCK, INPUT); + pinMode (MOSI, INPUT); + pinMode (MISO, INPUT); Serial.println (F("Programming mode off.")); -} // end of startProgramming - +} // end of stopProgramming void getSignature () { @@ -692,96 +715,146 @@ void getSignature () lastAddressMSB = 0; byte sig [3]; - SERIAL.print (F("Signature = ")); + Serial.print (F("Signature = ")); for (byte i = 0; i < 3; i++) { sig [i] = program (readSignatureByte, 0, i); showHex (sig [i]); } // end for each signature byte - SERIAL.println (); + Serial.println (); for (int j = 0; j < NUMITEMS (signatures); j++) { if (memcmp (sig, signatures [j].sig, sizeof sig) == 0) { foundSig = j; - SERIAL.print (F("Processor = ")); - SERIAL.println (signatures [j].desc); - SERIAL.print (F("Flash memory size = ")); - SERIAL.print (signatures [j].flashSize, DEC); - SERIAL.println (F(" bytes.")); + Serial.print (F("Processor = ")); + Serial.println (signatures [j].desc); + Serial.print (F("Flash memory size = ")); + Serial.print (signatures [j].flashSize, DEC); + Serial.println (F(" bytes.")); if (signatures [foundSig].timedWrites) - SERIAL.println (F("Writes are timed, not polled.")); + Serial.println (F("Writes are timed, not polled.")); return; } // end of signature found } // end of for each signature - SERIAL.println (F("Unrecogized signature.")); + Serial.println (F("Unrecogized signature.")); } // end of getSignature void setup () { - SERIAL.begin (BAUD_RATE); - while (!SERIAL) ; // for Leonardo, Micro etc. - SERIAL.println (); - SERIAL.println (F("Atmega chip programmer.")); - SERIAL.println (F("Written by Nick Gammon, modified by NicoHood.")); - SERIAL.println (F("Version " VERSION)); - SERIAL.println (F("Compiled on " __DATE__ " at " __TIME__)); + Serial.begin (BAUD_RATE); + while (!Serial) ; // for Leonardo, Micro etc. + Serial.println (); + Serial.println (F("Atmega chip programmer.")); + Serial.println (F("Written by Nick Gammon, modified by NicoHood.")); + Serial.println (F("Version " VERSION)); + Serial.println (F("Compiled on " __DATE__ " at " __TIME__ " with Arduino IDE " xstr(ARDUINO) ".")); // setup backup buttons pinMode(BUTTON_DFU, INPUT_PULLUP); pinMode(BUTTON_HOODLOADER2, INPUT_PULLUP); digitalWrite (RESET, HIGH); // ensure SS stays high for now - SPI.begin (); - - // slow down SPI for benefit of slower processors like the Attiny - SPI.setClockDivider (SPI_CLOCK_DIV64); - pinMode (CLOCKOUT, OUTPUT); // set up Timer 1 - TCCR1A = _BV (COM1A0); // toggle OC1A on Compare Match - TCCR1B = _BV(WGM12) | _BV(CS10); // CTC, no prescaling + TCCR1A = bit (COM1A0); // toggle OC1A on Compare Match + TCCR1B = bit (WGM12) | bit (CS10); // CTC, no prescaling OCR1A = 0; // output every cycle } // end of setup void loop () { - SERIAL.println (F("Type 'H' to use HoodLoader2, or 'D' for the original DFU + USB-SERIAL firmware.")); - SERIAL.println (F("Type '0' to read other chips (advanced).")); - force16u2 = 0x00; - do - { - force16u2 = toupper (SERIAL.read ()); - - // HoodLoader 2 save mode - if (!digitalRead(BUTTON_DFU)) - force16u2 = 'D'; - if (!digitalRead(BUTTON_HOODLOADER2)) - force16u2 = 'H'; + Serial.println(); + Serial.println(F("Welcome to the HoodLoader2 installation sketch!")); + Serial.println(F("This version will install HoodLoader2 on your Arduino Uno or Mega")); + Serial.println(); + Serial.println(F("Make sure all wires are connected as written in the documentation.")); + Serial.println(F("Please now insert the 100nF capacitor between Reset and Ground on a standalone Arduino.")); + Serial.println(F("In some cases the Arduino will reset then and display these messages again.")); + Serial.println(); + Serial.println(F("Select the Arduino board you are using.")); +#if USE_ATMEGA16U2_DFU + Serial.println(F("Type 'U' for Uno or 'M' for Mega and press enter. (Advanced: 'D' for DFU)")); +#else + Serial.println(F("Type 'U' for Uno or 'M' for Mega and press enter.")); +#endif + Serial.println(); - } while (force16u2 != 'H' && force16u2 != 'D' && force16u2 != '0'); + // wait for user input + while (true) + { + char c = toupper (Serial.read ()); + if (c == 'U' ) { + board = HL2_UNO; + break; + } + if (c == 'M' ) { + board = HL2_MEGA; + break; + } + if (c == 'A' || !digitalRead(BUTTON_HOODLOADER2)) { + // depending on the uploading board decide what hex file we should use (for the blind pin selection mode) + // by default use the file for Arduino Uno. Its no problem to upload an Uno file to a Mega though. +#if defined(ARDUINO_AVR_MEGA2560) || FORCE_MEGA_BOOTLOADER + board = HL2_MEGA; +#else + board = HL2_UNO; +#endif + break; + } + if (c == 'D' || !digitalRead(BUTTON_DFU)) { + board = DFU; + break; + } + } - if (startProgramming ()) { + Serial.println(F("Starting programming, please be patient and wait some time.")); + Serial.println(); + Serial.println(F("On a standalone Arduino you will no longer see any messages here.")); + Serial.println(F("If you uploaded this sketch to a 2nd Aruino you will see some debug output.")); + Serial.println(); + Serial.println(F("If the installation was successfull the on board Led will start blinking fast (every 100ms).")); + Serial.println(F("If the installation failed the on board Led will start blinking slow (every second).")); + Serial.println(); + Serial.flush(); + + success = false; + if (startProgramming ()) + { getSignature (); getFuseBytes (); // if we found a signature try to write a bootloader if (foundSig != -1) writeBootloader (); - } + stopProgramming (); + } // end of if entered programming mode OK - stopProgramming(); + Serial.println (F("Type 'C' when ready to continue with another chip ...")); + + int speed; + if (success) + speed = 100; + else + speed = 1000; - SERIAL.println (F("Type 'C' when ready to continue with another chip ...")); - while (toupper (SERIAL.read ()) != 'C') + pinMode(LED_BUILTIN, OUTPUT); + while (toupper (Serial.read ()) != 'C') { - // HoodLoader 2 save mode - if (!digitalRead(BUTTON_DFU) || !digitalRead(BUTTON_HOODLOADER2)) - break; + // blink led + static unsigned long previousMillis = 0; + unsigned long currentMillis = millis(); + if (currentMillis - previousMillis >= speed) { + previousMillis = currentMillis; + digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN)); + } } + pinMode(LED_BUILTIN, INPUT); + digitalWrite(LED_BUILTIN, LOW); + } // end of loop diff --git a/tools/HoodLoader2_Installation_Sketch/bootloader_at90usb162.h b/tools/HoodLoader2_Installation_Sketch/bootloader_at90usb162.h new file mode 100644 index 0000000..8b631ec --- /dev/null +++ b/tools/HoodLoader2_Installation_Sketch/bootloader_at90usb162.h @@ -0,0 +1,541 @@ +/* +Copyright(c) 2014-2015 NicoHood +See the readme for credit to other people. +This file is part of Hoodloader2. +Hoodloader2 is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. +Hoodloader2 is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with Hoodloader2. If not, see . +*/ + +// File = HoodLoader2_0_4_Uno_at90usb162.hex +// Loader start: 3000, length: 4096 +// MD5 sum = 9B AD 36 A9 C1 D0 F5 F9 42 58 13 60 77 18 6B 8B + +const byte HoodLoader2_0_4_Uno_at90usb162_hex[] PROGMEM = { + 0x39, 0xC0, 0x00, 0x00, 0x83, 0xC0, 0x00, 0x00, 0x81, 0xC0, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x00, + 0x7D, 0xC0, 0x00, 0x00, 0x7B, 0xC0, 0x00, 0x00, 0x79, 0xC0, 0x00, 0x00, 0x77, 0xC0, 0x00, 0x00, + 0x75, 0xC0, 0x00, 0x00, 0x73, 0xC0, 0x00, 0x00, 0x71, 0xC0, 0x00, 0x00, 0x46, 0xC5, 0x00, 0x00, + 0x6D, 0xC0, 0x00, 0x00, 0x6B, 0xC0, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x00, 0x67, 0xC0, 0x00, 0x00, + 0x65, 0xC0, 0x00, 0x00, 0x63, 0xC0, 0x00, 0x00, 0x61, 0xC0, 0x00, 0x00, 0x5F, 0xC0, 0x00, 0x00, + 0x5D, 0xC0, 0x00, 0x00, 0x5B, 0xC0, 0x00, 0x00, 0x59, 0xC0, 0x00, 0x00, 0xAB, 0xC3, 0x00, 0x00, + 0x55, 0xC0, 0x00, 0x00, 0x53, 0xC0, 0x00, 0x00, 0x51, 0xC0, 0x00, 0x00, 0x4F, 0xC0, 0x00, 0x00, + 0x4D, 0xC0, 0x00, 0x00, 0x11, 0x24, 0x1F, 0xBE, 0xCF, 0xEF, 0xD2, 0xE0, 0xDE, 0xBF, 0xCD, 0xBF, + 0x90, 0x91, 0x80, 0x02, 0x10, 0x92, 0x80, 0x02, 0x84, 0xB7, 0x14, 0xBE, 0x28, 0xE1, 0x0F, 0xB6, + 0xF8, 0x94, 0x20, 0x93, 0x60, 0x00, 0x10, 0x92, 0x60, 0x00, 0x0F, 0xBE, 0xE0, 0xE0, 0xF0, 0xE0, + 0x25, 0x91, 0x34, 0x91, 0x2F, 0x3F, 0x3F, 0x4F, 0xE1, 0xF0, 0x81, 0xFF, 0x12, 0xC0, 0x97, 0x37, + 0xC1, 0xF0, 0x87, 0xE7, 0x80, 0x93, 0x80, 0x02, 0x8F, 0xEF, 0x9E, 0xE9, 0x24, 0xE2, 0x81, 0x50, + 0x90, 0x40, 0x20, 0x40, 0xE1, 0xF7, 0x00, 0xC0, 0x00, 0x00, 0x10, 0x92, 0x80, 0x02, 0x1F, 0xD0, + 0x08, 0xC0, 0x80, 0xFF, 0x02, 0xC0, 0x1B, 0xD0, 0x04, 0xC0, 0x83, 0xFF, 0x02, 0xC0, 0x97, 0x37, + 0xD1, 0xF7, 0x11, 0xE0, 0xA0, 0xE0, 0xB1, 0xE0, 0xEE, 0xE8, 0xFE, 0xE3, 0x02, 0xC0, 0x05, 0x90, + 0x0D, 0x92, 0xAA, 0x39, 0xB1, 0x07, 0xD9, 0xF7, 0x12, 0xE0, 0xAA, 0xE9, 0xB1, 0xE0, 0x01, 0xC0, + 0x1D, 0x92, 0xAE, 0x32, 0xB1, 0x07, 0xE1, 0xF7, 0x36, 0xD0, 0xBF, 0xC6, 0x79, 0xCF, 0x8B, 0xB1, + 0x80, 0x63, 0x8B, 0xB9, 0xE0, 0xE0, 0xF0, 0xE0, 0x09, 0x94, 0x84, 0xE0, 0x80, 0x93, 0xE9, 0x00, + 0x80, 0x91, 0xE8, 0x00, 0x85, 0xFD, 0x0D, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFD, 0xF3, 0xCF, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, + 0x02, 0xC0, 0x80, 0x91, 0xF1, 0x00, 0x08, 0x95, 0x93, 0xE0, 0x90, 0x93, 0xE9, 0x00, 0x90, 0x91, + 0xE8, 0x00, 0x95, 0xFF, 0x03, 0xC0, 0x80, 0x93, 0xF1, 0x00, 0x08, 0x95, 0x90, 0x91, 0xE8, 0x00, + 0x9E, 0x77, 0x90, 0x93, 0xE8, 0x00, 0x90, 0x91, 0xE8, 0x00, 0x90, 0xFD, 0xF4, 0xCF, 0x9E, 0xB3, + 0x91, 0x11, 0xF9, 0xCF, 0x08, 0x95, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0x00, 0xD0, 0xCD, 0xB7, + 0xDE, 0xB7, 0x90, 0xE0, 0x80, 0xE8, 0x0F, 0xB6, 0xF8, 0x94, 0x80, 0x93, 0x61, 0x00, 0x90, 0x93, + 0x61, 0x00, 0x0F, 0xBE, 0x81, 0xE0, 0x85, 0xBF, 0x82, 0xE0, 0x85, 0xBF, 0x7F, 0xD4, 0x84, 0xE0, + 0x85, 0xBD, 0x8A, 0xB1, 0x88, 0x6B, 0x8A, 0xB9, 0x8B, 0xB1, 0x84, 0x6B, 0x8B, 0xB9, 0x78, 0x94, + 0x13, 0xE0, 0xBB, 0x24, 0xB3, 0x94, 0xE5, 0xE0, 0x8E, 0x2E, 0x21, 0x2C, 0x31, 0x2C, 0x82, 0xE9, + 0x91, 0xE0, 0x27, 0xE0, 0x28, 0x0F, 0x29, 0x83, 0x84, 0xE0, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, + 0xE8, 0x00, 0x82, 0xFF, 0x8D, 0xC1, 0xA1, 0xDF, 0x98, 0x2F, 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, + 0x13, 0xC0, 0x80, 0x91, 0xC8, 0x00, 0x85, 0xFF, 0xFC, 0xCF, 0x90, 0x93, 0xCE, 0x00, 0x80, 0x91, + 0xF2, 0x00, 0x81, 0x11, 0x05, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x5C, 0x98, 0x10, 0x93, 0x9F, 0x01, 0x78, 0xC1, 0x95, 0x34, 0x19, 0xF4, 0x10, 0x92, 0x00, 0x01, + 0x32, 0xC0, 0x88, 0xE8, 0x89, 0x0F, 0x82, 0x30, 0x10, 0xF0, 0x94, 0x35, 0x11, 0xF4, 0x7D, 0xDF, + 0x2A, 0xC0, 0x90, 0x35, 0x41, 0xF1, 0x9C, 0x34, 0x31, 0xF1, 0x94, 0x37, 0x21, 0xF4, 0x84, 0xE4, + 0x8B, 0xDF, 0x80, 0xE0, 0x03, 0xC0, 0x91, 0x36, 0x19, 0xF4, 0x89, 0xE5, 0x85, 0xDF, 0x5C, 0xC1, + 0x91, 0x34, 0xD9, 0xF4, 0x6A, 0xDF, 0x08, 0x2F, 0x68, 0xDF, 0x90, 0xE0, 0x88, 0x0F, 0x99, 0x1F, + 0x20, 0x2F, 0x30, 0xE0, 0x32, 0x2F, 0x22, 0x27, 0x33, 0x0F, 0x82, 0x2B, 0x93, 0x2B, 0xAA, 0x27, + 0x97, 0xFD, 0xA0, 0x95, 0xBA, 0x2F, 0x80, 0x93, 0x9A, 0x01, 0x90, 0x93, 0x9B, 0x01, 0xA0, 0x93, + 0x9C, 0x01, 0xB0, 0x93, 0x9D, 0x01, 0x8D, 0xE0, 0xE1, 0xCF, 0x90, 0x37, 0x11, 0xF4, 0x83, 0xE5, + 0xDD, 0xCF, 0x93, 0x35, 0x61, 0xF4, 0x52, 0xE9, 0xE5, 0x2E, 0x51, 0xE0, 0xF5, 0x2E, 0xF7, 0x01, + 0x81, 0x91, 0x7F, 0x01, 0x59, 0xDF, 0x29, 0x81, 0x2E, 0x11, 0xF9, 0xCF, 0x2D, 0xC1, 0x96, 0x35, + 0x21, 0xF4, 0x81, 0xE3, 0x51, 0xDF, 0x80, 0xE3, 0xC9, 0xCF, 0x93, 0x37, 0x31, 0xF4, 0x82, 0xE8, + 0x4B, 0xDF, 0x84, 0xE9, 0x49, 0xDF, 0x8E, 0xE1, 0xC1, 0xCF, 0x95, 0x36, 0xA9, 0xF4, 0xE0, 0xE0, + 0xF0, 0xE0, 0x10, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0x80, 0x92, + 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xE0, 0x58, 0xFF, 0x4F, 0xE1, 0x15, + 0x80, 0xE3, 0xF8, 0x07, 0x71, 0xF7, 0xC7, 0xCF, 0x9C, 0x36, 0x51, 0xF4, 0x16, 0xDF, 0x80, 0x95, + 0x99, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x08, 0x2E, 0x90, 0x93, 0x57, 0x00, 0xE8, 0x95, 0xBB, 0xCF, + 0x92, 0x37, 0x21, 0xF4, 0x89, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x10, 0xC0, 0x96, 0x34, 0x19, 0xF4, + 0x89, 0xE0, 0xF1, 0x01, 0x0B, 0xC0, 0x9E, 0x34, 0x21, 0xF4, 0x89, 0xE0, 0xE3, 0xE0, 0xF0, 0xE0, + 0x05, 0xC0, 0x91, 0x35, 0x39, 0xF4, 0x89, 0xE0, 0xE2, 0xE0, 0xF0, 0xE0, 0x80, 0x93, 0x57, 0x00, + 0x84, 0x91, 0x84, 0xCF, 0x92, 0x36, 0x31, 0xF4, 0x89, 0xE5, 0x06, 0xDF, 0x80, 0xE0, 0x04, 0xDF, + 0x80, 0xE8, 0x7C, 0xCF, 0x92, 0x34, 0x19, 0xF0, 0x97, 0x36, 0x09, 0xF0, 0xCD, 0xC0, 0x9A, 0x83, + 0xE4, 0xDE, 0xE8, 0x2E, 0xF1, 0x2C, 0xFE, 0x2C, 0xEE, 0x24, 0xDF, 0xDE, 0xE8, 0x2A, 0xDD, 0xDE, + 0x08, 0x2F, 0x8B, 0xEB, 0x80, 0x0F, 0x9A, 0x81, 0x82, 0x30, 0x10, 0xF0, 0x8F, 0xE3, 0x66, 0xCF, + 0x97, 0x36, 0x09, 0xF0, 0x44, 0xC0, 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x37, 0x01, + 0xA1, 0x2C, 0x61, 0x14, 0x71, 0x04, 0x09, 0xF4, 0xB7, 0xC0, 0xC0, 0x90, 0x9A, 0x01, 0xD0, 0x90, + 0x9B, 0x01, 0xE0, 0x90, 0x9C, 0x01, 0xF0, 0x90, 0x9D, 0x01, 0x06, 0x34, 0xB9, 0xF4, 0xEA, 0x2D, + 0xF0, 0xE0, 0xEC, 0x29, 0xFD, 0x29, 0x84, 0x91, 0xCF, 0xDE, 0xAA, 0x20, 0x69, 0xF0, 0xF2, 0xE0, + 0xCF, 0x0E, 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9A, 0x01, 0xD0, 0x92, 0x9B, 0x01, + 0xE0, 0x92, 0x9C, 0x01, 0xF0, 0x92, 0x9D, 0x01, 0xAB, 0x24, 0x15, 0xC0, 0xD7, 0x01, 0xC6, 0x01, + 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0x42, 0xD5, 0xB6, 0xDE, 0x22, 0xE0, 0xC2, 0x0E, + 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9A, 0x01, 0xD0, 0x92, 0x9B, 0x01, 0xE0, 0x92, + 0x9C, 0x01, 0xF0, 0x92, 0x9D, 0x01, 0x81, 0xE0, 0x68, 0x1A, 0x71, 0x08, 0xC2, 0xCF, 0x40, 0x90, + 0x9A, 0x01, 0x50, 0x90, 0x9B, 0x01, 0x60, 0x90, 0x9C, 0x01, 0x70, 0x90, 0x9D, 0x01, 0x06, 0x34, + 0x39, 0xF4, 0xF2, 0x01, 0x10, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0xFC, 0x82, 0xEB, 0x82, 0x91, 0x2C, 0xA1, 0x2C, 0xEB, 0x81, 0xFC, 0x81, 0xEF, 0x2B, 0x09, 0xF4, + 0x50, 0xC0, 0x06, 0x34, 0x31, 0xF5, 0xAA, 0x20, 0x01, 0xF1, 0xC0, 0x90, 0x9A, 0x01, 0xD0, 0x90, + 0x9B, 0x01, 0xE0, 0x90, 0x9C, 0x01, 0xF0, 0x90, 0x9D, 0x01, 0x67, 0xDE, 0x29, 0x2D, 0x30, 0xE0, + 0x38, 0x2B, 0xF6, 0x01, 0x09, 0x01, 0xB0, 0x92, 0x57, 0x00, 0xE8, 0x95, 0x11, 0x24, 0xF2, 0xE0, + 0xCF, 0x0E, 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9A, 0x01, 0xD0, 0x92, 0x9B, 0x01, + 0xE0, 0x92, 0x9C, 0x01, 0xF0, 0x92, 0x9D, 0x01, 0x02, 0xC0, 0x4F, 0xDE, 0x98, 0x2E, 0xAB, 0x24, + 0x22, 0xC0, 0x4B, 0xDE, 0x68, 0x2F, 0x80, 0x91, 0x9A, 0x01, 0x90, 0x91, 0x9B, 0x01, 0xA0, 0x91, + 0x9C, 0x01, 0xB0, 0x91, 0x9D, 0x01, 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0xE7, 0xD4, + 0x80, 0x91, 0x9A, 0x01, 0x90, 0x91, 0x9B, 0x01, 0xA0, 0x91, 0x9C, 0x01, 0xB0, 0x91, 0x9D, 0x01, + 0x02, 0x96, 0xA1, 0x1D, 0xB1, 0x1D, 0x80, 0x93, 0x9A, 0x01, 0x90, 0x93, 0x9B, 0x01, 0xA0, 0x93, + 0x9C, 0x01, 0xB0, 0x93, 0x9D, 0x01, 0x8B, 0x81, 0x9C, 0x81, 0x01, 0x97, 0x9C, 0x83, 0x8B, 0x83, + 0xAB, 0xCF, 0x06, 0x34, 0x09, 0xF0, 0xCF, 0xCE, 0xF2, 0x01, 0x80, 0x92, 0x57, 0x00, 0xE8, 0x95, + 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xC7, 0xCE, 0x9B, 0x31, 0x09, 0xF0, 0x3F, 0xCF, 0x04, 0xC0, + 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, 0x55, 0xC0, 0x8F, 0xB7, 0xF8, 0x94, 0x90, 0x91, 0xA3, 0x01, + 0x8F, 0xBF, 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, 0x06, 0xC0, 0x99, 0x23, 0x09, 0xF4, 0x49, 0xC0, + 0x5D, 0x98, 0x10, 0x93, 0xA0, 0x01, 0xF9, 0x2E, 0xFF, 0x20, 0xB1, 0xF0, 0x00, 0x91, 0xA2, 0x01, + 0xE0, 0x2F, 0xF0, 0xE0, 0xEC, 0x55, 0xFE, 0x4F, 0x80, 0x81, 0x0E, 0xDE, 0x0F, 0x5F, 0x0F, 0x77, + 0x00, 0x93, 0xA2, 0x01, 0x9F, 0xB7, 0xF8, 0x94, 0x80, 0x91, 0xA3, 0x01, 0x81, 0x50, 0x80, 0x93, + 0xA3, 0x01, 0x9F, 0xBF, 0xFA, 0x94, 0xE8, 0xCF, 0x10, 0x93, 0xE9, 0x00, 0x90, 0x91, 0xE8, 0x00, + 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x95, 0xFD, 0x1D, 0xC0, 0x80, 0x91, + 0xE8, 0x00, 0x80, 0xFD, 0x10, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, 0x80, 0x91, 0x9E, 0x01, + 0x88, 0x23, 0xB9, 0xF0, 0xF4, 0xE0, 0xF0, 0x93, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, + 0x80, 0x93, 0xE8, 0x00, 0x0E, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x03, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x51, 0xF3, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xF9, 0xCF, + 0xE5, 0xCF, 0x22, 0xD4, 0xA8, 0x9B, 0x15, 0xC0, 0xA8, 0x9A, 0x80, 0x91, 0xA0, 0x01, 0x88, 0x23, + 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, 0xA0, 0x01, 0x81, 0x11, 0x01, 0xC0, 0x5D, 0x9A, 0x80, 0x91, + 0x9F, 0x01, 0x88, 0x23, 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, 0x9F, 0x01, 0x81, 0x11, 0x01, 0xC0, + 0x5C, 0x9A, 0x80, 0x91, 0x00, 0x01, 0x81, 0x11, 0xF7, 0xCD, 0x8F, 0xE9, 0x9F, 0xE0, 0x01, 0x97, + 0xF1, 0xF7, 0x00, 0xC0, 0x00, 0x00, 0x80, 0x91, 0xE0, 0x00, 0x81, 0x60, 0x80, 0x93, 0xE0, 0x00, + 0x9C, 0xE0, 0x88, 0xE1, 0x0F, 0xB6, 0xF8, 0x94, 0xA8, 0x95, 0x80, 0x93, 0x60, 0x00, 0x0F, 0xBE, + 0x90, 0x93, 0x60, 0x00, 0xFF, 0xCF, 0x42, 0xE0, 0x61, 0xEC, 0x82, 0xE0, 0xE2, 0xD1, 0x42, 0xE3, + 0x61, 0xE8, 0x83, 0xE0, 0xDE, 0xD1, 0x42, 0xE3, 0x60, 0xE8, 0x84, 0xE0, 0xDA, 0xC1, 0xCF, 0x93, + 0x80, 0x91, 0x26, 0x02, 0x98, 0x2F, 0x9F, 0x77, 0x91, 0x32, 0x09, 0xF0, 0xC1, 0xC0, 0x90, 0x91, + 0x27, 0x02, 0x91, 0x32, 0x99, 0xF4, 0x81, 0x3A, 0x09, 0xF0, 0xBA, 0xC0, 0x80, 0x91, 0xE8, 0x00, + 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x67, 0xE0, 0x70, 0xE0, 0x81, 0xE0, 0x91, 0xE0, 0x65, 0xD1, + 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, 0xAA, 0xC0, 0x90, 0x32, 0x09, 0xF0, + 0x92, 0xC0, 0x81, 0x32, 0x09, 0xF0, 0xA4, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0xE1, 0xE0, 0xF1, 0xE0, 0x87, 0xE0, 0x88, 0x23, 0x09, 0xF1, 0x9E, 0xB3, 0x99, 0x23, + 0x11, 0xF1, 0x95, 0x30, 0x01, 0xF1, 0x90, 0x91, 0xE8, 0x00, 0x93, 0xFD, 0x1C, 0xC0, 0x90, 0x91, + 0xE8, 0x00, 0x92, 0xFF, 0xF1, 0xCF, 0x90, 0x91, 0xF2, 0x00, 0x99, 0x23, 0x29, 0xF0, 0x90, 0x91, + 0xF1, 0x00, 0x91, 0x93, 0x81, 0x50, 0xB9, 0xF7, 0x90, 0x91, 0xE8, 0x00, 0x9B, 0x77, 0x90, 0x93, + 0xE8, 0x00, 0xE2, 0xCF, 0x8E, 0xB3, 0x88, 0x23, 0x31, 0xF0, 0x85, 0x30, 0x21, 0xF0, 0x80, 0x91, + 0xE8, 0x00, 0x80, 0xFF, 0xF7, 0xCF, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x20, 0x91, 0x01, 0x01, 0x30, 0x91, 0x02, 0x01, 0x40, 0x91, 0x03, 0x01, 0x50, 0x91, 0x04, 0x01, + 0x21, 0x15, 0x81, 0xEE, 0x38, 0x07, 0x41, 0x05, 0x51, 0x05, 0x21, 0xF4, 0x81, 0xE0, 0x80, 0x93, + 0x9E, 0x01, 0x02, 0xC0, 0x10, 0x92, 0x9E, 0x01, 0x10, 0x92, 0xA3, 0x01, 0x10, 0x92, 0xA2, 0x01, + 0x10, 0x92, 0xA1, 0x01, 0x80, 0x91, 0x06, 0x01, 0x81, 0x30, 0x21, 0xF0, 0x82, 0x30, 0x21, 0xF4, + 0xC0, 0xE2, 0x03, 0xC0, 0xC0, 0xE3, 0x01, 0xC0, 0xC0, 0xE0, 0x80, 0x91, 0x05, 0x01, 0x82, 0x30, + 0x09, 0xF4, 0xC8, 0x60, 0x80, 0x91, 0x07, 0x01, 0x87, 0x30, 0x31, 0xF0, 0x88, 0x30, 0x31, 0xF0, + 0x86, 0x30, 0x29, 0xF4, 0xC2, 0x60, 0x03, 0xC0, 0xC4, 0x60, 0x01, 0xC0, 0xC6, 0x60, 0x5B, 0x9A, + 0x10, 0x92, 0xC9, 0x00, 0x10, 0x92, 0xC8, 0x00, 0x10, 0x92, 0xCA, 0x00, 0xDA, 0x01, 0xC9, 0x01, + 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0xBC, 0x01, 0xCD, 0x01, 0x60, 0x58, 0x7B, 0x47, + 0x81, 0x4E, 0x9F, 0x4F, 0x5A, 0xD3, 0x21, 0x50, 0x31, 0x09, 0x30, 0x93, 0xCD, 0x00, 0x20, 0x93, + 0xCC, 0x00, 0xC0, 0x93, 0xCA, 0x00, 0x82, 0xE0, 0x80, 0x93, 0xC8, 0x00, 0x88, 0xE9, 0x80, 0x93, + 0xC9, 0x00, 0x5B, 0x98, 0x15, 0xC0, 0x92, 0x32, 0x99, 0xF4, 0x81, 0x32, 0x89, 0xF4, 0x80, 0x91, + 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x30, 0xD1, 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, + 0x06, 0xC0, 0x80, 0x91, 0x28, 0x02, 0x80, 0xFF, 0x02, 0xC0, 0x5F, 0x98, 0x01, 0xC0, 0x5F, 0x9A, + 0xCF, 0x91, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, 0x0F, 0x92, 0x11, 0x24, 0x8F, 0x93, + 0x9F, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x90, 0x91, 0xCE, 0x00, 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, + 0x17, 0xC0, 0x8E, 0xB3, 0x84, 0x30, 0xA1, 0xF4, 0x80, 0x91, 0xA3, 0x01, 0x87, 0xFD, 0x10, 0xC0, + 0x80, 0x91, 0xA1, 0x01, 0xE8, 0x2F, 0xF0, 0xE0, 0xEC, 0x55, 0xFE, 0x4F, 0x90, 0x83, 0x8F, 0x5F, + 0x8F, 0x77, 0x80, 0x93, 0xA1, 0x01, 0x80, 0x91, 0xA3, 0x01, 0x8F, 0x5F, 0x80, 0x93, 0xA3, 0x01, + 0xFF, 0x91, 0xEF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, + 0x18, 0x95, 0x29, 0x2F, 0x30, 0xE0, 0x22, 0x30, 0x31, 0x05, 0x59, 0xF0, 0x23, 0x30, 0x31, 0x05, + 0x69, 0xF0, 0x21, 0x30, 0x31, 0x05, 0xF9, 0xF4, 0x82, 0xE1, 0x90, 0xE0, 0x20, 0xE8, 0x31, 0xE0, + 0x1E, 0xC0, 0x8E, 0xE3, 0x90, 0xE0, 0x22, 0xE4, 0x31, 0xE0, 0x19, 0xC0, 0x88, 0x23, 0x49, 0xF0, + 0x81, 0x30, 0x61, 0xF0, 0x82, 0x30, 0x79, 0xF4, 0x80, 0xE2, 0x90, 0xE0, 0x28, 0xE0, 0x31, 0xE0, + 0x0E, 0xC0, 0x84, 0xE0, 0x90, 0xE0, 0x2E, 0xE3, 0x31, 0xE0, 0x09, 0xC0, 0x82, 0xE1, 0x90, 0xE0, + 0x2A, 0xE2, 0x31, 0xE0, 0x04, 0xC0, 0x80, 0xE0, 0x90, 0xE0, 0x20, 0xE0, 0x30, 0xE0, 0xFA, 0x01, + 0x31, 0x83, 0x20, 0x83, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, + 0x23, 0xE0, 0xFB, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0xF9, 0x99, 0xFE, 0xCF, 0x25, 0xE0, 0xFB, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, 0x21, 0xE0, 0xFB, 0x01, 0x0A, 0x01, 0x20, 0x93, + 0x57, 0x00, 0xE8, 0x95, 0x11, 0x24, 0x08, 0x95, 0x21, 0xE2, 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, + 0x84, 0x91, 0x08, 0x95, 0x29, 0xE0, 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, + 0xE1, 0xE0, 0xF0, 0xE0, 0x89, 0xE0, 0x80, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, 0x80, 0x95, 0x99, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, + 0x08, 0x2E, 0x90, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x20, 0x91, 0x2C, 0x02, 0x30, 0x91, + 0x2D, 0x02, 0x26, 0x17, 0x37, 0x07, 0x48, 0xF0, 0x61, 0x15, 0x71, 0x05, 0x39, 0xF4, 0x20, 0x91, + 0xE8, 0x00, 0x2E, 0x77, 0x20, 0x93, 0xE8, 0x00, 0x01, 0xC0, 0xB9, 0x01, 0x40, 0xE0, 0x61, 0x15, + 0x71, 0x05, 0x79, 0xF1, 0x2E, 0xB3, 0x22, 0x23, 0xF1, 0xF1, 0x25, 0x30, 0xF1, 0xF1, 0x20, 0x91, + 0xE8, 0x00, 0x23, 0xFD, 0x3C, 0xC0, 0x20, 0x91, 0xE8, 0x00, 0x22, 0xFD, 0x2E, 0xC0, 0x20, 0x91, + 0xE8, 0x00, 0x20, 0xFF, 0xEC, 0xCF, 0x20, 0x91, 0xF2, 0x00, 0x30, 0xE0, 0xFC, 0x01, 0xCF, 0x01, + 0x61, 0x15, 0x71, 0x05, 0x59, 0xF0, 0x28, 0x30, 0x31, 0x05, 0x40, 0xF4, 0x81, 0x91, 0x80, 0x93, + 0xF1, 0x00, 0x61, 0x50, 0x71, 0x09, 0x2F, 0x5F, 0x3F, 0x4F, 0xF1, 0xCF, 0x41, 0xE0, 0x28, 0x30, + 0x31, 0x05, 0x09, 0xF0, 0x40, 0xE0, 0x20, 0x91, 0xE8, 0x00, 0x2E, 0x77, 0x20, 0x93, 0xE8, 0x00, + 0xCE, 0xCF, 0x41, 0x11, 0xCF, 0xCF, 0x09, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x61, 0xF0, 0x85, 0x30, + 0x61, 0xF0, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFD, 0x0A, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFF, + 0xF3, 0xCF, 0x80, 0xE0, 0x08, 0x95, 0x82, 0xE0, 0x08, 0x95, 0x83, 0xE0, 0x08, 0x95, 0x81, 0xE0, + 0x08, 0x95, 0x8F, 0x70, 0x80, 0x93, 0xE9, 0x00, 0xEB, 0xEE, 0xF0, 0xE0, 0x80, 0x81, 0x81, 0x60, + 0x80, 0x83, 0xED, 0xEE, 0xF0, 0xE0, 0x10, 0x82, 0x60, 0x93, 0xEC, 0x00, 0x40, 0x83, 0x80, 0x91, + 0xEE, 0x00, 0x88, 0x1F, 0x88, 0x27, 0x88, 0x1F, 0x08, 0x95, 0x80, 0x91, 0x26, 0x02, 0x87, 0xFF, + 0x0F, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFD, 0x04, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, + 0x10, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x0A, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x49, 0xF0, + 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xF9, 0xCF, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x08, 0x95, 0x3C, 0xD0, 0x3E, 0xD0, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x77, 0x80, 0x93, + 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, 0x80, 0x68, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, + 0x8F, 0x7D, 0x80, 0x93, 0xD8, 0x00, 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, 0x89, 0xBD, 0x09, 0xB4, + 0x00, 0xFE, 0xFD, 0xCF, 0x1E, 0xBA, 0x10, 0x92, 0x24, 0x02, 0x42, 0xE0, 0x60, 0xE0, 0x80, 0xE0, + 0xB0, 0xDF, 0x80, 0x91, 0xE1, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, + 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x88, 0x60, 0x80, 0x93, 0xE2, 0x00, + 0x80, 0x91, 0xE0, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE0, 0x00, 0x08, 0x95, 0xE3, 0xE6, 0xF0, 0xE0, + 0x80, 0x81, 0x8E, 0x7F, 0x80, 0x83, 0x81, 0xE0, 0x80, 0x93, 0x25, 0x02, 0xC3, 0xCF, 0x10, 0x92, + 0xE2, 0x00, 0x08, 0x95, 0x10, 0x92, 0xE1, 0x00, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, + 0x0F, 0x92, 0x11, 0x24, 0x2F, 0x93, 0x3F, 0x93, 0x4F, 0x93, 0x5F, 0x93, 0x6F, 0x93, 0x7F, 0x93, + 0x8F, 0x93, 0x9F, 0x93, 0xAF, 0x93, 0xBF, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x80, 0x91, 0xE1, 0x00, + 0x80, 0xFF, 0x16, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x80, 0xFF, 0x12, 0xC0, 0x80, 0x91, 0xE2, 0x00, + 0x8E, 0x7F, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, 0x80, 0x93, 0xE2, 0x00, + 0x80, 0x91, 0xD8, 0x00, 0x80, 0x62, 0x80, 0x93, 0xD8, 0x00, 0x19, 0xBC, 0x1E, 0xBA, 0x6B, 0xD1, + 0x80, 0x91, 0xE1, 0x00, 0x84, 0xFF, 0x2E, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x84, 0xFF, 0x2A, 0xC0, + 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, 0x89, 0xBD, 0x09, 0xB4, 0x00, 0xFE, 0xFD, 0xCF, 0x80, 0x91, + 0xD8, 0x00, 0x8F, 0x7D, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xE1, 0x00, 0x8F, 0x7E, 0x80, 0x93, + 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x8F, 0x7E, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, + 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0x24, 0x02, 0x88, 0x23, 0x11, 0xF0, 0x84, 0xE0, + 0x07, 0xC0, 0x80, 0x91, 0xE3, 0x00, 0x87, 0xFD, 0x02, 0xC0, 0x81, 0xE0, 0x01, 0xC0, 0x83, 0xE0, + 0x8E, 0xBB, 0x39, 0xD1, 0x80, 0x91, 0xE1, 0x00, 0x83, 0xFF, 0x21, 0xC0, 0x80, 0x91, 0xE2, 0x00, + 0x83, 0xFF, 0x1D, 0xC0, 0x80, 0x91, 0xE1, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x82, 0xE0, + 0x8E, 0xBB, 0x10, 0x92, 0x24, 0x02, 0x80, 0x91, 0xE1, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, + 0x80, 0x91, 0xE2, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, + 0x80, 0x93, 0xE2, 0x00, 0x42, 0xE0, 0x60, 0xE0, 0x80, 0xE0, 0x0B, 0xDF, 0x14, 0xD1, 0xFF, 0x91, + 0xEF, 0x91, 0xBF, 0x91, 0xAF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x7F, 0x91, 0x6F, 0x91, 0x5F, 0x91, + 0x4F, 0x91, 0x3F, 0x91, 0x2F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, 0x18, 0x95, + 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0xCD, 0xB7, 0xDE, 0xB7, 0xE6, 0xE2, 0xF2, 0xE0, + 0x88, 0xE0, 0x8E, 0x0F, 0x90, 0x91, 0xF1, 0x00, 0x91, 0x93, 0x8E, 0x13, 0xFB, 0xCF, 0x0F, 0xDD, + 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFF, 0xDB, 0xC0, 0x80, 0x91, 0x26, 0x02, 0x90, 0x91, 0x27, 0x02, + 0x95, 0x30, 0x09, 0xF4, 0x66, 0xC0, 0x30, 0xF4, 0x91, 0x30, 0x59, 0xF1, 0x68, 0xF0, 0x93, 0x30, + 0x41, 0xF1, 0xCD, 0xC0, 0x98, 0x30, 0x09, 0xF4, 0x9D, 0xC0, 0x99, 0x30, 0x09, 0xF4, 0xAC, 0xC0, + 0x96, 0x30, 0x09, 0xF0, 0xC4, 0xC0, 0x76, 0xC0, 0x80, 0x38, 0x81, 0xF0, 0x82, 0x38, 0x09, 0xF0, + 0xBE, 0xC0, 0x80, 0x91, 0x2A, 0x02, 0x8F, 0x70, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, 0xEB, 0x00, + 0x85, 0xFB, 0x88, 0x27, 0x80, 0xF9, 0x10, 0x92, 0xE9, 0x00, 0x01, 0xC0, 0x80, 0xE0, 0x90, 0x91, + 0xE8, 0x00, 0x97, 0x7F, 0x90, 0x93, 0xE8, 0x00, 0x80, 0x93, 0xF1, 0x00, 0x10, 0x92, 0xF1, 0x00, + 0x84, 0xC0, 0x28, 0x2F, 0x2D, 0x7F, 0x09, 0xF0, 0xA2, 0xC0, 0x82, 0x30, 0x09, 0xF0, 0x9F, 0xC0, + 0x80, 0x91, 0x28, 0x02, 0x81, 0x11, 0x27, 0xC0, 0x80, 0x91, 0x2A, 0x02, 0x8F, 0x70, 0x09, 0xF4, + 0x96, 0xC0, 0x80, 0x93, 0xE9, 0x00, 0x20, 0x91, 0xEB, 0x00, 0x20, 0xFF, 0x1C, 0xC0, 0x93, 0x30, + 0x21, 0xF4, 0x80, 0x91, 0xEB, 0x00, 0x80, 0x62, 0x14, 0xC0, 0x90, 0x91, 0xEB, 0x00, 0x90, 0x61, + 0x90, 0x93, 0xEB, 0x00, 0x21, 0xE0, 0x30, 0xE0, 0xA9, 0x01, 0x02, 0xC0, 0x44, 0x0F, 0x55, 0x1F, + 0x8A, 0x95, 0xE2, 0xF7, 0x40, 0x93, 0xEA, 0x00, 0x10, 0x92, 0xEA, 0x00, 0x80, 0x91, 0xEB, 0x00, + 0x88, 0x60, 0x80, 0x93, 0xEB, 0x00, 0x10, 0x92, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, + 0x4F, 0xC0, 0x81, 0x11, 0x6C, 0xC0, 0x10, 0x91, 0x28, 0x02, 0x1F, 0x77, 0x80, 0x91, 0xE3, 0x00, + 0x80, 0x78, 0x81, 0x2B, 0x80, 0x93, 0xE3, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0x7B, 0xDE, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xFC, 0xCF, 0x80, 0x91, 0xE3, 0x00, + 0x80, 0x68, 0x80, 0x93, 0xE3, 0x00, 0x11, 0x11, 0x02, 0xC0, 0x82, 0xE0, 0x01, 0xC0, 0x83, 0xE0, + 0x8E, 0xBB, 0x4D, 0xC0, 0x80, 0x58, 0x82, 0x30, 0x08, 0xF0, 0x49, 0xC0, 0xAE, 0x01, 0x4F, 0x5F, + 0x5F, 0x4F, 0x60, 0x91, 0x2A, 0x02, 0x80, 0x91, 0x28, 0x02, 0x90, 0x91, 0x29, 0x02, 0x69, 0xDD, + 0xBC, 0x01, 0x00, 0x97, 0x09, 0xF4, 0x3B, 0xC0, 0x90, 0x91, 0xE8, 0x00, 0x97, 0x7F, 0x90, 0x93, + 0xE8, 0x00, 0x89, 0x81, 0x9A, 0x81, 0xE1, 0xDD, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x2D, 0xC0, 0x80, 0x38, 0x59, 0xF5, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0x80, 0x91, 0x24, 0x02, 0x80, 0x93, 0xF1, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, + 0x80, 0x93, 0xE8, 0x00, 0x3A, 0xDE, 0x1B, 0xC0, 0x81, 0x11, 0x19, 0xC0, 0x90, 0x91, 0x28, 0x02, + 0x92, 0x30, 0xA8, 0xF4, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x90, 0x93, + 0x24, 0x02, 0x2B, 0xDE, 0x80, 0x91, 0x24, 0x02, 0x81, 0x11, 0x06, 0xC0, 0x80, 0x91, 0xE3, 0x00, + 0x87, 0xFD, 0x02, 0xC0, 0x81, 0xE0, 0x01, 0xC0, 0x84, 0xE0, 0x8E, 0xBB, 0x24, 0xDC, 0x80, 0x91, + 0xE8, 0x00, 0x83, 0xFF, 0x0A, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, + 0x80, 0x91, 0xEB, 0x00, 0x80, 0x62, 0x80, 0x93, 0xEB, 0x00, 0x0F, 0x90, 0x0F, 0x90, 0xDF, 0x91, + 0xCF, 0x91, 0x1F, 0x91, 0x08, 0x95, 0x08, 0x95, 0xCF, 0x93, 0x8E, 0xB3, 0x88, 0x23, 0x99, 0xF0, + 0xC0, 0x91, 0xE9, 0x00, 0xCF, 0x70, 0x90, 0x91, 0xEC, 0x00, 0x89, 0x2F, 0x81, 0x70, 0x90, 0xFD, + 0x80, 0xE8, 0xC8, 0x2B, 0x10, 0x92, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFD, 0xE8, 0xDE, + 0xCF, 0x70, 0xC0, 0x93, 0xE9, 0x00, 0xCF, 0x91, 0x08, 0x95, 0xA1, 0xE2, 0x1A, 0x2E, 0xAA, 0x1B, + 0xBB, 0x1B, 0xFD, 0x01, 0x0D, 0xC0, 0xAA, 0x1F, 0xBB, 0x1F, 0xEE, 0x1F, 0xFF, 0x1F, 0xA2, 0x17, + 0xB3, 0x07, 0xE4, 0x07, 0xF5, 0x07, 0x20, 0xF0, 0xA2, 0x1B, 0xB3, 0x0B, 0xE4, 0x0B, 0xF5, 0x0B, + 0x66, 0x1F, 0x77, 0x1F, 0x88, 0x1F, 0x99, 0x1F, 0x1A, 0x94, 0x69, 0xF7, 0x60, 0x95, 0x70, 0x95, + 0x80, 0x95, 0x90, 0x95, 0x9B, 0x01, 0xAC, 0x01, 0xBD, 0x01, 0xCF, 0x01, 0x08, 0x95, 0xF9, 0x99, + 0xFE, 0xCF, 0x92, 0xBD, 0x81, 0xBD, 0xF8, 0x9A, 0x99, 0x27, 0x80, 0xB5, 0x08, 0x95, 0x26, 0x2F, + 0xF9, 0x99, 0xFE, 0xCF, 0x1F, 0xBA, 0x92, 0xBD, 0x81, 0xBD, 0x20, 0xBD, 0x0F, 0xB6, 0xF8, 0x94, + 0xFA, 0x9A, 0xF9, 0x9A, 0x0F, 0xBE, 0x01, 0x96, 0x08, 0x95, 0xF8, 0x94, 0xFF, 0xCF, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x03, 0x48, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, + 0x4C, 0x00, 0x6F, 0x00, 0x61, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x32, 0x00, 0x20, 0x00, + 0x55, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x12, 0x03, 0x4E, 0x00, 0x69, 0x00, 0x63, 0x00, + 0x6F, 0x00, 0x48, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x00, 0x00, 0x04, 0x03, 0x09, 0x04, + 0x09, 0x02, 0x3E, 0x00, 0x02, 0x01, 0x00, 0x80, 0x32, 0x09, 0x04, 0x00, 0x00, 0x01, 0x02, 0x02, + 0x01, 0x00, 0x05, 0x24, 0x00, 0x10, 0x01, 0x04, 0x24, 0x02, 0x02, 0x05, 0x24, 0x06, 0x00, 0x01, + 0x07, 0x05, 0x82, 0x03, 0x08, 0x00, 0xFF, 0x09, 0x04, 0x01, 0x00, 0x02, 0x0A, 0x00, 0x00, 0x00, + 0x07, 0x05, 0x04, 0x02, 0x40, 0x00, 0x05, 0x07, 0x05, 0x83, 0x02, 0x40, 0x00, 0x05, 0x12, 0x01, + 0x10, 0x01, 0x02, 0x00, 0x00, 0x08, 0x41, 0x23, 0x43, 0x00, 0x04, 0x02, 0x01, 0x02, 0x00, 0x01, + 0x48, 0x4C, 0x32, 0x2E, 0x30, 0x2E, 0x34, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x6A, 0xCC, 0x7B, 0xCC, 0x8C, 0xCC, 0x98, 0xCC, 0x9D, 0xCC, 0xA2, 0xCC, 0xA8, 0xCC, 0x08, 0x95, + 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, + 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0x00, 0x30, 0x00, 0x00, 0x00, 0xDF, 0xFB, 0xDC, +}; // end of HoodLoader2_0_4_Uno_at90usb162_hex + +// File = HoodLoader2_0_4_Mega_at90usb162.hex +// Loader start: 3000, length: 4096 +// MD5 sum = C7 39 E6 21 3F A0 6F 30 70 E5 56 98 D3 AF E8 61 + +const byte HoodLoader2_0_4_Mega_at90usb162_hex[] PROGMEM = { + 0x39, 0xC0, 0x00, 0x00, 0x83, 0xC0, 0x00, 0x00, 0x81, 0xC0, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x00, + 0x7D, 0xC0, 0x00, 0x00, 0x7B, 0xC0, 0x00, 0x00, 0x79, 0xC0, 0x00, 0x00, 0x77, 0xC0, 0x00, 0x00, + 0x75, 0xC0, 0x00, 0x00, 0x73, 0xC0, 0x00, 0x00, 0x71, 0xC0, 0x00, 0x00, 0x46, 0xC5, 0x00, 0x00, + 0x6D, 0xC0, 0x00, 0x00, 0x6B, 0xC0, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x00, 0x67, 0xC0, 0x00, 0x00, + 0x65, 0xC0, 0x00, 0x00, 0x63, 0xC0, 0x00, 0x00, 0x61, 0xC0, 0x00, 0x00, 0x5F, 0xC0, 0x00, 0x00, + 0x5D, 0xC0, 0x00, 0x00, 0x5B, 0xC0, 0x00, 0x00, 0x59, 0xC0, 0x00, 0x00, 0xAB, 0xC3, 0x00, 0x00, + 0x55, 0xC0, 0x00, 0x00, 0x53, 0xC0, 0x00, 0x00, 0x51, 0xC0, 0x00, 0x00, 0x4F, 0xC0, 0x00, 0x00, + 0x4D, 0xC0, 0x00, 0x00, 0x11, 0x24, 0x1F, 0xBE, 0xCF, 0xEF, 0xD2, 0xE0, 0xDE, 0xBF, 0xCD, 0xBF, + 0x90, 0x91, 0x80, 0x02, 0x10, 0x92, 0x80, 0x02, 0x84, 0xB7, 0x14, 0xBE, 0x28, 0xE1, 0x0F, 0xB6, + 0xF8, 0x94, 0x20, 0x93, 0x60, 0x00, 0x10, 0x92, 0x60, 0x00, 0x0F, 0xBE, 0xE0, 0xE0, 0xF0, 0xE0, + 0x25, 0x91, 0x34, 0x91, 0x2F, 0x3F, 0x3F, 0x4F, 0xE1, 0xF0, 0x81, 0xFF, 0x12, 0xC0, 0x97, 0x37, + 0xC1, 0xF0, 0x87, 0xE7, 0x80, 0x93, 0x80, 0x02, 0x8F, 0xEF, 0x9E, 0xE9, 0x24, 0xE2, 0x81, 0x50, + 0x90, 0x40, 0x20, 0x40, 0xE1, 0xF7, 0x00, 0xC0, 0x00, 0x00, 0x10, 0x92, 0x80, 0x02, 0x1F, 0xD0, + 0x08, 0xC0, 0x80, 0xFF, 0x02, 0xC0, 0x1B, 0xD0, 0x04, 0xC0, 0x83, 0xFF, 0x02, 0xC0, 0x97, 0x37, + 0xD1, 0xF7, 0x11, 0xE0, 0xA0, 0xE0, 0xB1, 0xE0, 0xEE, 0xE8, 0xFE, 0xE3, 0x02, 0xC0, 0x05, 0x90, + 0x0D, 0x92, 0xAC, 0x39, 0xB1, 0x07, 0xD9, 0xF7, 0x12, 0xE0, 0xAC, 0xE9, 0xB1, 0xE0, 0x01, 0xC0, + 0x1D, 0x92, 0xA0, 0x33, 0xB1, 0x07, 0xE1, 0xF7, 0x36, 0xD0, 0xBF, 0xC6, 0x79, 0xCF, 0x8B, 0xB1, + 0x80, 0x63, 0x8B, 0xB9, 0xE0, 0xE0, 0xF0, 0xE0, 0x09, 0x94, 0x84, 0xE0, 0x80, 0x93, 0xE9, 0x00, + 0x80, 0x91, 0xE8, 0x00, 0x85, 0xFD, 0x0D, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFD, 0xF3, 0xCF, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, + 0x02, 0xC0, 0x80, 0x91, 0xF1, 0x00, 0x08, 0x95, 0x93, 0xE0, 0x90, 0x93, 0xE9, 0x00, 0x90, 0x91, + 0xE8, 0x00, 0x95, 0xFF, 0x03, 0xC0, 0x80, 0x93, 0xF1, 0x00, 0x08, 0x95, 0x90, 0x91, 0xE8, 0x00, + 0x9E, 0x77, 0x90, 0x93, 0xE8, 0x00, 0x90, 0x91, 0xE8, 0x00, 0x90, 0xFD, 0xF4, 0xCF, 0x9E, 0xB3, + 0x91, 0x11, 0xF9, 0xCF, 0x08, 0x95, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0x00, 0xD0, 0xCD, 0xB7, + 0xDE, 0xB7, 0x90, 0xE0, 0x80, 0xE8, 0x0F, 0xB6, 0xF8, 0x94, 0x80, 0x93, 0x61, 0x00, 0x90, 0x93, + 0x61, 0x00, 0x0F, 0xBE, 0x81, 0xE0, 0x85, 0xBF, 0x82, 0xE0, 0x85, 0xBF, 0x7F, 0xD4, 0x84, 0xE0, + 0x85, 0xBD, 0x8A, 0xB1, 0x88, 0x6B, 0x8A, 0xB9, 0x8B, 0xB1, 0x84, 0x6B, 0x8B, 0xB9, 0x78, 0x94, + 0x13, 0xE0, 0xBB, 0x24, 0xB3, 0x94, 0xE5, 0xE0, 0x8E, 0x2E, 0x21, 0x2C, 0x31, 0x2C, 0x84, 0xE9, + 0x91, 0xE0, 0x27, 0xE0, 0x28, 0x0F, 0x29, 0x83, 0x84, 0xE0, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, + 0xE8, 0x00, 0x82, 0xFF, 0x8D, 0xC1, 0xA1, 0xDF, 0x98, 0x2F, 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, + 0x13, 0xC0, 0x80, 0x91, 0xC8, 0x00, 0x85, 0xFF, 0xFC, 0xCF, 0x90, 0x93, 0xCE, 0x00, 0x80, 0x91, + 0xF2, 0x00, 0x81, 0x11, 0x05, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x5C, 0x98, 0x10, 0x93, 0xA1, 0x01, 0x78, 0xC1, 0x95, 0x34, 0x19, 0xF4, 0x10, 0x92, 0x00, 0x01, + 0x32, 0xC0, 0x88, 0xE8, 0x89, 0x0F, 0x82, 0x30, 0x10, 0xF0, 0x94, 0x35, 0x11, 0xF4, 0x7D, 0xDF, + 0x2A, 0xC0, 0x90, 0x35, 0x41, 0xF1, 0x9C, 0x34, 0x31, 0xF1, 0x94, 0x37, 0x21, 0xF4, 0x84, 0xE4, + 0x8B, 0xDF, 0x80, 0xE0, 0x03, 0xC0, 0x91, 0x36, 0x19, 0xF4, 0x89, 0xE5, 0x85, 0xDF, 0x5C, 0xC1, + 0x91, 0x34, 0xD9, 0xF4, 0x6A, 0xDF, 0x08, 0x2F, 0x68, 0xDF, 0x90, 0xE0, 0x88, 0x0F, 0x99, 0x1F, + 0x20, 0x2F, 0x30, 0xE0, 0x32, 0x2F, 0x22, 0x27, 0x33, 0x0F, 0x82, 0x2B, 0x93, 0x2B, 0xAA, 0x27, + 0x97, 0xFD, 0xA0, 0x95, 0xBA, 0x2F, 0x80, 0x93, 0x9C, 0x01, 0x90, 0x93, 0x9D, 0x01, 0xA0, 0x93, + 0x9E, 0x01, 0xB0, 0x93, 0x9F, 0x01, 0x8D, 0xE0, 0xE1, 0xCF, 0x90, 0x37, 0x11, 0xF4, 0x83, 0xE5, + 0xDD, 0xCF, 0x93, 0x35, 0x61, 0xF4, 0x54, 0xE9, 0xE5, 0x2E, 0x51, 0xE0, 0xF5, 0x2E, 0xF7, 0x01, + 0x81, 0x91, 0x7F, 0x01, 0x59, 0xDF, 0x29, 0x81, 0x2E, 0x11, 0xF9, 0xCF, 0x2D, 0xC1, 0x96, 0x35, + 0x21, 0xF4, 0x81, 0xE3, 0x51, 0xDF, 0x80, 0xE3, 0xC9, 0xCF, 0x93, 0x37, 0x31, 0xF4, 0x82, 0xE8, + 0x4B, 0xDF, 0x84, 0xE9, 0x49, 0xDF, 0x8E, 0xE1, 0xC1, 0xCF, 0x95, 0x36, 0xA9, 0xF4, 0xE0, 0xE0, + 0xF0, 0xE0, 0x10, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0x80, 0x92, + 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xE0, 0x58, 0xFF, 0x4F, 0xE1, 0x15, + 0x80, 0xE3, 0xF8, 0x07, 0x71, 0xF7, 0xC7, 0xCF, 0x9C, 0x36, 0x51, 0xF4, 0x16, 0xDF, 0x80, 0x95, + 0x99, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x08, 0x2E, 0x90, 0x93, 0x57, 0x00, 0xE8, 0x95, 0xBB, 0xCF, + 0x92, 0x37, 0x21, 0xF4, 0x89, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x10, 0xC0, 0x96, 0x34, 0x19, 0xF4, + 0x89, 0xE0, 0xF1, 0x01, 0x0B, 0xC0, 0x9E, 0x34, 0x21, 0xF4, 0x89, 0xE0, 0xE3, 0xE0, 0xF0, 0xE0, + 0x05, 0xC0, 0x91, 0x35, 0x39, 0xF4, 0x89, 0xE0, 0xE2, 0xE0, 0xF0, 0xE0, 0x80, 0x93, 0x57, 0x00, + 0x84, 0x91, 0x84, 0xCF, 0x92, 0x36, 0x31, 0xF4, 0x89, 0xE5, 0x06, 0xDF, 0x80, 0xE0, 0x04, 0xDF, + 0x80, 0xE8, 0x7C, 0xCF, 0x92, 0x34, 0x19, 0xF0, 0x97, 0x36, 0x09, 0xF0, 0xCD, 0xC0, 0x9A, 0x83, + 0xE4, 0xDE, 0xE8, 0x2E, 0xF1, 0x2C, 0xFE, 0x2C, 0xEE, 0x24, 0xDF, 0xDE, 0xE8, 0x2A, 0xDD, 0xDE, + 0x08, 0x2F, 0x8B, 0xEB, 0x80, 0x0F, 0x9A, 0x81, 0x82, 0x30, 0x10, 0xF0, 0x8F, 0xE3, 0x66, 0xCF, + 0x97, 0x36, 0x09, 0xF0, 0x44, 0xC0, 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x37, 0x01, + 0xA1, 0x2C, 0x61, 0x14, 0x71, 0x04, 0x09, 0xF4, 0xB7, 0xC0, 0xC0, 0x90, 0x9C, 0x01, 0xD0, 0x90, + 0x9D, 0x01, 0xE0, 0x90, 0x9E, 0x01, 0xF0, 0x90, 0x9F, 0x01, 0x06, 0x34, 0xB9, 0xF4, 0xEA, 0x2D, + 0xF0, 0xE0, 0xEC, 0x29, 0xFD, 0x29, 0x84, 0x91, 0xCF, 0xDE, 0xAA, 0x20, 0x69, 0xF0, 0xF2, 0xE0, + 0xCF, 0x0E, 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9C, 0x01, 0xD0, 0x92, 0x9D, 0x01, + 0xE0, 0x92, 0x9E, 0x01, 0xF0, 0x92, 0x9F, 0x01, 0xAB, 0x24, 0x15, 0xC0, 0xD7, 0x01, 0xC6, 0x01, + 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0x42, 0xD5, 0xB6, 0xDE, 0x22, 0xE0, 0xC2, 0x0E, + 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9C, 0x01, 0xD0, 0x92, 0x9D, 0x01, 0xE0, 0x92, + 0x9E, 0x01, 0xF0, 0x92, 0x9F, 0x01, 0x81, 0xE0, 0x68, 0x1A, 0x71, 0x08, 0xC2, 0xCF, 0x40, 0x90, + 0x9C, 0x01, 0x50, 0x90, 0x9D, 0x01, 0x60, 0x90, 0x9E, 0x01, 0x70, 0x90, 0x9F, 0x01, 0x06, 0x34, + 0x39, 0xF4, 0xF2, 0x01, 0x10, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0xFC, 0x82, 0xEB, 0x82, 0x91, 0x2C, 0xA1, 0x2C, 0xEB, 0x81, 0xFC, 0x81, 0xEF, 0x2B, 0x09, 0xF4, + 0x50, 0xC0, 0x06, 0x34, 0x31, 0xF5, 0xAA, 0x20, 0x01, 0xF1, 0xC0, 0x90, 0x9C, 0x01, 0xD0, 0x90, + 0x9D, 0x01, 0xE0, 0x90, 0x9E, 0x01, 0xF0, 0x90, 0x9F, 0x01, 0x67, 0xDE, 0x29, 0x2D, 0x30, 0xE0, + 0x38, 0x2B, 0xF6, 0x01, 0x09, 0x01, 0xB0, 0x92, 0x57, 0x00, 0xE8, 0x95, 0x11, 0x24, 0xF2, 0xE0, + 0xCF, 0x0E, 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9C, 0x01, 0xD0, 0x92, 0x9D, 0x01, + 0xE0, 0x92, 0x9E, 0x01, 0xF0, 0x92, 0x9F, 0x01, 0x02, 0xC0, 0x4F, 0xDE, 0x98, 0x2E, 0xAB, 0x24, + 0x22, 0xC0, 0x4B, 0xDE, 0x68, 0x2F, 0x80, 0x91, 0x9C, 0x01, 0x90, 0x91, 0x9D, 0x01, 0xA0, 0x91, + 0x9E, 0x01, 0xB0, 0x91, 0x9F, 0x01, 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0xE7, 0xD4, + 0x80, 0x91, 0x9C, 0x01, 0x90, 0x91, 0x9D, 0x01, 0xA0, 0x91, 0x9E, 0x01, 0xB0, 0x91, 0x9F, 0x01, + 0x02, 0x96, 0xA1, 0x1D, 0xB1, 0x1D, 0x80, 0x93, 0x9C, 0x01, 0x90, 0x93, 0x9D, 0x01, 0xA0, 0x93, + 0x9E, 0x01, 0xB0, 0x93, 0x9F, 0x01, 0x8B, 0x81, 0x9C, 0x81, 0x01, 0x97, 0x9C, 0x83, 0x8B, 0x83, + 0xAB, 0xCF, 0x06, 0x34, 0x09, 0xF0, 0xCF, 0xCE, 0xF2, 0x01, 0x80, 0x92, 0x57, 0x00, 0xE8, 0x95, + 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xC7, 0xCE, 0x9B, 0x31, 0x09, 0xF0, 0x3F, 0xCF, 0x04, 0xC0, + 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, 0x55, 0xC0, 0x8F, 0xB7, 0xF8, 0x94, 0x90, 0x91, 0xA5, 0x01, + 0x8F, 0xBF, 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, 0x06, 0xC0, 0x99, 0x23, 0x09, 0xF4, 0x49, 0xC0, + 0x5D, 0x98, 0x10, 0x93, 0xA2, 0x01, 0xF9, 0x2E, 0xFF, 0x20, 0xB1, 0xF0, 0x00, 0x91, 0xA4, 0x01, + 0xE0, 0x2F, 0xF0, 0xE0, 0xEA, 0x55, 0xFE, 0x4F, 0x80, 0x81, 0x0E, 0xDE, 0x0F, 0x5F, 0x0F, 0x77, + 0x00, 0x93, 0xA4, 0x01, 0x9F, 0xB7, 0xF8, 0x94, 0x80, 0x91, 0xA5, 0x01, 0x81, 0x50, 0x80, 0x93, + 0xA5, 0x01, 0x9F, 0xBF, 0xFA, 0x94, 0xE8, 0xCF, 0x10, 0x93, 0xE9, 0x00, 0x90, 0x91, 0xE8, 0x00, + 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x95, 0xFD, 0x1D, 0xC0, 0x80, 0x91, + 0xE8, 0x00, 0x80, 0xFD, 0x10, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, 0x80, 0x91, 0xA0, 0x01, + 0x88, 0x23, 0xB9, 0xF0, 0xF4, 0xE0, 0xF0, 0x93, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, + 0x80, 0x93, 0xE8, 0x00, 0x0E, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x03, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x51, 0xF3, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xF9, 0xCF, + 0xE5, 0xCF, 0x22, 0xD4, 0xA8, 0x9B, 0x15, 0xC0, 0xA8, 0x9A, 0x80, 0x91, 0xA2, 0x01, 0x88, 0x23, + 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, 0xA2, 0x01, 0x81, 0x11, 0x01, 0xC0, 0x5D, 0x9A, 0x80, 0x91, + 0xA1, 0x01, 0x88, 0x23, 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, 0xA1, 0x01, 0x81, 0x11, 0x01, 0xC0, + 0x5C, 0x9A, 0x80, 0x91, 0x00, 0x01, 0x81, 0x11, 0xF7, 0xCD, 0x8F, 0xE9, 0x9F, 0xE0, 0x01, 0x97, + 0xF1, 0xF7, 0x00, 0xC0, 0x00, 0x00, 0x80, 0x91, 0xE0, 0x00, 0x81, 0x60, 0x80, 0x93, 0xE0, 0x00, + 0x9C, 0xE0, 0x88, 0xE1, 0x0F, 0xB6, 0xF8, 0x94, 0xA8, 0x95, 0x80, 0x93, 0x60, 0x00, 0x0F, 0xBE, + 0x90, 0x93, 0x60, 0x00, 0xFF, 0xCF, 0x42, 0xE0, 0x61, 0xEC, 0x82, 0xE0, 0xE2, 0xD1, 0x42, 0xE3, + 0x61, 0xE8, 0x83, 0xE0, 0xDE, 0xD1, 0x42, 0xE3, 0x60, 0xE8, 0x84, 0xE0, 0xDA, 0xC1, 0xCF, 0x93, + 0x80, 0x91, 0x28, 0x02, 0x98, 0x2F, 0x9F, 0x77, 0x91, 0x32, 0x09, 0xF0, 0xC1, 0xC0, 0x90, 0x91, + 0x29, 0x02, 0x91, 0x32, 0x99, 0xF4, 0x81, 0x3A, 0x09, 0xF0, 0xBA, 0xC0, 0x80, 0x91, 0xE8, 0x00, + 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x67, 0xE0, 0x70, 0xE0, 0x81, 0xE0, 0x91, 0xE0, 0x65, 0xD1, + 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, 0xAA, 0xC0, 0x90, 0x32, 0x09, 0xF0, + 0x92, 0xC0, 0x81, 0x32, 0x09, 0xF0, 0xA4, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0xE1, 0xE0, 0xF1, 0xE0, 0x87, 0xE0, 0x88, 0x23, 0x09, 0xF1, 0x9E, 0xB3, 0x99, 0x23, + 0x11, 0xF1, 0x95, 0x30, 0x01, 0xF1, 0x90, 0x91, 0xE8, 0x00, 0x93, 0xFD, 0x1C, 0xC0, 0x90, 0x91, + 0xE8, 0x00, 0x92, 0xFF, 0xF1, 0xCF, 0x90, 0x91, 0xF2, 0x00, 0x99, 0x23, 0x29, 0xF0, 0x90, 0x91, + 0xF1, 0x00, 0x91, 0x93, 0x81, 0x50, 0xB9, 0xF7, 0x90, 0x91, 0xE8, 0x00, 0x9B, 0x77, 0x90, 0x93, + 0xE8, 0x00, 0xE2, 0xCF, 0x8E, 0xB3, 0x88, 0x23, 0x31, 0xF0, 0x85, 0x30, 0x21, 0xF0, 0x80, 0x91, + 0xE8, 0x00, 0x80, 0xFF, 0xF7, 0xCF, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x20, 0x91, 0x01, 0x01, 0x30, 0x91, 0x02, 0x01, 0x40, 0x91, 0x03, 0x01, 0x50, 0x91, 0x04, 0x01, + 0x21, 0x15, 0x81, 0xEE, 0x38, 0x07, 0x41, 0x05, 0x51, 0x05, 0x21, 0xF4, 0x81, 0xE0, 0x80, 0x93, + 0xA0, 0x01, 0x02, 0xC0, 0x10, 0x92, 0xA0, 0x01, 0x10, 0x92, 0xA5, 0x01, 0x10, 0x92, 0xA4, 0x01, + 0x10, 0x92, 0xA3, 0x01, 0x80, 0x91, 0x06, 0x01, 0x81, 0x30, 0x21, 0xF0, 0x82, 0x30, 0x21, 0xF4, + 0xC0, 0xE2, 0x03, 0xC0, 0xC0, 0xE3, 0x01, 0xC0, 0xC0, 0xE0, 0x80, 0x91, 0x05, 0x01, 0x82, 0x30, + 0x09, 0xF4, 0xC8, 0x60, 0x80, 0x91, 0x07, 0x01, 0x87, 0x30, 0x31, 0xF0, 0x88, 0x30, 0x31, 0xF0, + 0x86, 0x30, 0x29, 0xF4, 0xC2, 0x60, 0x03, 0xC0, 0xC4, 0x60, 0x01, 0xC0, 0xC6, 0x60, 0x5B, 0x9A, + 0x10, 0x92, 0xC9, 0x00, 0x10, 0x92, 0xC8, 0x00, 0x10, 0x92, 0xCA, 0x00, 0xDA, 0x01, 0xC9, 0x01, + 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0xBC, 0x01, 0xCD, 0x01, 0x60, 0x58, 0x7B, 0x47, + 0x81, 0x4E, 0x9F, 0x4F, 0x5A, 0xD3, 0x21, 0x50, 0x31, 0x09, 0x30, 0x93, 0xCD, 0x00, 0x20, 0x93, + 0xCC, 0x00, 0xC0, 0x93, 0xCA, 0x00, 0x82, 0xE0, 0x80, 0x93, 0xC8, 0x00, 0x88, 0xE9, 0x80, 0x93, + 0xC9, 0x00, 0x5B, 0x98, 0x15, 0xC0, 0x92, 0x32, 0x99, 0xF4, 0x81, 0x32, 0x89, 0xF4, 0x80, 0x91, + 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x30, 0xD1, 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, + 0x06, 0xC0, 0x80, 0x91, 0x2A, 0x02, 0x80, 0xFF, 0x02, 0xC0, 0x5F, 0x98, 0x01, 0xC0, 0x5F, 0x9A, + 0xCF, 0x91, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, 0x0F, 0x92, 0x11, 0x24, 0x8F, 0x93, + 0x9F, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x90, 0x91, 0xCE, 0x00, 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, + 0x17, 0xC0, 0x8E, 0xB3, 0x84, 0x30, 0xA1, 0xF4, 0x80, 0x91, 0xA5, 0x01, 0x87, 0xFD, 0x10, 0xC0, + 0x80, 0x91, 0xA3, 0x01, 0xE8, 0x2F, 0xF0, 0xE0, 0xEA, 0x55, 0xFE, 0x4F, 0x90, 0x83, 0x8F, 0x5F, + 0x8F, 0x77, 0x80, 0x93, 0xA3, 0x01, 0x80, 0x91, 0xA5, 0x01, 0x8F, 0x5F, 0x80, 0x93, 0xA5, 0x01, + 0xFF, 0x91, 0xEF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, + 0x18, 0x95, 0x29, 0x2F, 0x30, 0xE0, 0x22, 0x30, 0x31, 0x05, 0x59, 0xF0, 0x23, 0x30, 0x31, 0x05, + 0x69, 0xF0, 0x21, 0x30, 0x31, 0x05, 0xF9, 0xF4, 0x82, 0xE1, 0x90, 0xE0, 0x22, 0xE8, 0x31, 0xE0, + 0x1E, 0xC0, 0x8E, 0xE3, 0x90, 0xE0, 0x24, 0xE4, 0x31, 0xE0, 0x19, 0xC0, 0x88, 0x23, 0x49, 0xF0, + 0x81, 0x30, 0x61, 0xF0, 0x82, 0x30, 0x79, 0xF4, 0x82, 0xE2, 0x90, 0xE0, 0x28, 0xE0, 0x31, 0xE0, + 0x0E, 0xC0, 0x84, 0xE0, 0x90, 0xE0, 0x20, 0xE4, 0x31, 0xE0, 0x09, 0xC0, 0x82, 0xE1, 0x90, 0xE0, + 0x2C, 0xE2, 0x31, 0xE0, 0x04, 0xC0, 0x80, 0xE0, 0x90, 0xE0, 0x20, 0xE0, 0x30, 0xE0, 0xFA, 0x01, + 0x31, 0x83, 0x20, 0x83, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, + 0x23, 0xE0, 0xFB, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0xF9, 0x99, 0xFE, 0xCF, 0x25, 0xE0, 0xFB, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, 0x21, 0xE0, 0xFB, 0x01, 0x0A, 0x01, 0x20, 0x93, + 0x57, 0x00, 0xE8, 0x95, 0x11, 0x24, 0x08, 0x95, 0x21, 0xE2, 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, + 0x84, 0x91, 0x08, 0x95, 0x29, 0xE0, 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, + 0xE1, 0xE0, 0xF0, 0xE0, 0x89, 0xE0, 0x80, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, 0x80, 0x95, 0x99, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, + 0x08, 0x2E, 0x90, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x20, 0x91, 0x2E, 0x02, 0x30, 0x91, + 0x2F, 0x02, 0x26, 0x17, 0x37, 0x07, 0x48, 0xF0, 0x61, 0x15, 0x71, 0x05, 0x39, 0xF4, 0x20, 0x91, + 0xE8, 0x00, 0x2E, 0x77, 0x20, 0x93, 0xE8, 0x00, 0x01, 0xC0, 0xB9, 0x01, 0x40, 0xE0, 0x61, 0x15, + 0x71, 0x05, 0x79, 0xF1, 0x2E, 0xB3, 0x22, 0x23, 0xF1, 0xF1, 0x25, 0x30, 0xF1, 0xF1, 0x20, 0x91, + 0xE8, 0x00, 0x23, 0xFD, 0x3C, 0xC0, 0x20, 0x91, 0xE8, 0x00, 0x22, 0xFD, 0x2E, 0xC0, 0x20, 0x91, + 0xE8, 0x00, 0x20, 0xFF, 0xEC, 0xCF, 0x20, 0x91, 0xF2, 0x00, 0x30, 0xE0, 0xFC, 0x01, 0xCF, 0x01, + 0x61, 0x15, 0x71, 0x05, 0x59, 0xF0, 0x28, 0x30, 0x31, 0x05, 0x40, 0xF4, 0x81, 0x91, 0x80, 0x93, + 0xF1, 0x00, 0x61, 0x50, 0x71, 0x09, 0x2F, 0x5F, 0x3F, 0x4F, 0xF1, 0xCF, 0x41, 0xE0, 0x28, 0x30, + 0x31, 0x05, 0x09, 0xF0, 0x40, 0xE0, 0x20, 0x91, 0xE8, 0x00, 0x2E, 0x77, 0x20, 0x93, 0xE8, 0x00, + 0xCE, 0xCF, 0x41, 0x11, 0xCF, 0xCF, 0x09, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x61, 0xF0, 0x85, 0x30, + 0x61, 0xF0, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFD, 0x0A, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFF, + 0xF3, 0xCF, 0x80, 0xE0, 0x08, 0x95, 0x82, 0xE0, 0x08, 0x95, 0x83, 0xE0, 0x08, 0x95, 0x81, 0xE0, + 0x08, 0x95, 0x8F, 0x70, 0x80, 0x93, 0xE9, 0x00, 0xEB, 0xEE, 0xF0, 0xE0, 0x80, 0x81, 0x81, 0x60, + 0x80, 0x83, 0xED, 0xEE, 0xF0, 0xE0, 0x10, 0x82, 0x60, 0x93, 0xEC, 0x00, 0x40, 0x83, 0x80, 0x91, + 0xEE, 0x00, 0x88, 0x1F, 0x88, 0x27, 0x88, 0x1F, 0x08, 0x95, 0x80, 0x91, 0x28, 0x02, 0x87, 0xFF, + 0x0F, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFD, 0x04, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, + 0x10, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x0A, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x49, 0xF0, + 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xF9, 0xCF, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x08, 0x95, 0x3C, 0xD0, 0x3E, 0xD0, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x77, 0x80, 0x93, + 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, 0x80, 0x68, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, + 0x8F, 0x7D, 0x80, 0x93, 0xD8, 0x00, 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, 0x89, 0xBD, 0x09, 0xB4, + 0x00, 0xFE, 0xFD, 0xCF, 0x1E, 0xBA, 0x10, 0x92, 0x26, 0x02, 0x42, 0xE0, 0x60, 0xE0, 0x80, 0xE0, + 0xB0, 0xDF, 0x80, 0x91, 0xE1, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, + 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x88, 0x60, 0x80, 0x93, 0xE2, 0x00, + 0x80, 0x91, 0xE0, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE0, 0x00, 0x08, 0x95, 0xE3, 0xE6, 0xF0, 0xE0, + 0x80, 0x81, 0x8E, 0x7F, 0x80, 0x83, 0x81, 0xE0, 0x80, 0x93, 0x27, 0x02, 0xC3, 0xCF, 0x10, 0x92, + 0xE2, 0x00, 0x08, 0x95, 0x10, 0x92, 0xE1, 0x00, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, + 0x0F, 0x92, 0x11, 0x24, 0x2F, 0x93, 0x3F, 0x93, 0x4F, 0x93, 0x5F, 0x93, 0x6F, 0x93, 0x7F, 0x93, + 0x8F, 0x93, 0x9F, 0x93, 0xAF, 0x93, 0xBF, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x80, 0x91, 0xE1, 0x00, + 0x80, 0xFF, 0x16, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x80, 0xFF, 0x12, 0xC0, 0x80, 0x91, 0xE2, 0x00, + 0x8E, 0x7F, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, 0x80, 0x93, 0xE2, 0x00, + 0x80, 0x91, 0xD8, 0x00, 0x80, 0x62, 0x80, 0x93, 0xD8, 0x00, 0x19, 0xBC, 0x1E, 0xBA, 0x6B, 0xD1, + 0x80, 0x91, 0xE1, 0x00, 0x84, 0xFF, 0x2E, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x84, 0xFF, 0x2A, 0xC0, + 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, 0x89, 0xBD, 0x09, 0xB4, 0x00, 0xFE, 0xFD, 0xCF, 0x80, 0x91, + 0xD8, 0x00, 0x8F, 0x7D, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xE1, 0x00, 0x8F, 0x7E, 0x80, 0x93, + 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x8F, 0x7E, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, + 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0x26, 0x02, 0x88, 0x23, 0x11, 0xF0, 0x84, 0xE0, + 0x07, 0xC0, 0x80, 0x91, 0xE3, 0x00, 0x87, 0xFD, 0x02, 0xC0, 0x81, 0xE0, 0x01, 0xC0, 0x83, 0xE0, + 0x8E, 0xBB, 0x39, 0xD1, 0x80, 0x91, 0xE1, 0x00, 0x83, 0xFF, 0x21, 0xC0, 0x80, 0x91, 0xE2, 0x00, + 0x83, 0xFF, 0x1D, 0xC0, 0x80, 0x91, 0xE1, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x82, 0xE0, + 0x8E, 0xBB, 0x10, 0x92, 0x26, 0x02, 0x80, 0x91, 0xE1, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, + 0x80, 0x91, 0xE2, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, + 0x80, 0x93, 0xE2, 0x00, 0x42, 0xE0, 0x60, 0xE0, 0x80, 0xE0, 0x0B, 0xDF, 0x14, 0xD1, 0xFF, 0x91, + 0xEF, 0x91, 0xBF, 0x91, 0xAF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x7F, 0x91, 0x6F, 0x91, 0x5F, 0x91, + 0x4F, 0x91, 0x3F, 0x91, 0x2F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, 0x18, 0x95, + 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0xCD, 0xB7, 0xDE, 0xB7, 0xE8, 0xE2, 0xF2, 0xE0, + 0x88, 0xE0, 0x8E, 0x0F, 0x90, 0x91, 0xF1, 0x00, 0x91, 0x93, 0x8E, 0x13, 0xFB, 0xCF, 0x0F, 0xDD, + 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFF, 0xDB, 0xC0, 0x80, 0x91, 0x28, 0x02, 0x90, 0x91, 0x29, 0x02, + 0x95, 0x30, 0x09, 0xF4, 0x66, 0xC0, 0x30, 0xF4, 0x91, 0x30, 0x59, 0xF1, 0x68, 0xF0, 0x93, 0x30, + 0x41, 0xF1, 0xCD, 0xC0, 0x98, 0x30, 0x09, 0xF4, 0x9D, 0xC0, 0x99, 0x30, 0x09, 0xF4, 0xAC, 0xC0, + 0x96, 0x30, 0x09, 0xF0, 0xC4, 0xC0, 0x76, 0xC0, 0x80, 0x38, 0x81, 0xF0, 0x82, 0x38, 0x09, 0xF0, + 0xBE, 0xC0, 0x80, 0x91, 0x2C, 0x02, 0x8F, 0x70, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, 0xEB, 0x00, + 0x85, 0xFB, 0x88, 0x27, 0x80, 0xF9, 0x10, 0x92, 0xE9, 0x00, 0x01, 0xC0, 0x80, 0xE0, 0x90, 0x91, + 0xE8, 0x00, 0x97, 0x7F, 0x90, 0x93, 0xE8, 0x00, 0x80, 0x93, 0xF1, 0x00, 0x10, 0x92, 0xF1, 0x00, + 0x84, 0xC0, 0x28, 0x2F, 0x2D, 0x7F, 0x09, 0xF0, 0xA2, 0xC0, 0x82, 0x30, 0x09, 0xF0, 0x9F, 0xC0, + 0x80, 0x91, 0x2A, 0x02, 0x81, 0x11, 0x27, 0xC0, 0x80, 0x91, 0x2C, 0x02, 0x8F, 0x70, 0x09, 0xF4, + 0x96, 0xC0, 0x80, 0x93, 0xE9, 0x00, 0x20, 0x91, 0xEB, 0x00, 0x20, 0xFF, 0x1C, 0xC0, 0x93, 0x30, + 0x21, 0xF4, 0x80, 0x91, 0xEB, 0x00, 0x80, 0x62, 0x14, 0xC0, 0x90, 0x91, 0xEB, 0x00, 0x90, 0x61, + 0x90, 0x93, 0xEB, 0x00, 0x21, 0xE0, 0x30, 0xE0, 0xA9, 0x01, 0x02, 0xC0, 0x44, 0x0F, 0x55, 0x1F, + 0x8A, 0x95, 0xE2, 0xF7, 0x40, 0x93, 0xEA, 0x00, 0x10, 0x92, 0xEA, 0x00, 0x80, 0x91, 0xEB, 0x00, + 0x88, 0x60, 0x80, 0x93, 0xEB, 0x00, 0x10, 0x92, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, + 0x4F, 0xC0, 0x81, 0x11, 0x6C, 0xC0, 0x10, 0x91, 0x2A, 0x02, 0x1F, 0x77, 0x80, 0x91, 0xE3, 0x00, + 0x80, 0x78, 0x81, 0x2B, 0x80, 0x93, 0xE3, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0x7B, 0xDE, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xFC, 0xCF, 0x80, 0x91, 0xE3, 0x00, + 0x80, 0x68, 0x80, 0x93, 0xE3, 0x00, 0x11, 0x11, 0x02, 0xC0, 0x82, 0xE0, 0x01, 0xC0, 0x83, 0xE0, + 0x8E, 0xBB, 0x4D, 0xC0, 0x80, 0x58, 0x82, 0x30, 0x08, 0xF0, 0x49, 0xC0, 0xAE, 0x01, 0x4F, 0x5F, + 0x5F, 0x4F, 0x60, 0x91, 0x2C, 0x02, 0x80, 0x91, 0x2A, 0x02, 0x90, 0x91, 0x2B, 0x02, 0x69, 0xDD, + 0xBC, 0x01, 0x00, 0x97, 0x09, 0xF4, 0x3B, 0xC0, 0x90, 0x91, 0xE8, 0x00, 0x97, 0x7F, 0x90, 0x93, + 0xE8, 0x00, 0x89, 0x81, 0x9A, 0x81, 0xE1, 0xDD, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x2D, 0xC0, 0x80, 0x38, 0x59, 0xF5, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0x80, 0x91, 0x26, 0x02, 0x80, 0x93, 0xF1, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, + 0x80, 0x93, 0xE8, 0x00, 0x3A, 0xDE, 0x1B, 0xC0, 0x81, 0x11, 0x19, 0xC0, 0x90, 0x91, 0x2A, 0x02, + 0x92, 0x30, 0xA8, 0xF4, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x90, 0x93, + 0x26, 0x02, 0x2B, 0xDE, 0x80, 0x91, 0x26, 0x02, 0x81, 0x11, 0x06, 0xC0, 0x80, 0x91, 0xE3, 0x00, + 0x87, 0xFD, 0x02, 0xC0, 0x81, 0xE0, 0x01, 0xC0, 0x84, 0xE0, 0x8E, 0xBB, 0x24, 0xDC, 0x80, 0x91, + 0xE8, 0x00, 0x83, 0xFF, 0x0A, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, + 0x80, 0x91, 0xEB, 0x00, 0x80, 0x62, 0x80, 0x93, 0xEB, 0x00, 0x0F, 0x90, 0x0F, 0x90, 0xDF, 0x91, + 0xCF, 0x91, 0x1F, 0x91, 0x08, 0x95, 0x08, 0x95, 0xCF, 0x93, 0x8E, 0xB3, 0x88, 0x23, 0x99, 0xF0, + 0xC0, 0x91, 0xE9, 0x00, 0xCF, 0x70, 0x90, 0x91, 0xEC, 0x00, 0x89, 0x2F, 0x81, 0x70, 0x90, 0xFD, + 0x80, 0xE8, 0xC8, 0x2B, 0x10, 0x92, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFD, 0xE8, 0xDE, + 0xCF, 0x70, 0xC0, 0x93, 0xE9, 0x00, 0xCF, 0x91, 0x08, 0x95, 0xA1, 0xE2, 0x1A, 0x2E, 0xAA, 0x1B, + 0xBB, 0x1B, 0xFD, 0x01, 0x0D, 0xC0, 0xAA, 0x1F, 0xBB, 0x1F, 0xEE, 0x1F, 0xFF, 0x1F, 0xA2, 0x17, + 0xB3, 0x07, 0xE4, 0x07, 0xF5, 0x07, 0x20, 0xF0, 0xA2, 0x1B, 0xB3, 0x0B, 0xE4, 0x0B, 0xF5, 0x0B, + 0x66, 0x1F, 0x77, 0x1F, 0x88, 0x1F, 0x99, 0x1F, 0x1A, 0x94, 0x69, 0xF7, 0x60, 0x95, 0x70, 0x95, + 0x80, 0x95, 0x90, 0x95, 0x9B, 0x01, 0xAC, 0x01, 0xBD, 0x01, 0xCF, 0x01, 0x08, 0x95, 0xF9, 0x99, + 0xFE, 0xCF, 0x92, 0xBD, 0x81, 0xBD, 0xF8, 0x9A, 0x99, 0x27, 0x80, 0xB5, 0x08, 0x95, 0x26, 0x2F, + 0xF9, 0x99, 0xFE, 0xCF, 0x1F, 0xBA, 0x92, 0xBD, 0x81, 0xBD, 0x20, 0xBD, 0x0F, 0xB6, 0xF8, 0x94, + 0xFA, 0x9A, 0xF9, 0x9A, 0x0F, 0xBE, 0x01, 0x96, 0x08, 0x95, 0xF8, 0x94, 0xFF, 0xCF, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x22, 0x03, 0x48, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, + 0x4C, 0x00, 0x6F, 0x00, 0x61, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x32, 0x00, 0x20, 0x00, + 0x4D, 0x00, 0x65, 0x00, 0x67, 0x00, 0x61, 0x00, 0x00, 0x00, 0x12, 0x03, 0x4E, 0x00, 0x69, 0x00, + 0x63, 0x00, 0x6F, 0x00, 0x48, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x00, 0x00, 0x04, 0x03, + 0x09, 0x04, 0x09, 0x02, 0x3E, 0x00, 0x02, 0x01, 0x00, 0x80, 0x32, 0x09, 0x04, 0x00, 0x00, 0x01, + 0x02, 0x02, 0x01, 0x00, 0x05, 0x24, 0x00, 0x10, 0x01, 0x04, 0x24, 0x02, 0x02, 0x05, 0x24, 0x06, + 0x00, 0x01, 0x07, 0x05, 0x82, 0x03, 0x08, 0x00, 0xFF, 0x09, 0x04, 0x01, 0x00, 0x02, 0x0A, 0x00, + 0x00, 0x00, 0x07, 0x05, 0x04, 0x02, 0x40, 0x00, 0x05, 0x07, 0x05, 0x83, 0x02, 0x40, 0x00, 0x05, + 0x12, 0x01, 0x10, 0x01, 0x02, 0x00, 0x00, 0x08, 0x41, 0x23, 0x42, 0x00, 0x04, 0x02, 0x01, 0x02, + 0x00, 0x01, 0x48, 0x4C, 0x32, 0x2E, 0x30, 0x2E, 0x34, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x6A, 0xCC, 0x7B, 0xCC, 0x8C, 0xCC, 0x98, 0xCC, 0x9D, 0xCC, 0xA2, 0xCC, 0xA8, 0xCC, 0x08, 0x95, + 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, + 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0x00, 0x30, 0x00, 0x00, 0x00, 0xDF, 0xFB, 0xDC, +}; // end of HoodLoader2_0_4_Mega_at90usb162_hex \ No newline at end of file diff --git a/tools/Atmega_Board_Programmer/bootloader_atmega16u2.h b/tools/HoodLoader2_Installation_Sketch/bootloader_atmega16u2.h similarity index 73% rename from tools/Atmega_Board_Programmer/bootloader_atmega16u2.h rename to tools/HoodLoader2_Installation_Sketch/bootloader_atmega16u2.h index 85f4686..717fd9b 100644 --- a/tools/Atmega_Board_Programmer/bootloader_atmega16u2.h +++ b/tools/HoodLoader2_Installation_Sketch/bootloader_atmega16u2.h @@ -1,28 +1,243 @@ /* Copyright(c) 2014-2015 NicoHood See the readme for credit to other people. - This file is part of Hoodloader2. - Hoodloader2 is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Hoodloader2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License -along with Hoodloader2. If not, see . +along with Hoodloader2. If not, see . */ +// File = Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex +// Loader start: 3000, length: 4096 +// MD5 sum = D8 8C 70 6D FE 1F DC 38 82 1E CE AE 23 B2 E6 E7 + +const byte Arduino_COMBINED_dfu_usbserial_atmega16u2_Uno_Rev3_hex [] PROGMEM = { +0x4B, 0xC0, 0x00, 0x00, 0x64, 0xC0, 0x00, 0x00, 0x62, 0xC0, 0x00, 0x00, 0x60, 0xC0, 0x00, 0x00, +0x5E, 0xC0, 0x00, 0x00, 0x5C, 0xC0, 0x00, 0x00, 0x5A, 0xC0, 0x00, 0x00, 0x58, 0xC0, 0x00, 0x00, +0x56, 0xC0, 0x00, 0x00, 0x54, 0xC0, 0x00, 0x00, 0x52, 0xC0, 0x00, 0x00, 0xEE, 0xC4, 0x00, 0x00, +0x4E, 0xC0, 0x00, 0x00, 0x4C, 0xC0, 0x00, 0x00, 0x4A, 0xC0, 0x00, 0x00, 0x48, 0xC0, 0x00, 0x00, +0x46, 0xC0, 0x00, 0x00, 0x44, 0xC0, 0x00, 0x00, 0x42, 0xC0, 0x00, 0x00, 0x40, 0xC0, 0x00, 0x00, +0x3E, 0xC0, 0x00, 0x00, 0x3C, 0xC0, 0x00, 0x00, 0x3A, 0xC0, 0x00, 0x00, 0x38, 0xC0, 0x00, 0x00, +0x36, 0xC0, 0x00, 0x00, 0x34, 0xC0, 0x00, 0x00, 0x32, 0xC0, 0x00, 0x00, 0x30, 0xC0, 0x00, 0x00, +0x2E, 0xC0, 0x00, 0x00, 0x2C, 0xC0, 0x00, 0x00, 0x2A, 0xC0, 0x00, 0x00, 0x28, 0xC0, 0x00, 0x00, +0x26, 0xC0, 0x00, 0x00, 0x24, 0xC0, 0x00, 0x00, 0x22, 0xC0, 0x00, 0x00, 0x20, 0xC0, 0x00, 0x00, +0x1E, 0xC0, 0x00, 0x00, 0x1C, 0xC0, 0x00, 0x00, 0x11, 0x24, 0x1F, 0xBE, 0xCF, 0xEF, 0xD2, 0xE0, +0xDE, 0xBF, 0xCD, 0xBF, 0x11, 0xE0, 0xA0, 0xE0, 0xB1, 0xE0, 0xEA, 0xEF, 0xFC, 0xE3, 0x02, 0xC0, +0x05, 0x90, 0x0D, 0x92, 0xAA, 0x33, 0xB1, 0x07, 0xD9, 0xF7, 0x11, 0xE0, 0xAA, 0xE3, 0xB1, 0xE0, +0x01, 0xC0, 0x1D, 0x92, 0xAB, 0x35, 0xB1, 0x07, 0xE1, 0xF7, 0x72, 0xD3, 0x14, 0xC6, 0x98, 0xCF, +0x98, 0x2F, 0x15, 0xC0, 0x80, 0x91, 0xF2, 0x00, 0x88, 0x23, 0x71, 0xF4, 0x80, 0x91, 0xE8, 0x00, +0x8B, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x03, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x51, 0xF0, 0x80, 0x91, +0xE8, 0x00, 0x82, 0xFF, 0xF9, 0xCF, 0x02, 0xC0, 0x80, 0x91, 0xF1, 0x00, 0x91, 0x50, 0x99, 0x23, +0x49, 0xF7, 0x08, 0x95, 0x20, 0x91, 0x4A, 0x01, 0x30, 0x91, 0x49, 0x01, 0x80, 0x91, 0x48, 0x01, +0x90, 0x91, 0x47, 0x01, 0x80, 0x93, 0x3F, 0x01, 0x90, 0x93, 0x40, 0x01, 0xC9, 0x01, 0x80, 0x93, +0x41, 0x01, 0x90, 0x93, 0x42, 0x01, 0x08, 0x95, 0xDF, 0x93, 0xCF, 0x93, 0x00, 0xD0, 0x00, 0xD0, +0x00, 0xD0, 0xCD, 0xB7, 0xDE, 0xB7, 0x80, 0x91, 0x45, 0x01, 0x84, 0x30, 0x09, 0xF4, 0x5A, 0xC0, +0x85, 0x30, 0x30, 0xF4, 0x81, 0x30, 0x59, 0xF0, 0x83, 0x30, 0x09, 0xF0, 0xD7, 0xC0, 0x1F, 0xC0, +0x85, 0x30, 0x09, 0xF4, 0xA0, 0xC0, 0x86, 0x30, 0x09, 0xF0, 0xD0, 0xC0, 0xC3, 0xC0, 0x80, 0x91, +0x46, 0x01, 0x82, 0x30, 0x08, 0xF0, 0xCA, 0xC0, 0xCD, 0xDF, 0x80, 0x91, 0x46, 0x01, 0x88, 0x23, +0x61, 0xF4, 0x80, 0x91, 0x3F, 0x01, 0x90, 0x91, 0x40, 0x01, 0x23, 0xE0, 0xFC, 0x01, 0x20, 0x93, +0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0x85, 0xE0, 0x08, 0xC0, 0x80, 0x91, +0x46, 0x01, 0x88, 0x23, 0x11, 0xF0, 0x82, 0x30, 0x29, 0xF4, 0xB4, 0xDF, 0x89, 0xE0, 0x80, 0x93, +0x01, 0x01, 0xAC, 0xC0, 0x81, 0x30, 0x09, 0xF0, 0xA9, 0xC0, 0x20, 0xE0, 0x30, 0xE0, 0x40, 0xE0, +0x50, 0xE0, 0xF9, 0x01, 0x84, 0x91, 0x8F, 0x3F, 0x81, 0xF0, 0xCA, 0x01, 0xAA, 0x27, 0xBB, 0x27, +0x80, 0x93, 0x3E, 0x01, 0x30, 0x93, 0x40, 0x01, 0x20, 0x93, 0x3F, 0x01, 0x8A, 0xE0, 0x80, 0x93, +0x01, 0x01, 0x85, 0xE0, 0x80, 0x93, 0x3B, 0x01, 0x91, 0xC0, 0x2F, 0x5F, 0x3F, 0x4F, 0x4F, 0x4F, +0x5F, 0x4F, 0x20, 0x30, 0xF0, 0xE3, 0x3F, 0x07, 0xF0, 0xE0, 0x4F, 0x07, 0xF0, 0xE0, 0x5F, 0x07, +0x01, 0xF7, 0x84, 0xC0, 0x80, 0x91, 0x46, 0x01, 0x83, 0x30, 0x51, 0xF5, 0x81, 0xE0, 0x80, 0x93, +0x3A, 0x01, 0x80, 0x91, 0x4B, 0x01, 0x90, 0x91, 0x4C, 0x01, 0x89, 0x2B, 0x71, 0xF0, 0x80, 0x91, +0x47, 0x01, 0x81, 0x30, 0x09, 0xF0, 0x72, 0xC0, 0x80, 0x91, 0x4A, 0x01, 0x90, 0x91, 0x49, 0x01, +0x90, 0x93, 0x3D, 0x01, 0x80, 0x93, 0x3C, 0x01, 0x69, 0xC0, 0x80, 0x91, 0x47, 0x01, 0x88, 0x23, +0x61, 0xF4, 0x2C, 0xE0, 0x88, 0xE1, 0x90, 0xE0, 0x0F, 0xB6, 0xF8, 0x94, 0xA8, 0x95, 0x80, 0x93, +0x60, 0x00, 0x0F, 0xBE, 0x20, 0x93, 0x60, 0x00, 0x59, 0xC0, 0x10, 0x92, 0x00, 0x01, 0x56, 0xC0, +0x88, 0x23, 0x09, 0xF0, 0x53, 0xC0, 0x80, 0x91, 0x47, 0x01, 0x8F, 0x3F, 0x09, 0xF0, 0x4E, 0xC0, +0xE0, 0xE0, 0xF0, 0xE0, 0x93, 0xE0, 0x85, 0xE0, 0x90, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, +0x00, 0xFC, 0xFD, 0xCF, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, +0xE0, 0x58, 0xFF, 0x4F, 0x20, 0xE3, 0xE0, 0x30, 0xF2, 0x07, 0x71, 0xF7, 0x81, 0xE1, 0x80, 0x93, +0x57, 0x00, 0xE8, 0x95, 0x33, 0xC0, 0xDE, 0x01, 0x11, 0x96, 0xE5, 0xE0, 0xF1, 0xE0, 0x83, 0xE0, +0x01, 0x90, 0x0D, 0x92, 0x81, 0x50, 0xE1, 0xF7, 0xDE, 0x01, 0x14, 0x96, 0xE2, 0xE0, 0xF1, 0xE0, +0x83, 0xE0, 0x01, 0x90, 0x0D, 0x92, 0x81, 0x50, 0xE1, 0xF7, 0x90, 0x91, 0x47, 0x01, 0x80, 0x91, +0x46, 0x01, 0x88, 0x23, 0x29, 0xF4, 0xFE, 0x01, 0xE9, 0x0F, 0xF1, 0x1D, 0x81, 0x81, 0x07, 0xC0, +0x81, 0x30, 0xA1, 0xF4, 0xFE, 0x01, 0xBC, 0x97, 0xE9, 0x0F, 0xF1, 0x1D, 0x80, 0x81, 0x80, 0x93, +0x50, 0x01, 0x0C, 0xC0, 0x80, 0x91, 0x46, 0x01, 0x83, 0x30, 0x41, 0xF4, 0x80, 0x91, 0x47, 0x01, +0x88, 0x23, 0x21, 0xF4, 0x80, 0x91, 0x48, 0x01, 0x80, 0x93, 0x3E, 0x01, 0x26, 0x96, 0x0F, 0xB6, +0xF8, 0x94, 0xDE, 0xBF, 0x0F, 0xBE, 0xCD, 0xBF, 0xCF, 0x91, 0xDF, 0x91, 0x08, 0x95, 0x2F, 0x92, +0x3F, 0x92, 0x4F, 0x92, 0x5F, 0x92, 0x6F, 0x92, 0x7F, 0x92, 0x9F, 0x92, 0xAF, 0x92, 0xBF, 0x92, +0xCF, 0x92, 0xDF, 0x92, 0xEF, 0x92, 0xFF, 0x92, 0x0F, 0x93, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, +0x80, 0x91, 0x59, 0x01, 0x90, 0x91, 0x5A, 0x01, 0x90, 0x93, 0x4C, 0x01, 0x80, 0x93, 0x4B, 0x01, +0x80, 0x91, 0x4D, 0x01, 0x88, 0x23, 0x51, 0xF0, 0x80, 0x91, 0x4D, 0x01, 0x81, 0x50, 0x80, 0x93, +0x4D, 0x01, 0x80, 0x91, 0x4D, 0x01, 0x88, 0x23, 0x09, 0xF4, 0x5D, 0x9A, 0x80, 0x91, 0x4E, 0x01, +0x88, 0x23, 0x51, 0xF0, 0x80, 0x91, 0x4E, 0x01, 0x81, 0x50, 0x80, 0x93, 0x4E, 0x01, 0x80, 0x91, +0x4E, 0x01, 0x88, 0x23, 0x09, 0xF4, 0x5C, 0x9A, 0x80, 0x91, 0x54, 0x01, 0x83, 0x30, 0x09, 0xF4, +0xB2, 0xC1, 0x84, 0x30, 0x30, 0xF4, 0x81, 0x30, 0x71, 0xF0, 0x82, 0x30, 0x09, 0xF0, 0xE3, 0xC1, +0x11, 0xC1, 0x85, 0x30, 0x09, 0xF4, 0xC5, 0xC1, 0x85, 0x30, 0x08, 0xF4, 0xBA, 0xC1, 0x86, 0x30, +0x09, 0xF0, 0xD9, 0xC1, 0xCD, 0xC1, 0x5C, 0x98, 0x83, 0xE0, 0x80, 0x93, 0x4E, 0x01, 0x80, 0x91, +0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x80, 0x91, 0x3A, 0x01, 0x88, 0x23, 0x29, 0xF0, +0xB3, 0xDE, 0x5D, 0x9A, 0x5C, 0x9A, 0x10, 0x92, 0x3A, 0x01, 0x20, 0x91, 0x4B, 0x01, 0x30, 0x91, +0x4C, 0x01, 0x21, 0x15, 0x31, 0x05, 0x29, 0xF4, 0x2A, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x09, 0xF4, +0xBA, 0xC1, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFF, 0xF8, 0xCF, 0x80, 0x91, 0xF1, 0x00, 0x80, 0x93, +0x45, 0x01, 0x21, 0x50, 0x30, 0x40, 0x30, 0x93, 0x4C, 0x01, 0x20, 0x93, 0x4B, 0x01, 0xE6, 0xE4, +0xF1, 0xE0, 0x0C, 0xC0, 0x80, 0x91, 0xF1, 0x00, 0x81, 0x93, 0x21, 0x50, 0x30, 0x40, 0x81, 0xE0, +0xEB, 0x34, 0xF8, 0x07, 0x19, 0xF4, 0x31, 0x83, 0x20, 0x83, 0x08, 0xC0, 0x80, 0x91, 0xF2, 0x00, +0x88, 0x23, 0x81, 0xF7, 0x30, 0x93, 0x4C, 0x01, 0x20, 0x93, 0x4B, 0x01, 0x7D, 0xDE, 0x80, 0x91, +0x01, 0x01, 0x85, 0x30, 0x09, 0xF0, 0xBA, 0xC0, 0x80, 0x91, 0x4B, 0x01, 0x90, 0x91, 0x4C, 0x01, +0x89, 0x2B, 0x21, 0xF4, 0x82, 0xE0, 0x80, 0x93, 0x01, 0x01, 0xB0, 0xC0, 0x8A, 0xE1, 0x40, 0xDE, +0x80, 0x91, 0x3F, 0x01, 0x8F, 0x71, 0x3C, 0xDE, 0xC0, 0x91, 0x41, 0x01, 0xD0, 0x91, 0x42, 0x01, +0x20, 0x91, 0x3F, 0x01, 0x30, 0x91, 0x40, 0x01, 0x21, 0x96, 0x8E, 0x01, 0x02, 0x1B, 0x13, 0x0B, +0x21, 0x97, 0x80, 0x91, 0x46, 0x01, 0x88, 0x23, 0x09, 0xF0, 0x93, 0xC0, 0x18, 0x01, 0x36, 0x94, +0x27, 0x94, 0xC9, 0x01, 0xA0, 0x91, 0x3E, 0x01, 0xB0, 0xE0, 0x9C, 0x01, 0xAD, 0x01, 0x62, 0xE0, +0xE6, 0x2E, 0xF1, 0x2C, 0x01, 0x2D, 0x11, 0x2D, 0xE2, 0x0E, 0xF3, 0x1E, 0x04, 0x1F, 0x15, 0x1F, +0x59, 0x01, 0x6A, 0x01, 0x90, 0xE0, 0x99, 0x24, 0x93, 0x94, 0xB5, 0xE0, 0xA3, 0xE0, 0x48, 0xC0, +0x80, 0x91, 0xF2, 0x00, 0x88, 0x23, 0x71, 0xF4, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x7F, 0x80, 0x93, +0xE8, 0x00, 0x04, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x09, 0xF4, 0x45, 0xC1, 0x80, 0x91, 0xE8, 0x00, +0x82, 0xFF, 0xF8, 0xCF, 0x08, 0x94, 0x21, 0x08, 0x31, 0x08, 0x80, 0x91, 0xF1, 0x00, 0x68, 0x2F, +0x80, 0x91, 0xF1, 0x00, 0x78, 0x2F, 0xF5, 0x01, 0x0B, 0x01, 0x90, 0x92, 0x57, 0x00, 0xE8, 0x95, +0x11, 0x24, 0x9F, 0x5F, 0x90, 0x34, 0x19, 0xF0, 0x21, 0x14, 0x31, 0x04, 0xA1, 0xF4, 0xF9, 0x01, +0xB0, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0x21, 0x14, 0x31, 0x04, +0x51, 0xF0, 0xF7, 0x01, 0xA0, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, +0xA8, 0x01, 0x97, 0x01, 0x90, 0xE0, 0x42, 0xE0, 0x44, 0x2E, 0x51, 0x2C, 0x61, 0x2C, 0x71, 0x2C, +0xE4, 0x0C, 0xF5, 0x1C, 0x06, 0x1D, 0x17, 0x1D, 0xA4, 0x0C, 0xB5, 0x1C, 0xC6, 0x1C, 0xD7, 0x1C, +0x21, 0x14, 0x31, 0x04, 0x09, 0xF0, 0xB4, 0xCF, 0xD0, 0x93, 0x40, 0x01, 0xC0, 0x93, 0x3F, 0x01, +0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x27, 0xC0, 0x80, 0x91, 0xF2, 0x00, 0x88, 0x23, +0x71, 0xF4, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x04, 0xC0, 0x8E, 0xB3, +0x88, 0x23, 0x09, 0xF4, 0xF0, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFF, 0xF8, 0xCF, 0x60, 0x91, +0xF1, 0x00, 0x80, 0x91, 0x3F, 0x01, 0x90, 0x91, 0x40, 0x01, 0xA7, 0xD3, 0x80, 0x91, 0x3F, 0x01, +0x90, 0x91, 0x40, 0x01, 0x01, 0x96, 0x90, 0x93, 0x40, 0x01, 0x80, 0x93, 0x3F, 0x01, 0x01, 0x50, +0x10, 0x40, 0x01, 0x15, 0x11, 0x05, 0xC9, 0xF6, 0x80, 0xE1, 0x92, 0xDD, 0x80, 0x91, 0xE8, 0x00, +0x8B, 0x7F, 0xC3, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x5D, 0x98, +0x83, 0xE0, 0x80, 0x93, 0x4D, 0x01, 0x04, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x09, 0xF4, 0xC3, 0xC0, +0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xF8, 0xCF, 0x80, 0x91, 0x01, 0x01, 0x89, 0x30, 0x91, 0xF0, +0x8A, 0x30, 0x69, 0xF4, 0x80, 0x91, 0x46, 0x01, 0x81, 0x30, 0x49, 0xF4, 0x80, 0x91, 0x3F, 0x01, +0x90, 0x91, 0x40, 0x01, 0x80, 0x93, 0xF1, 0x00, 0x90, 0x93, 0xF1, 0x00, 0x9B, 0xC0, 0x80, 0x91, +0x50, 0x01, 0x96, 0xC0, 0x60, 0x91, 0x41, 0x01, 0x70, 0x91, 0x42, 0x01, 0x20, 0x91, 0x3F, 0x01, +0x30, 0x91, 0x40, 0x01, 0x6F, 0x5F, 0x7F, 0x4F, 0x7B, 0x01, 0xE2, 0x1A, 0xF3, 0x0A, 0x61, 0x50, +0x70, 0x40, 0x80, 0x91, 0x46, 0x01, 0x88, 0x23, 0x89, 0xF5, 0x87, 0x01, 0x16, 0x95, 0x07, 0x95, +0xC9, 0x01, 0xA0, 0x91, 0x3E, 0x01, 0xB0, 0xE0, 0x9C, 0x01, 0xAD, 0x01, 0x1F, 0xC0, 0x80, 0x91, +0xF2, 0x00, 0x80, 0x32, 0x71, 0xF4, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE8, 0x00, +0x04, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x09, 0xF4, 0x7E, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, +0xF8, 0xCF, 0xF9, 0x01, 0x85, 0x91, 0x94, 0x91, 0x80, 0x93, 0xF1, 0x00, 0x90, 0x93, 0xF1, 0x00, +0x01, 0x50, 0x10, 0x40, 0x2E, 0x5F, 0x3F, 0x4F, 0x4F, 0x4F, 0x5F, 0x4F, 0x01, 0x15, 0x11, 0x05, +0xF1, 0xF6, 0x70, 0x93, 0x40, 0x01, 0x60, 0x93, 0x3F, 0x01, 0x29, 0xC0, 0x82, 0x30, 0x39, 0xF5, +0x23, 0xC0, 0x80, 0x91, 0xF2, 0x00, 0x80, 0x32, 0x71, 0xF4, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x7F, +0x80, 0x93, 0xE8, 0x00, 0x04, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x09, 0xF4, 0x54, 0xC0, 0x80, 0x91, +0xE8, 0x00, 0x80, 0xFF, 0xF8, 0xCF, 0x00, 0x91, 0x3F, 0x01, 0x10, 0x91, 0x40, 0x01, 0xC8, 0x01, +0x04, 0xD3, 0x80, 0x93, 0xF1, 0x00, 0x0F, 0x5F, 0x1F, 0x4F, 0x10, 0x93, 0x40, 0x01, 0x00, 0x93, +0x3F, 0x01, 0x08, 0x94, 0xE1, 0x08, 0xF1, 0x08, 0xE1, 0x14, 0xF1, 0x04, 0xD1, 0xF6, 0x82, 0xE0, +0x80, 0x93, 0x01, 0x01, 0x27, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, +0x80, 0x91, 0x3B, 0x01, 0x80, 0x93, 0xF1, 0x00, 0x10, 0x92, 0xF1, 0x00, 0x10, 0x92, 0xF1, 0x00, +0x10, 0x92, 0xF1, 0x00, 0x80, 0x91, 0x01, 0x01, 0x80, 0x93, 0xF1, 0x00, 0x10, 0x92, 0xF1, 0x00, +0x11, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x10, 0x92, 0x3B, 0x01, +0x19, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x80, 0x91, 0x01, 0x01, +0x80, 0x93, 0xF1, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x0A, 0xC0, +0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x5D, 0x9A, 0x5C, 0x9A, 0x82, 0xE0, +0x80, 0x93, 0x01, 0x01, 0x87, 0xD0, 0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, 0x0F, 0x91, 0xFF, 0x90, +0xEF, 0x90, 0xDF, 0x90, 0xCF, 0x90, 0xBF, 0x90, 0xAF, 0x90, 0x9F, 0x90, 0x7F, 0x90, 0x6F, 0x90, +0x5F, 0x90, 0x4F, 0x90, 0x3F, 0x90, 0x2F, 0x90, 0x08, 0x95, 0x2B, 0xD1, 0x81, 0xE0, 0x85, 0xBF, +0x15, 0xBE, 0x08, 0x95, 0x84, 0xB7, 0x87, 0x7F, 0x84, 0xBF, 0x88, 0xE1, 0x0F, 0xB6, 0xF8, 0x94, +0x80, 0x93, 0x60, 0x00, 0x10, 0x92, 0x60, 0x00, 0x0F, 0xBE, 0x81, 0xE0, 0x85, 0xBF, 0x82, 0xE0, +0x85, 0xBF, 0x8A, 0xB1, 0x80, 0x63, 0x8A, 0xB9, 0x8B, 0xB1, 0x80, 0x63, 0x8B, 0xB9, 0x0C, 0xC1, +0xE9, 0xDF, 0x78, 0x94, 0x01, 0xC0, 0x80, 0xD2, 0x80, 0x91, 0x00, 0x01, 0x88, 0x23, 0xD9, 0xF7, +0x80, 0x91, 0x3A, 0x01, 0x88, 0x23, 0xB9, 0xF7, 0xD8, 0xDF, 0xE0, 0x91, 0x3C, 0x01, 0xF0, 0x91, +0x3D, 0x01, 0x09, 0x95, 0xFA, 0x01, 0x92, 0x30, 0x71, 0xF0, 0x93, 0x30, 0x89, 0xF0, 0x91, 0x30, +0x29, 0xF4, 0x88, 0xE0, 0x91, 0xE0, 0x22, 0xE1, 0x30, 0xE0, 0x19, 0xC0, 0x80, 0xE0, 0x90, 0xE0, +0x20, 0xE0, 0x30, 0xE0, 0x14, 0xC0, 0x8A, 0xE1, 0x91, 0xE0, 0x2B, 0xE1, 0x30, 0xE0, 0x0F, 0xC0, +0x88, 0x23, 0x39, 0xF4, 0x80, 0x91, 0x35, 0x01, 0x28, 0x2F, 0x30, 0xE0, 0x85, 0xE3, 0x91, 0xE0, +0x06, 0xC0, 0x80, 0x91, 0x43, 0x01, 0x28, 0x2F, 0x30, 0xE0, 0x83, 0xE4, 0x91, 0xE0, 0x91, 0x83, +0x80, 0x83, 0xC9, 0x01, 0x08, 0x95, 0x80, 0x91, 0xEB, 0x00, 0x81, 0x60, 0x80, 0x93, 0xEB, 0x00, +0x10, 0x92, 0xED, 0x00, 0x60, 0x93, 0xEC, 0x00, 0x40, 0x93, 0xED, 0x00, 0x80, 0x91, 0xEE, 0x00, +0x88, 0x1F, 0x88, 0x27, 0x88, 0x1F, 0x08, 0x95, 0x10, 0x92, 0xF4, 0x00, 0x10, 0x92, 0xF0, 0x00, +0x10, 0x92, 0xE8, 0x00, 0x10, 0x92, 0xED, 0x00, 0xEB, 0xEE, 0xF0, 0xE0, 0x80, 0x81, 0x8E, 0x7F, +0x80, 0x83, 0x08, 0x95, 0x80, 0x91, 0x53, 0x01, 0x88, 0x23, 0x8C, 0xF4, 0x03, 0xC0, 0x8E, 0xB3, +0x88, 0x23, 0xB1, 0xF0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFF, 0xF9, 0xCF, 0x80, 0x91, 0xE8, 0x00, +0x8B, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x08, 0x95, 0x8E, 0xB3, 0x88, 0x23, 0x49, 0xF0, 0x80, 0x91, +0xE8, 0x00, 0x80, 0xFF, 0xF9, 0xCF, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE8, 0x00, +0x08, 0x95, 0x9C, 0x01, 0x40, 0x91, 0x59, 0x01, 0x50, 0x91, 0x5A, 0x01, 0x46, 0x17, 0x57, 0x07, +0x18, 0xF4, 0xF9, 0x01, 0x20, 0xE0, 0x38, 0xC0, 0x61, 0x15, 0x71, 0x05, 0x11, 0xF0, 0xAB, 0x01, +0xF8, 0xCF, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x40, 0xE0, 0x50, 0xE0, +0xF0, 0xCF, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFF, 0x02, 0xC0, 0x81, 0xE0, 0x08, 0x95, 0x80, 0x91, +0xE8, 0x00, 0x82, 0xFD, 0x2D, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x81, 0xF1, 0x8E, 0xB3, 0x85, 0x30, +0x79, 0xF1, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0x17, 0xC0, 0x90, 0x91, 0xF2, 0x00, 0x06, 0xC0, +0x81, 0x91, 0x80, 0x93, 0xF1, 0x00, 0x41, 0x50, 0x50, 0x40, 0x9F, 0x5F, 0x41, 0x15, 0x51, 0x05, +0x11, 0xF0, 0x90, 0x32, 0xA8, 0xF3, 0x20, 0xE0, 0x90, 0x32, 0x09, 0xF4, 0x21, 0xE0, 0x80, 0x91, +0xE8, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x41, 0x15, 0x51, 0x05, 0x91, 0xF6, 0x22, 0x23, +0x81, 0xF6, 0x06, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x49, 0xF0, 0x8E, 0xB3, 0x85, 0x30, 0x41, 0xF0, +0x80, 0x91, 0xE8, 0x00, 0x82, 0xFF, 0xF6, 0xCF, 0x80, 0xE0, 0x08, 0x95, 0x82, 0xE0, 0x08, 0x95, +0x83, 0xE0, 0x08, 0x95, 0x54, 0xD0, 0x56, 0xD0, 0x1E, 0xBA, 0x10, 0x92, 0x51, 0x01, 0x84, 0xE0, +0x89, 0xBD, 0x89, 0xB5, 0x82, 0x60, 0x89, 0xBD, 0x09, 0xB4, 0x00, 0xFE, 0xFD, 0xCF, 0x80, 0x91, +0xD8, 0x00, 0x98, 0x2F, 0x9F, 0x77, 0x90, 0x93, 0xD8, 0x00, 0x80, 0x68, 0x80, 0x93, 0xD8, 0x00, +0x80, 0x91, 0x63, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0x63, 0x00, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x7D, +0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xE0, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE0, 0x00, 0x80, 0x91, +0xE1, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x81, 0x60, 0x80, 0x93, +0xE2, 0x00, 0x80, 0x91, 0xE1, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, +0x88, 0x60, 0x80, 0x93, 0xE2, 0x00, 0x08, 0x95, 0xC5, 0xDF, 0x81, 0xE0, 0x80, 0x93, 0x52, 0x01, +0x08, 0x95, 0xC0, 0xDF, 0xE0, 0xEE, 0xF0, 0xE0, 0x80, 0x81, 0x81, 0x60, 0x80, 0x83, 0xE8, 0xED, +0xF0, 0xE0, 0x80, 0x81, 0x8F, 0x77, 0x80, 0x83, 0x0A, 0xD0, 0x0C, 0xD0, 0x19, 0xBC, 0xE3, 0xE6, +0xF0, 0xE0, 0x80, 0x81, 0x81, 0x60, 0x80, 0x83, 0x10, 0x92, 0x52, 0x01, 0x08, 0x95, 0x10, 0x92, +0xE2, 0x00, 0x08, 0x95, 0x10, 0x92, 0xE1, 0x00, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, +0x0F, 0x92, 0x11, 0x24, 0x2F, 0x93, 0x3F, 0x93, 0x4F, 0x93, 0x5F, 0x93, 0x6F, 0x93, 0x7F, 0x93, +0x8F, 0x93, 0x9F, 0x93, 0xAF, 0x93, 0xBF, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x80, 0x91, 0xE1, 0x00, +0x80, 0xFF, 0x1B, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x80, 0xFF, 0x17, 0xC0, 0x80, 0x91, 0xE1, 0x00, +0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE2, 0x00, +0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xD8, 0x00, 0x80, 0x62, +0x80, 0x93, 0xD8, 0x00, 0x19, 0xBC, 0x1E, 0xBA, 0x26, 0xD1, 0x80, 0x91, 0xE1, 0x00, 0x84, 0xFF, +0x29, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x84, 0xFF, 0x25, 0xC0, 0x84, 0xE0, 0x89, 0xBD, 0x89, 0xB5, +0x82, 0x60, 0x89, 0xBD, 0x09, 0xB4, 0x00, 0xFE, 0xFD, 0xCF, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x7D, +0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xE1, 0x00, 0x8F, 0x7E, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, +0xE2, 0x00, 0x8F, 0x7E, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x81, 0x60, 0x80, 0x93, +0xE2, 0x00, 0x80, 0x91, 0x51, 0x01, 0x88, 0x23, 0x11, 0xF4, 0x81, 0xE0, 0x01, 0xC0, 0x84, 0xE0, +0x8E, 0xBB, 0xF9, 0xD0, 0x80, 0x91, 0xE1, 0x00, 0x83, 0xFF, 0x22, 0xC0, 0x80, 0x91, 0xE2, 0x00, +0x83, 0xFF, 0x1E, 0xC0, 0x80, 0x91, 0xE1, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x82, 0xE0, +0x8E, 0xBB, 0x10, 0x92, 0x51, 0x01, 0x80, 0x91, 0xE1, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, +0x80, 0x91, 0xE2, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, +0x80, 0x93, 0xE2, 0x00, 0xA1, 0xDE, 0x80, 0xE0, 0x60, 0xE0, 0x42, 0xE2, 0x8C, 0xDE, 0xD3, 0xD0, +0x80, 0x91, 0xE1, 0x00, 0x82, 0xFF, 0x0A, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x82, 0xFF, 0x06, 0xC0, +0x80, 0x91, 0xE1, 0x00, 0x8B, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0xC5, 0xD0, 0xFF, 0x91, 0xEF, 0x91, +0xBF, 0x91, 0xAF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x7F, 0x91, 0x6F, 0x91, 0x5F, 0x91, 0x4F, 0x91, +0x3F, 0x91, 0x2F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, 0x18, 0x95, 0x1F, 0x93, +0xDF, 0x93, 0xCF, 0x93, 0x00, 0xD0, 0xCD, 0xB7, 0xDE, 0xB7, 0xE3, 0xE5, 0xF1, 0xE0, 0x80, 0x91, +0xF1, 0x00, 0x81, 0x93, 0x81, 0xE0, 0xEB, 0x35, 0xF8, 0x07, 0xC9, 0xF7, 0x90, 0x91, 0x53, 0x01, +0x80, 0x91, 0x54, 0x01, 0x85, 0x30, 0x11, 0xF1, 0x86, 0x30, 0x40, 0xF4, 0x81, 0x30, 0xB9, 0xF0, +0x81, 0x30, 0x70, 0xF0, 0x83, 0x30, 0x09, 0xF0, 0x81, 0xC0, 0x11, 0xC0, 0x88, 0x30, 0x09, 0xF4, +0x53, 0xC0, 0x89, 0x30, 0x09, 0xF4, 0x62, 0xC0, 0x86, 0x30, 0x09, 0xF0, 0x77, 0xC0, 0x2D, 0xC0, +0x90, 0x38, 0x09, 0xF4, 0x74, 0xC0, 0x92, 0x38, 0x09, 0xF0, 0x70, 0xC0, 0x70, 0xC0, 0x99, 0x23, +0x09, 0xF4, 0x6D, 0xC0, 0x92, 0x30, 0x09, 0xF0, 0x69, 0xC0, 0x69, 0xC0, 0x99, 0x23, 0x09, 0xF0, +0x65, 0xC0, 0x10, 0x91, 0x55, 0x01, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, +0x49, 0xDE, 0x04, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x09, 0xF4, 0x59, 0xC0, 0x80, 0x91, 0xE8, 0x00, +0x80, 0xFF, 0xF8, 0xCF, 0x81, 0x2F, 0x8F, 0x77, 0x11, 0xF4, 0x92, 0xE0, 0x01, 0xC0, 0x93, 0xE0, +0x9E, 0xBB, 0x80, 0x68, 0x80, 0x93, 0xE3, 0x00, 0x4A, 0xC0, 0x90, 0x58, 0x92, 0x30, 0x08, 0xF0, +0x45, 0xC0, 0x80, 0x91, 0x55, 0x01, 0x90, 0x91, 0x56, 0x01, 0x60, 0x91, 0x57, 0x01, 0xAE, 0x01, +0x4F, 0x5F, 0x5F, 0x4F, 0xDF, 0xDD, 0xBC, 0x01, 0x00, 0x97, 0xC9, 0xF1, 0x80, 0x91, 0xE8, 0x00, +0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x89, 0x81, 0x9A, 0x81, 0x3B, 0xDE, 0x80, 0x91, 0xE8, 0x00, +0x8B, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x2B, 0xC0, 0x90, 0x38, 0x41, 0xF5, 0x80, 0x91, 0xE8, 0x00, +0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x80, 0x91, 0x51, 0x01, 0x80, 0x93, 0xF1, 0x00, 0x80, 0x91, +0xE8, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x05, 0xDE, 0x19, 0xC0, 0x99, 0x23, 0xB1, 0xF4, +0x90, 0x91, 0x55, 0x01, 0x92, 0x30, 0x98, 0xF4, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, +0xE8, 0x00, 0x90, 0x93, 0x51, 0x01, 0xF6, 0xDD, 0x80, 0x91, 0x51, 0x01, 0x88, 0x23, 0x11, 0xF4, +0x83, 0xE0, 0x01, 0xC0, 0x84, 0xE0, 0x8E, 0xBB, 0x16, 0xD0, 0x01, 0xC0, 0x40, 0xDB, 0x80, 0x91, +0xE8, 0x00, 0x83, 0xFF, 0x0A, 0xC0, 0x80, 0x91, 0xEB, 0x00, 0x80, 0x62, 0x80, 0x93, 0xEB, 0x00, +0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x0F, 0x90, 0x0F, 0x90, 0xCF, 0x91, +0xDF, 0x91, 0x1F, 0x91, 0x08, 0x95, 0x08, 0x95, 0x8E, 0xB3, 0x88, 0x23, 0x29, 0xF0, 0x80, 0x91, +0xE8, 0x00, 0x83, 0xFF, 0x01, 0xC0, 0x43, 0xCF, 0x08, 0x95, 0xF9, 0x99, 0xFE, 0xCF, 0x92, 0xBD, +0x81, 0xBD, 0xF8, 0x9A, 0x99, 0x27, 0x80, 0xB5, 0x08, 0x95, 0x26, 0x2F, 0xF9, 0x99, 0xFE, 0xCF, +0x1F, 0xBA, 0x92, 0xBD, 0x81, 0xBD, 0x20, 0xBD, 0x0F, 0xB6, 0xF8, 0x94, 0xFA, 0x9A, 0xF9, 0x9A, +0x0F, 0xBE, 0x01, 0x96, 0x08, 0x95, 0xF8, 0x94, 0xFF, 0xCF, 0x01, 0x02, 0x1E, 0x94, 0x89, 0x20, +0xDC, 0xFB, 0x12, 0x01, 0x10, 0x01, 0x00, 0x00, 0x00, 0x20, 0xEB, 0x03, 0xEF, 0x2F, 0x00, 0x00, +0x00, 0x01, 0x00, 0x01, 0x09, 0x02, 0x1B, 0x00, 0x01, 0x01, 0x00, 0x80, 0x32, 0x09, 0x04, 0x00, +0x00, 0x00, 0xFE, 0x01, 0x02, 0x00, 0x09, 0x21, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x01, 0x04, +0x03, 0x09, 0x04, 0x00, +}; // end of Arduino_COMBINED_dfu_usbserial_atmega16u2_Uno_Rev3_hex + // File = Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex // Loader start: 0, length: 16384 // MD5 sum = A4 27 5B D0 F2 88 58 BF BC CF F7 4E B0 60 35 5F -const byte Arduino_COMBINED_dfu_usbserial_atmega16u2_Uno_Rev3_hex[] PROGMEM = { +const byte Arduino_COMBINED_dfu_usbserial_atmega16u2_Uno_Rev3_hex_Full[] PROGMEM = { 0x90, 0xC0, 0x00, 0x00, 0xA9, 0xC0, 0x00, 0x00, 0xA7, 0xC0, 0x00, 0x00, 0xA5, 0xC0, 0x00, 0x00, 0xA3, 0xC0, 0x00, 0x00, 0xA1, 0xC0, 0x00, 0x00, 0x9F, 0xC0, 0x00, 0x00, 0x9D, 0xC0, 0x00, 0x00, 0x9B, 0xC0, 0x00, 0x00, 0x99, 0xC0, 0x00, 0x00, 0x97, 0xC0, 0x00, 0x00, 0x48, 0xC4, 0x00, 0x00, @@ -1054,7 +1269,7 @@ const byte Arduino_COMBINED_dfu_usbserial_atmega16u2_Uno_Rev3_hex[] PROGMEM = { // Loader start: 0, length: 16384 // MD5 sum = 8E 3E E5 B8 06 A4 6F E3 1D 47 9E 58 E6 CD C2 A5 -const byte Arduino_COMBINED_dfu_usbserial_atmega16u2_Mega2560_Rev3_hex[] PROGMEM = { +const byte Arduino_COMBINED_dfu_usbserial_atmega16u2_Mega2560_Rev3_hex_Full[] PROGMEM = { 0x90, 0xC0, 0x00, 0x00, 0xA9, 0xC0, 0x00, 0x00, 0xA7, 0xC0, 0x00, 0x00, 0xA5, 0xC0, 0x00, 0x00, 0xA3, 0xC0, 0x00, 0x00, 0xA1, 0xC0, 0x00, 0x00, 0x9F, 0xC0, 0x00, 0x00, 0x9D, 0xC0, 0x00, 0x00, 0x9B, 0xC0, 0x00, 0x00, 0x99, 0xC0, 0x00, 0x00, 0x97, 0xC0, 0x00, 0x00, 0x48, 0xC4, 0x00, 0x00, @@ -2080,3 +2295,529 @@ const byte Arduino_COMBINED_dfu_usbserial_atmega16u2_Mega2560_Rev3_hex[] PROGMEM 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, }; // end of Arduino_COMBINED_dfu_usbserial_atmega16u2_Mega2560_Rev3_hex + +// File = HoodLoader2_0_4_Uno_16u2.hex +// Loader start: 3000, length: 4096 +// MD5 sum = 8A F3 52 27 E3 73 31 33 D6 EA 32 FC 3A EE 6F 6A + +const byte HoodLoader2_0_4_Uno_16u2_hex[] PROGMEM = { + 0x39, 0xC0, 0x00, 0x00, 0x83, 0xC0, 0x00, 0x00, 0x81, 0xC0, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x00, + 0x7D, 0xC0, 0x00, 0x00, 0x7B, 0xC0, 0x00, 0x00, 0x79, 0xC0, 0x00, 0x00, 0x77, 0xC0, 0x00, 0x00, + 0x75, 0xC0, 0x00, 0x00, 0x73, 0xC0, 0x00, 0x00, 0x71, 0xC0, 0x00, 0x00, 0x46, 0xC5, 0x00, 0x00, + 0x6D, 0xC0, 0x00, 0x00, 0x6B, 0xC0, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x00, 0x67, 0xC0, 0x00, 0x00, + 0x65, 0xC0, 0x00, 0x00, 0x63, 0xC0, 0x00, 0x00, 0x61, 0xC0, 0x00, 0x00, 0x5F, 0xC0, 0x00, 0x00, + 0x5D, 0xC0, 0x00, 0x00, 0x5B, 0xC0, 0x00, 0x00, 0x59, 0xC0, 0x00, 0x00, 0xAB, 0xC3, 0x00, 0x00, + 0x55, 0xC0, 0x00, 0x00, 0x53, 0xC0, 0x00, 0x00, 0x51, 0xC0, 0x00, 0x00, 0x4F, 0xC0, 0x00, 0x00, + 0x4D, 0xC0, 0x00, 0x00, 0x11, 0x24, 0x1F, 0xBE, 0xCF, 0xEF, 0xD2, 0xE0, 0xDE, 0xBF, 0xCD, 0xBF, + 0x90, 0x91, 0x80, 0x02, 0x10, 0x92, 0x80, 0x02, 0x84, 0xB7, 0x14, 0xBE, 0x28, 0xE1, 0x0F, 0xB6, + 0xF8, 0x94, 0x20, 0x93, 0x60, 0x00, 0x10, 0x92, 0x60, 0x00, 0x0F, 0xBE, 0xE0, 0xE0, 0xF0, 0xE0, + 0x25, 0x91, 0x34, 0x91, 0x2F, 0x3F, 0x3F, 0x4F, 0xE1, 0xF0, 0x81, 0xFF, 0x12, 0xC0, 0x97, 0x37, + 0xC1, 0xF0, 0x87, 0xE7, 0x80, 0x93, 0x80, 0x02, 0x8F, 0xEF, 0x9E, 0xE9, 0x24, 0xE2, 0x81, 0x50, + 0x90, 0x40, 0x20, 0x40, 0xE1, 0xF7, 0x00, 0xC0, 0x00, 0x00, 0x10, 0x92, 0x80, 0x02, 0x1F, 0xD0, + 0x08, 0xC0, 0x80, 0xFF, 0x02, 0xC0, 0x1B, 0xD0, 0x04, 0xC0, 0x83, 0xFF, 0x02, 0xC0, 0x97, 0x37, + 0xD1, 0xF7, 0x11, 0xE0, 0xA0, 0xE0, 0xB1, 0xE0, 0xEE, 0xE8, 0xFE, 0xE3, 0x02, 0xC0, 0x05, 0x90, + 0x0D, 0x92, 0xAA, 0x39, 0xB1, 0x07, 0xD9, 0xF7, 0x12, 0xE0, 0xAA, 0xE9, 0xB1, 0xE0, 0x01, 0xC0, + 0x1D, 0x92, 0xAE, 0x32, 0xB1, 0x07, 0xE1, 0xF7, 0x36, 0xD0, 0xBF, 0xC6, 0x79, 0xCF, 0x8B, 0xB1, + 0x80, 0x63, 0x8B, 0xB9, 0xE0, 0xE0, 0xF0, 0xE0, 0x09, 0x94, 0x84, 0xE0, 0x80, 0x93, 0xE9, 0x00, + 0x80, 0x91, 0xE8, 0x00, 0x85, 0xFD, 0x0D, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFD, 0xF3, 0xCF, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, + 0x02, 0xC0, 0x80, 0x91, 0xF1, 0x00, 0x08, 0x95, 0x93, 0xE0, 0x90, 0x93, 0xE9, 0x00, 0x90, 0x91, + 0xE8, 0x00, 0x95, 0xFF, 0x03, 0xC0, 0x80, 0x93, 0xF1, 0x00, 0x08, 0x95, 0x90, 0x91, 0xE8, 0x00, + 0x9E, 0x77, 0x90, 0x93, 0xE8, 0x00, 0x90, 0x91, 0xE8, 0x00, 0x90, 0xFD, 0xF4, 0xCF, 0x9E, 0xB3, + 0x91, 0x11, 0xF9, 0xCF, 0x08, 0x95, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0x00, 0xD0, 0xCD, 0xB7, + 0xDE, 0xB7, 0x90, 0xE0, 0x80, 0xE8, 0x0F, 0xB6, 0xF8, 0x94, 0x80, 0x93, 0x61, 0x00, 0x90, 0x93, + 0x61, 0x00, 0x0F, 0xBE, 0x81, 0xE0, 0x85, 0xBF, 0x82, 0xE0, 0x85, 0xBF, 0x7F, 0xD4, 0x84, 0xE0, + 0x85, 0xBD, 0x8A, 0xB1, 0x88, 0x6B, 0x8A, 0xB9, 0x8B, 0xB1, 0x84, 0x6B, 0x8B, 0xB9, 0x78, 0x94, + 0x13, 0xE0, 0xBB, 0x24, 0xB3, 0x94, 0xE5, 0xE0, 0x8E, 0x2E, 0x21, 0x2C, 0x31, 0x2C, 0x82, 0xE9, + 0x91, 0xE0, 0x27, 0xE0, 0x28, 0x0F, 0x29, 0x83, 0x84, 0xE0, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, + 0xE8, 0x00, 0x82, 0xFF, 0x8D, 0xC1, 0xA1, 0xDF, 0x98, 0x2F, 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, + 0x13, 0xC0, 0x80, 0x91, 0xC8, 0x00, 0x85, 0xFF, 0xFC, 0xCF, 0x90, 0x93, 0xCE, 0x00, 0x80, 0x91, + 0xF2, 0x00, 0x81, 0x11, 0x05, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x5C, 0x98, 0x10, 0x93, 0x9F, 0x01, 0x78, 0xC1, 0x95, 0x34, 0x19, 0xF4, 0x10, 0x92, 0x00, 0x01, + 0x32, 0xC0, 0x88, 0xE8, 0x89, 0x0F, 0x82, 0x30, 0x10, 0xF0, 0x94, 0x35, 0x11, 0xF4, 0x7D, 0xDF, + 0x2A, 0xC0, 0x90, 0x35, 0x41, 0xF1, 0x9C, 0x34, 0x31, 0xF1, 0x94, 0x37, 0x21, 0xF4, 0x84, 0xE4, + 0x8B, 0xDF, 0x80, 0xE0, 0x03, 0xC0, 0x91, 0x36, 0x19, 0xF4, 0x89, 0xE5, 0x85, 0xDF, 0x5C, 0xC1, + 0x91, 0x34, 0xD9, 0xF4, 0x6A, 0xDF, 0x08, 0x2F, 0x68, 0xDF, 0x90, 0xE0, 0x88, 0x0F, 0x99, 0x1F, + 0x20, 0x2F, 0x30, 0xE0, 0x32, 0x2F, 0x22, 0x27, 0x33, 0x0F, 0x82, 0x2B, 0x93, 0x2B, 0xAA, 0x27, + 0x97, 0xFD, 0xA0, 0x95, 0xBA, 0x2F, 0x80, 0x93, 0x9A, 0x01, 0x90, 0x93, 0x9B, 0x01, 0xA0, 0x93, + 0x9C, 0x01, 0xB0, 0x93, 0x9D, 0x01, 0x8D, 0xE0, 0xE1, 0xCF, 0x90, 0x37, 0x11, 0xF4, 0x83, 0xE5, + 0xDD, 0xCF, 0x93, 0x35, 0x61, 0xF4, 0x52, 0xE9, 0xE5, 0x2E, 0x51, 0xE0, 0xF5, 0x2E, 0xF7, 0x01, + 0x81, 0x91, 0x7F, 0x01, 0x59, 0xDF, 0x29, 0x81, 0x2E, 0x11, 0xF9, 0xCF, 0x2D, 0xC1, 0x96, 0x35, + 0x21, 0xF4, 0x81, 0xE3, 0x51, 0xDF, 0x80, 0xE3, 0xC9, 0xCF, 0x93, 0x37, 0x31, 0xF4, 0x89, 0xE8, + 0x4B, 0xDF, 0x84, 0xE9, 0x49, 0xDF, 0x8E, 0xE1, 0xC1, 0xCF, 0x95, 0x36, 0xA9, 0xF4, 0xE0, 0xE0, + 0xF0, 0xE0, 0x10, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0x80, 0x92, + 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xE0, 0x58, 0xFF, 0x4F, 0xE1, 0x15, + 0x80, 0xE3, 0xF8, 0x07, 0x71, 0xF7, 0xC7, 0xCF, 0x9C, 0x36, 0x51, 0xF4, 0x16, 0xDF, 0x80, 0x95, + 0x99, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x08, 0x2E, 0x90, 0x93, 0x57, 0x00, 0xE8, 0x95, 0xBB, 0xCF, + 0x92, 0x37, 0x21, 0xF4, 0x89, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x10, 0xC0, 0x96, 0x34, 0x19, 0xF4, + 0x89, 0xE0, 0xF1, 0x01, 0x0B, 0xC0, 0x9E, 0x34, 0x21, 0xF4, 0x89, 0xE0, 0xE3, 0xE0, 0xF0, 0xE0, + 0x05, 0xC0, 0x91, 0x35, 0x39, 0xF4, 0x89, 0xE0, 0xE2, 0xE0, 0xF0, 0xE0, 0x80, 0x93, 0x57, 0x00, + 0x84, 0x91, 0x84, 0xCF, 0x92, 0x36, 0x31, 0xF4, 0x89, 0xE5, 0x06, 0xDF, 0x80, 0xE0, 0x04, 0xDF, + 0x80, 0xE8, 0x7C, 0xCF, 0x92, 0x34, 0x19, 0xF0, 0x97, 0x36, 0x09, 0xF0, 0xCD, 0xC0, 0x9A, 0x83, + 0xE4, 0xDE, 0xE8, 0x2E, 0xF1, 0x2C, 0xFE, 0x2C, 0xEE, 0x24, 0xDF, 0xDE, 0xE8, 0x2A, 0xDD, 0xDE, + 0x08, 0x2F, 0x8B, 0xEB, 0x80, 0x0F, 0x9A, 0x81, 0x82, 0x30, 0x10, 0xF0, 0x8F, 0xE3, 0x66, 0xCF, + 0x97, 0x36, 0x09, 0xF0, 0x44, 0xC0, 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x37, 0x01, + 0xA1, 0x2C, 0x61, 0x14, 0x71, 0x04, 0x09, 0xF4, 0xB7, 0xC0, 0xC0, 0x90, 0x9A, 0x01, 0xD0, 0x90, + 0x9B, 0x01, 0xE0, 0x90, 0x9C, 0x01, 0xF0, 0x90, 0x9D, 0x01, 0x06, 0x34, 0xB9, 0xF4, 0xEA, 0x2D, + 0xF0, 0xE0, 0xEC, 0x29, 0xFD, 0x29, 0x84, 0x91, 0xCF, 0xDE, 0xAA, 0x20, 0x69, 0xF0, 0xF2, 0xE0, + 0xCF, 0x0E, 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9A, 0x01, 0xD0, 0x92, 0x9B, 0x01, + 0xE0, 0x92, 0x9C, 0x01, 0xF0, 0x92, 0x9D, 0x01, 0xAB, 0x24, 0x15, 0xC0, 0xD7, 0x01, 0xC6, 0x01, + 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0x42, 0xD5, 0xB6, 0xDE, 0x22, 0xE0, 0xC2, 0x0E, + 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9A, 0x01, 0xD0, 0x92, 0x9B, 0x01, 0xE0, 0x92, + 0x9C, 0x01, 0xF0, 0x92, 0x9D, 0x01, 0x81, 0xE0, 0x68, 0x1A, 0x71, 0x08, 0xC2, 0xCF, 0x40, 0x90, + 0x9A, 0x01, 0x50, 0x90, 0x9B, 0x01, 0x60, 0x90, 0x9C, 0x01, 0x70, 0x90, 0x9D, 0x01, 0x06, 0x34, + 0x39, 0xF4, 0xF2, 0x01, 0x10, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0xFC, 0x82, 0xEB, 0x82, 0x91, 0x2C, 0xA1, 0x2C, 0xEB, 0x81, 0xFC, 0x81, 0xEF, 0x2B, 0x09, 0xF4, + 0x50, 0xC0, 0x06, 0x34, 0x31, 0xF5, 0xAA, 0x20, 0x01, 0xF1, 0xC0, 0x90, 0x9A, 0x01, 0xD0, 0x90, + 0x9B, 0x01, 0xE0, 0x90, 0x9C, 0x01, 0xF0, 0x90, 0x9D, 0x01, 0x67, 0xDE, 0x29, 0x2D, 0x30, 0xE0, + 0x38, 0x2B, 0xF6, 0x01, 0x09, 0x01, 0xB0, 0x92, 0x57, 0x00, 0xE8, 0x95, 0x11, 0x24, 0xF2, 0xE0, + 0xCF, 0x0E, 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9A, 0x01, 0xD0, 0x92, 0x9B, 0x01, + 0xE0, 0x92, 0x9C, 0x01, 0xF0, 0x92, 0x9D, 0x01, 0x02, 0xC0, 0x4F, 0xDE, 0x98, 0x2E, 0xAB, 0x24, + 0x22, 0xC0, 0x4B, 0xDE, 0x68, 0x2F, 0x80, 0x91, 0x9A, 0x01, 0x90, 0x91, 0x9B, 0x01, 0xA0, 0x91, + 0x9C, 0x01, 0xB0, 0x91, 0x9D, 0x01, 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0xE7, 0xD4, + 0x80, 0x91, 0x9A, 0x01, 0x90, 0x91, 0x9B, 0x01, 0xA0, 0x91, 0x9C, 0x01, 0xB0, 0x91, 0x9D, 0x01, + 0x02, 0x96, 0xA1, 0x1D, 0xB1, 0x1D, 0x80, 0x93, 0x9A, 0x01, 0x90, 0x93, 0x9B, 0x01, 0xA0, 0x93, + 0x9C, 0x01, 0xB0, 0x93, 0x9D, 0x01, 0x8B, 0x81, 0x9C, 0x81, 0x01, 0x97, 0x9C, 0x83, 0x8B, 0x83, + 0xAB, 0xCF, 0x06, 0x34, 0x09, 0xF0, 0xCF, 0xCE, 0xF2, 0x01, 0x80, 0x92, 0x57, 0x00, 0xE8, 0x95, + 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xC7, 0xCE, 0x9B, 0x31, 0x09, 0xF0, 0x3F, 0xCF, 0x04, 0xC0, + 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, 0x55, 0xC0, 0x8F, 0xB7, 0xF8, 0x94, 0x90, 0x91, 0xA3, 0x01, + 0x8F, 0xBF, 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, 0x06, 0xC0, 0x99, 0x23, 0x09, 0xF4, 0x49, 0xC0, + 0x5D, 0x98, 0x10, 0x93, 0xA0, 0x01, 0xF9, 0x2E, 0xFF, 0x20, 0xB1, 0xF0, 0x00, 0x91, 0xA2, 0x01, + 0xE0, 0x2F, 0xF0, 0xE0, 0xEC, 0x55, 0xFE, 0x4F, 0x80, 0x81, 0x0E, 0xDE, 0x0F, 0x5F, 0x0F, 0x77, + 0x00, 0x93, 0xA2, 0x01, 0x9F, 0xB7, 0xF8, 0x94, 0x80, 0x91, 0xA3, 0x01, 0x81, 0x50, 0x80, 0x93, + 0xA3, 0x01, 0x9F, 0xBF, 0xFA, 0x94, 0xE8, 0xCF, 0x10, 0x93, 0xE9, 0x00, 0x90, 0x91, 0xE8, 0x00, + 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x95, 0xFD, 0x1D, 0xC0, 0x80, 0x91, + 0xE8, 0x00, 0x80, 0xFD, 0x10, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, 0x80, 0x91, 0x9E, 0x01, + 0x88, 0x23, 0xB9, 0xF0, 0xF4, 0xE0, 0xF0, 0x93, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, + 0x80, 0x93, 0xE8, 0x00, 0x0E, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x03, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x51, 0xF3, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xF9, 0xCF, + 0xE5, 0xCF, 0x22, 0xD4, 0xA8, 0x9B, 0x15, 0xC0, 0xA8, 0x9A, 0x80, 0x91, 0xA0, 0x01, 0x88, 0x23, + 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, 0xA0, 0x01, 0x81, 0x11, 0x01, 0xC0, 0x5D, 0x9A, 0x80, 0x91, + 0x9F, 0x01, 0x88, 0x23, 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, 0x9F, 0x01, 0x81, 0x11, 0x01, 0xC0, + 0x5C, 0x9A, 0x80, 0x91, 0x00, 0x01, 0x81, 0x11, 0xF7, 0xCD, 0x8F, 0xE9, 0x9F, 0xE0, 0x01, 0x97, + 0xF1, 0xF7, 0x00, 0xC0, 0x00, 0x00, 0x80, 0x91, 0xE0, 0x00, 0x81, 0x60, 0x80, 0x93, 0xE0, 0x00, + 0x9C, 0xE0, 0x88, 0xE1, 0x0F, 0xB6, 0xF8, 0x94, 0xA8, 0x95, 0x80, 0x93, 0x60, 0x00, 0x0F, 0xBE, + 0x90, 0x93, 0x60, 0x00, 0xFF, 0xCF, 0x42, 0xE0, 0x61, 0xEC, 0x82, 0xE0, 0xE2, 0xD1, 0x42, 0xE3, + 0x61, 0xE8, 0x83, 0xE0, 0xDE, 0xD1, 0x42, 0xE3, 0x60, 0xE8, 0x84, 0xE0, 0xDA, 0xC1, 0xCF, 0x93, + 0x80, 0x91, 0x26, 0x02, 0x98, 0x2F, 0x9F, 0x77, 0x91, 0x32, 0x09, 0xF0, 0xC1, 0xC0, 0x90, 0x91, + 0x27, 0x02, 0x91, 0x32, 0x99, 0xF4, 0x81, 0x3A, 0x09, 0xF0, 0xBA, 0xC0, 0x80, 0x91, 0xE8, 0x00, + 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x67, 0xE0, 0x70, 0xE0, 0x81, 0xE0, 0x91, 0xE0, 0x65, 0xD1, + 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, 0xAA, 0xC0, 0x90, 0x32, 0x09, 0xF0, + 0x92, 0xC0, 0x81, 0x32, 0x09, 0xF0, 0xA4, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0xE1, 0xE0, 0xF1, 0xE0, 0x87, 0xE0, 0x88, 0x23, 0x09, 0xF1, 0x9E, 0xB3, 0x99, 0x23, + 0x11, 0xF1, 0x95, 0x30, 0x01, 0xF1, 0x90, 0x91, 0xE8, 0x00, 0x93, 0xFD, 0x1C, 0xC0, 0x90, 0x91, + 0xE8, 0x00, 0x92, 0xFF, 0xF1, 0xCF, 0x90, 0x91, 0xF2, 0x00, 0x99, 0x23, 0x29, 0xF0, 0x90, 0x91, + 0xF1, 0x00, 0x91, 0x93, 0x81, 0x50, 0xB9, 0xF7, 0x90, 0x91, 0xE8, 0x00, 0x9B, 0x77, 0x90, 0x93, + 0xE8, 0x00, 0xE2, 0xCF, 0x8E, 0xB3, 0x88, 0x23, 0x31, 0xF0, 0x85, 0x30, 0x21, 0xF0, 0x80, 0x91, + 0xE8, 0x00, 0x80, 0xFF, 0xF7, 0xCF, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x20, 0x91, 0x01, 0x01, 0x30, 0x91, 0x02, 0x01, 0x40, 0x91, 0x03, 0x01, 0x50, 0x91, 0x04, 0x01, + 0x21, 0x15, 0x81, 0xEE, 0x38, 0x07, 0x41, 0x05, 0x51, 0x05, 0x21, 0xF4, 0x81, 0xE0, 0x80, 0x93, + 0x9E, 0x01, 0x02, 0xC0, 0x10, 0x92, 0x9E, 0x01, 0x10, 0x92, 0xA3, 0x01, 0x10, 0x92, 0xA2, 0x01, + 0x10, 0x92, 0xA1, 0x01, 0x80, 0x91, 0x06, 0x01, 0x81, 0x30, 0x21, 0xF0, 0x82, 0x30, 0x21, 0xF4, + 0xC0, 0xE2, 0x03, 0xC0, 0xC0, 0xE3, 0x01, 0xC0, 0xC0, 0xE0, 0x80, 0x91, 0x05, 0x01, 0x82, 0x30, + 0x09, 0xF4, 0xC8, 0x60, 0x80, 0x91, 0x07, 0x01, 0x87, 0x30, 0x31, 0xF0, 0x88, 0x30, 0x31, 0xF0, + 0x86, 0x30, 0x29, 0xF4, 0xC2, 0x60, 0x03, 0xC0, 0xC4, 0x60, 0x01, 0xC0, 0xC6, 0x60, 0x5B, 0x9A, + 0x10, 0x92, 0xC9, 0x00, 0x10, 0x92, 0xC8, 0x00, 0x10, 0x92, 0xCA, 0x00, 0xDA, 0x01, 0xC9, 0x01, + 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0xBC, 0x01, 0xCD, 0x01, 0x60, 0x58, 0x7B, 0x47, + 0x81, 0x4E, 0x9F, 0x4F, 0x5A, 0xD3, 0x21, 0x50, 0x31, 0x09, 0x30, 0x93, 0xCD, 0x00, 0x20, 0x93, + 0xCC, 0x00, 0xC0, 0x93, 0xCA, 0x00, 0x82, 0xE0, 0x80, 0x93, 0xC8, 0x00, 0x88, 0xE9, 0x80, 0x93, + 0xC9, 0x00, 0x5B, 0x98, 0x15, 0xC0, 0x92, 0x32, 0x99, 0xF4, 0x81, 0x32, 0x89, 0xF4, 0x80, 0x91, + 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x30, 0xD1, 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, + 0x06, 0xC0, 0x80, 0x91, 0x28, 0x02, 0x80, 0xFF, 0x02, 0xC0, 0x5F, 0x98, 0x01, 0xC0, 0x5F, 0x9A, + 0xCF, 0x91, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, 0x0F, 0x92, 0x11, 0x24, 0x8F, 0x93, + 0x9F, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x90, 0x91, 0xCE, 0x00, 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, + 0x17, 0xC0, 0x8E, 0xB3, 0x84, 0x30, 0xA1, 0xF4, 0x80, 0x91, 0xA3, 0x01, 0x87, 0xFD, 0x10, 0xC0, + 0x80, 0x91, 0xA1, 0x01, 0xE8, 0x2F, 0xF0, 0xE0, 0xEC, 0x55, 0xFE, 0x4F, 0x90, 0x83, 0x8F, 0x5F, + 0x8F, 0x77, 0x80, 0x93, 0xA1, 0x01, 0x80, 0x91, 0xA3, 0x01, 0x8F, 0x5F, 0x80, 0x93, 0xA3, 0x01, + 0xFF, 0x91, 0xEF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, + 0x18, 0x95, 0x29, 0x2F, 0x30, 0xE0, 0x22, 0x30, 0x31, 0x05, 0x59, 0xF0, 0x23, 0x30, 0x31, 0x05, + 0x69, 0xF0, 0x21, 0x30, 0x31, 0x05, 0xF9, 0xF4, 0x82, 0xE1, 0x90, 0xE0, 0x20, 0xE8, 0x31, 0xE0, + 0x1E, 0xC0, 0x8E, 0xE3, 0x90, 0xE0, 0x22, 0xE4, 0x31, 0xE0, 0x19, 0xC0, 0x88, 0x23, 0x49, 0xF0, + 0x81, 0x30, 0x61, 0xF0, 0x82, 0x30, 0x79, 0xF4, 0x80, 0xE2, 0x90, 0xE0, 0x28, 0xE0, 0x31, 0xE0, + 0x0E, 0xC0, 0x84, 0xE0, 0x90, 0xE0, 0x2E, 0xE3, 0x31, 0xE0, 0x09, 0xC0, 0x82, 0xE1, 0x90, 0xE0, + 0x2A, 0xE2, 0x31, 0xE0, 0x04, 0xC0, 0x80, 0xE0, 0x90, 0xE0, 0x20, 0xE0, 0x30, 0xE0, 0xFA, 0x01, + 0x31, 0x83, 0x20, 0x83, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, + 0x23, 0xE0, 0xFB, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0xF9, 0x99, 0xFE, 0xCF, 0x25, 0xE0, 0xFB, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, 0x21, 0xE0, 0xFB, 0x01, 0x0A, 0x01, 0x20, 0x93, + 0x57, 0x00, 0xE8, 0x95, 0x11, 0x24, 0x08, 0x95, 0x21, 0xE2, 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, + 0x84, 0x91, 0x08, 0x95, 0x29, 0xE0, 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, + 0xE1, 0xE0, 0xF0, 0xE0, 0x89, 0xE0, 0x80, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, 0x80, 0x95, 0x99, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, + 0x08, 0x2E, 0x90, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x20, 0x91, 0x2C, 0x02, 0x30, 0x91, + 0x2D, 0x02, 0x26, 0x17, 0x37, 0x07, 0x48, 0xF0, 0x61, 0x15, 0x71, 0x05, 0x39, 0xF4, 0x20, 0x91, + 0xE8, 0x00, 0x2E, 0x77, 0x20, 0x93, 0xE8, 0x00, 0x01, 0xC0, 0xB9, 0x01, 0x40, 0xE0, 0x61, 0x15, + 0x71, 0x05, 0x79, 0xF1, 0x2E, 0xB3, 0x22, 0x23, 0xF1, 0xF1, 0x25, 0x30, 0xF1, 0xF1, 0x20, 0x91, + 0xE8, 0x00, 0x23, 0xFD, 0x3C, 0xC0, 0x20, 0x91, 0xE8, 0x00, 0x22, 0xFD, 0x2E, 0xC0, 0x20, 0x91, + 0xE8, 0x00, 0x20, 0xFF, 0xEC, 0xCF, 0x20, 0x91, 0xF2, 0x00, 0x30, 0xE0, 0xFC, 0x01, 0xCF, 0x01, + 0x61, 0x15, 0x71, 0x05, 0x59, 0xF0, 0x28, 0x30, 0x31, 0x05, 0x40, 0xF4, 0x81, 0x91, 0x80, 0x93, + 0xF1, 0x00, 0x61, 0x50, 0x71, 0x09, 0x2F, 0x5F, 0x3F, 0x4F, 0xF1, 0xCF, 0x41, 0xE0, 0x28, 0x30, + 0x31, 0x05, 0x09, 0xF0, 0x40, 0xE0, 0x20, 0x91, 0xE8, 0x00, 0x2E, 0x77, 0x20, 0x93, 0xE8, 0x00, + 0xCE, 0xCF, 0x41, 0x11, 0xCF, 0xCF, 0x09, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x61, 0xF0, 0x85, 0x30, + 0x61, 0xF0, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFD, 0x0A, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFF, + 0xF3, 0xCF, 0x80, 0xE0, 0x08, 0x95, 0x82, 0xE0, 0x08, 0x95, 0x83, 0xE0, 0x08, 0x95, 0x81, 0xE0, + 0x08, 0x95, 0x8F, 0x70, 0x80, 0x93, 0xE9, 0x00, 0xEB, 0xEE, 0xF0, 0xE0, 0x80, 0x81, 0x81, 0x60, + 0x80, 0x83, 0xED, 0xEE, 0xF0, 0xE0, 0x10, 0x82, 0x60, 0x93, 0xEC, 0x00, 0x40, 0x83, 0x80, 0x91, + 0xEE, 0x00, 0x88, 0x1F, 0x88, 0x27, 0x88, 0x1F, 0x08, 0x95, 0x80, 0x91, 0x26, 0x02, 0x87, 0xFF, + 0x0F, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFD, 0x04, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, + 0x10, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x0A, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x49, 0xF0, + 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xF9, 0xCF, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x08, 0x95, 0x3C, 0xD0, 0x3E, 0xD0, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x77, 0x80, 0x93, + 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, 0x80, 0x68, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, + 0x8F, 0x7D, 0x80, 0x93, 0xD8, 0x00, 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, 0x89, 0xBD, 0x09, 0xB4, + 0x00, 0xFE, 0xFD, 0xCF, 0x1E, 0xBA, 0x10, 0x92, 0x24, 0x02, 0x42, 0xE0, 0x60, 0xE0, 0x80, 0xE0, + 0xB0, 0xDF, 0x80, 0x91, 0xE1, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, + 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x88, 0x60, 0x80, 0x93, 0xE2, 0x00, + 0x80, 0x91, 0xE0, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE0, 0x00, 0x08, 0x95, 0xE3, 0xE6, 0xF0, 0xE0, + 0x80, 0x81, 0x8E, 0x7F, 0x80, 0x83, 0x81, 0xE0, 0x80, 0x93, 0x25, 0x02, 0xC3, 0xCF, 0x10, 0x92, + 0xE2, 0x00, 0x08, 0x95, 0x10, 0x92, 0xE1, 0x00, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, + 0x0F, 0x92, 0x11, 0x24, 0x2F, 0x93, 0x3F, 0x93, 0x4F, 0x93, 0x5F, 0x93, 0x6F, 0x93, 0x7F, 0x93, + 0x8F, 0x93, 0x9F, 0x93, 0xAF, 0x93, 0xBF, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x80, 0x91, 0xE1, 0x00, + 0x80, 0xFF, 0x16, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x80, 0xFF, 0x12, 0xC0, 0x80, 0x91, 0xE2, 0x00, + 0x8E, 0x7F, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, 0x80, 0x93, 0xE2, 0x00, + 0x80, 0x91, 0xD8, 0x00, 0x80, 0x62, 0x80, 0x93, 0xD8, 0x00, 0x19, 0xBC, 0x1E, 0xBA, 0x6B, 0xD1, + 0x80, 0x91, 0xE1, 0x00, 0x84, 0xFF, 0x2E, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x84, 0xFF, 0x2A, 0xC0, + 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, 0x89, 0xBD, 0x09, 0xB4, 0x00, 0xFE, 0xFD, 0xCF, 0x80, 0x91, + 0xD8, 0x00, 0x8F, 0x7D, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xE1, 0x00, 0x8F, 0x7E, 0x80, 0x93, + 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x8F, 0x7E, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, + 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0x24, 0x02, 0x88, 0x23, 0x11, 0xF0, 0x84, 0xE0, + 0x07, 0xC0, 0x80, 0x91, 0xE3, 0x00, 0x87, 0xFD, 0x02, 0xC0, 0x81, 0xE0, 0x01, 0xC0, 0x83, 0xE0, + 0x8E, 0xBB, 0x39, 0xD1, 0x80, 0x91, 0xE1, 0x00, 0x83, 0xFF, 0x21, 0xC0, 0x80, 0x91, 0xE2, 0x00, + 0x83, 0xFF, 0x1D, 0xC0, 0x80, 0x91, 0xE1, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x82, 0xE0, + 0x8E, 0xBB, 0x10, 0x92, 0x24, 0x02, 0x80, 0x91, 0xE1, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, + 0x80, 0x91, 0xE2, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, + 0x80, 0x93, 0xE2, 0x00, 0x42, 0xE0, 0x60, 0xE0, 0x80, 0xE0, 0x0B, 0xDF, 0x14, 0xD1, 0xFF, 0x91, + 0xEF, 0x91, 0xBF, 0x91, 0xAF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x7F, 0x91, 0x6F, 0x91, 0x5F, 0x91, + 0x4F, 0x91, 0x3F, 0x91, 0x2F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, 0x18, 0x95, + 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0xCD, 0xB7, 0xDE, 0xB7, 0xE6, 0xE2, 0xF2, 0xE0, + 0x88, 0xE0, 0x8E, 0x0F, 0x90, 0x91, 0xF1, 0x00, 0x91, 0x93, 0x8E, 0x13, 0xFB, 0xCF, 0x0F, 0xDD, + 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFF, 0xDB, 0xC0, 0x80, 0x91, 0x26, 0x02, 0x90, 0x91, 0x27, 0x02, + 0x95, 0x30, 0x09, 0xF4, 0x66, 0xC0, 0x30, 0xF4, 0x91, 0x30, 0x59, 0xF1, 0x68, 0xF0, 0x93, 0x30, + 0x41, 0xF1, 0xCD, 0xC0, 0x98, 0x30, 0x09, 0xF4, 0x9D, 0xC0, 0x99, 0x30, 0x09, 0xF4, 0xAC, 0xC0, + 0x96, 0x30, 0x09, 0xF0, 0xC4, 0xC0, 0x76, 0xC0, 0x80, 0x38, 0x81, 0xF0, 0x82, 0x38, 0x09, 0xF0, + 0xBE, 0xC0, 0x80, 0x91, 0x2A, 0x02, 0x8F, 0x70, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, 0xEB, 0x00, + 0x85, 0xFB, 0x88, 0x27, 0x80, 0xF9, 0x10, 0x92, 0xE9, 0x00, 0x01, 0xC0, 0x80, 0xE0, 0x90, 0x91, + 0xE8, 0x00, 0x97, 0x7F, 0x90, 0x93, 0xE8, 0x00, 0x80, 0x93, 0xF1, 0x00, 0x10, 0x92, 0xF1, 0x00, + 0x84, 0xC0, 0x28, 0x2F, 0x2D, 0x7F, 0x09, 0xF0, 0xA2, 0xC0, 0x82, 0x30, 0x09, 0xF0, 0x9F, 0xC0, + 0x80, 0x91, 0x28, 0x02, 0x81, 0x11, 0x27, 0xC0, 0x80, 0x91, 0x2A, 0x02, 0x8F, 0x70, 0x09, 0xF4, + 0x96, 0xC0, 0x80, 0x93, 0xE9, 0x00, 0x20, 0x91, 0xEB, 0x00, 0x20, 0xFF, 0x1C, 0xC0, 0x93, 0x30, + 0x21, 0xF4, 0x80, 0x91, 0xEB, 0x00, 0x80, 0x62, 0x14, 0xC0, 0x90, 0x91, 0xEB, 0x00, 0x90, 0x61, + 0x90, 0x93, 0xEB, 0x00, 0x21, 0xE0, 0x30, 0xE0, 0xA9, 0x01, 0x02, 0xC0, 0x44, 0x0F, 0x55, 0x1F, + 0x8A, 0x95, 0xE2, 0xF7, 0x40, 0x93, 0xEA, 0x00, 0x10, 0x92, 0xEA, 0x00, 0x80, 0x91, 0xEB, 0x00, + 0x88, 0x60, 0x80, 0x93, 0xEB, 0x00, 0x10, 0x92, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, + 0x4F, 0xC0, 0x81, 0x11, 0x6C, 0xC0, 0x10, 0x91, 0x28, 0x02, 0x1F, 0x77, 0x80, 0x91, 0xE3, 0x00, + 0x80, 0x78, 0x81, 0x2B, 0x80, 0x93, 0xE3, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0x7B, 0xDE, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xFC, 0xCF, 0x80, 0x91, 0xE3, 0x00, + 0x80, 0x68, 0x80, 0x93, 0xE3, 0x00, 0x11, 0x11, 0x02, 0xC0, 0x82, 0xE0, 0x01, 0xC0, 0x83, 0xE0, + 0x8E, 0xBB, 0x4D, 0xC0, 0x80, 0x58, 0x82, 0x30, 0x08, 0xF0, 0x49, 0xC0, 0xAE, 0x01, 0x4F, 0x5F, + 0x5F, 0x4F, 0x60, 0x91, 0x2A, 0x02, 0x80, 0x91, 0x28, 0x02, 0x90, 0x91, 0x29, 0x02, 0x69, 0xDD, + 0xBC, 0x01, 0x00, 0x97, 0x09, 0xF4, 0x3B, 0xC0, 0x90, 0x91, 0xE8, 0x00, 0x97, 0x7F, 0x90, 0x93, + 0xE8, 0x00, 0x89, 0x81, 0x9A, 0x81, 0xE1, 0xDD, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x2D, 0xC0, 0x80, 0x38, 0x59, 0xF5, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0x80, 0x91, 0x24, 0x02, 0x80, 0x93, 0xF1, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, + 0x80, 0x93, 0xE8, 0x00, 0x3A, 0xDE, 0x1B, 0xC0, 0x81, 0x11, 0x19, 0xC0, 0x90, 0x91, 0x28, 0x02, + 0x92, 0x30, 0xA8, 0xF4, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x90, 0x93, + 0x24, 0x02, 0x2B, 0xDE, 0x80, 0x91, 0x24, 0x02, 0x81, 0x11, 0x06, 0xC0, 0x80, 0x91, 0xE3, 0x00, + 0x87, 0xFD, 0x02, 0xC0, 0x81, 0xE0, 0x01, 0xC0, 0x84, 0xE0, 0x8E, 0xBB, 0x24, 0xDC, 0x80, 0x91, + 0xE8, 0x00, 0x83, 0xFF, 0x0A, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, + 0x80, 0x91, 0xEB, 0x00, 0x80, 0x62, 0x80, 0x93, 0xEB, 0x00, 0x0F, 0x90, 0x0F, 0x90, 0xDF, 0x91, + 0xCF, 0x91, 0x1F, 0x91, 0x08, 0x95, 0x08, 0x95, 0xCF, 0x93, 0x8E, 0xB3, 0x88, 0x23, 0x99, 0xF0, + 0xC0, 0x91, 0xE9, 0x00, 0xCF, 0x70, 0x90, 0x91, 0xEC, 0x00, 0x89, 0x2F, 0x81, 0x70, 0x90, 0xFD, + 0x80, 0xE8, 0xC8, 0x2B, 0x10, 0x92, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFD, 0xE8, 0xDE, + 0xCF, 0x70, 0xC0, 0x93, 0xE9, 0x00, 0xCF, 0x91, 0x08, 0x95, 0xA1, 0xE2, 0x1A, 0x2E, 0xAA, 0x1B, + 0xBB, 0x1B, 0xFD, 0x01, 0x0D, 0xC0, 0xAA, 0x1F, 0xBB, 0x1F, 0xEE, 0x1F, 0xFF, 0x1F, 0xA2, 0x17, + 0xB3, 0x07, 0xE4, 0x07, 0xF5, 0x07, 0x20, 0xF0, 0xA2, 0x1B, 0xB3, 0x0B, 0xE4, 0x0B, 0xF5, 0x0B, + 0x66, 0x1F, 0x77, 0x1F, 0x88, 0x1F, 0x99, 0x1F, 0x1A, 0x94, 0x69, 0xF7, 0x60, 0x95, 0x70, 0x95, + 0x80, 0x95, 0x90, 0x95, 0x9B, 0x01, 0xAC, 0x01, 0xBD, 0x01, 0xCF, 0x01, 0x08, 0x95, 0xF9, 0x99, + 0xFE, 0xCF, 0x92, 0xBD, 0x81, 0xBD, 0xF8, 0x9A, 0x99, 0x27, 0x80, 0xB5, 0x08, 0x95, 0x26, 0x2F, + 0xF9, 0x99, 0xFE, 0xCF, 0x1F, 0xBA, 0x92, 0xBD, 0x81, 0xBD, 0x20, 0xBD, 0x0F, 0xB6, 0xF8, 0x94, + 0xFA, 0x9A, 0xF9, 0x9A, 0x0F, 0xBE, 0x01, 0x96, 0x08, 0x95, 0xF8, 0x94, 0xFF, 0xCF, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x03, 0x48, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, + 0x4C, 0x00, 0x6F, 0x00, 0x61, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x32, 0x00, 0x20, 0x00, + 0x55, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x12, 0x03, 0x4E, 0x00, 0x69, 0x00, 0x63, 0x00, + 0x6F, 0x00, 0x48, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x00, 0x00, 0x04, 0x03, 0x09, 0x04, + 0x09, 0x02, 0x3E, 0x00, 0x02, 0x01, 0x00, 0x80, 0x32, 0x09, 0x04, 0x00, 0x00, 0x01, 0x02, 0x02, + 0x01, 0x00, 0x05, 0x24, 0x00, 0x10, 0x01, 0x04, 0x24, 0x02, 0x02, 0x05, 0x24, 0x06, 0x00, 0x01, + 0x07, 0x05, 0x82, 0x03, 0x08, 0x00, 0xFF, 0x09, 0x04, 0x01, 0x00, 0x02, 0x0A, 0x00, 0x00, 0x00, + 0x07, 0x05, 0x04, 0x02, 0x40, 0x00, 0x05, 0x07, 0x05, 0x83, 0x02, 0x40, 0x00, 0x05, 0x12, 0x01, + 0x10, 0x01, 0x02, 0x00, 0x00, 0x08, 0x41, 0x23, 0x43, 0x00, 0x04, 0x02, 0x01, 0x02, 0x00, 0x01, + 0x48, 0x4C, 0x32, 0x2E, 0x30, 0x2E, 0x34, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x6A, 0xCC, 0x7B, 0xCC, 0x8C, 0xCC, 0x98, 0xCC, 0x9D, 0xCC, 0xA2, 0xCC, 0xA8, 0xCC, 0x08, 0x95, + 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, + 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0x00, 0x30, 0x00, 0x00, 0x00, 0xDF, 0xFB, 0xDC, +}; // end of HoodLoader2_0_4_Uno_16u2_hex + +// File = HoodLoader2_0_4_Mega_16u2.hex +// Loader start: 3000, length: 4096 +// MD5 sum = B1 B2 A3 24 85 02 93 ED 5E 02 82 85 6B 52 78 7D + +const byte HoodLoader2_0_4_Mega_16u2_hex[] PROGMEM = { + 0x39, 0xC0, 0x00, 0x00, 0x83, 0xC0, 0x00, 0x00, 0x81, 0xC0, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x00, + 0x7D, 0xC0, 0x00, 0x00, 0x7B, 0xC0, 0x00, 0x00, 0x79, 0xC0, 0x00, 0x00, 0x77, 0xC0, 0x00, 0x00, + 0x75, 0xC0, 0x00, 0x00, 0x73, 0xC0, 0x00, 0x00, 0x71, 0xC0, 0x00, 0x00, 0x46, 0xC5, 0x00, 0x00, + 0x6D, 0xC0, 0x00, 0x00, 0x6B, 0xC0, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x00, 0x67, 0xC0, 0x00, 0x00, + 0x65, 0xC0, 0x00, 0x00, 0x63, 0xC0, 0x00, 0x00, 0x61, 0xC0, 0x00, 0x00, 0x5F, 0xC0, 0x00, 0x00, + 0x5D, 0xC0, 0x00, 0x00, 0x5B, 0xC0, 0x00, 0x00, 0x59, 0xC0, 0x00, 0x00, 0xAB, 0xC3, 0x00, 0x00, + 0x55, 0xC0, 0x00, 0x00, 0x53, 0xC0, 0x00, 0x00, 0x51, 0xC0, 0x00, 0x00, 0x4F, 0xC0, 0x00, 0x00, + 0x4D, 0xC0, 0x00, 0x00, 0x11, 0x24, 0x1F, 0xBE, 0xCF, 0xEF, 0xD2, 0xE0, 0xDE, 0xBF, 0xCD, 0xBF, + 0x90, 0x91, 0x80, 0x02, 0x10, 0x92, 0x80, 0x02, 0x84, 0xB7, 0x14, 0xBE, 0x28, 0xE1, 0x0F, 0xB6, + 0xF8, 0x94, 0x20, 0x93, 0x60, 0x00, 0x10, 0x92, 0x60, 0x00, 0x0F, 0xBE, 0xE0, 0xE0, 0xF0, 0xE0, + 0x25, 0x91, 0x34, 0x91, 0x2F, 0x3F, 0x3F, 0x4F, 0xE1, 0xF0, 0x81, 0xFF, 0x12, 0xC0, 0x97, 0x37, + 0xC1, 0xF0, 0x87, 0xE7, 0x80, 0x93, 0x80, 0x02, 0x8F, 0xEF, 0x9E, 0xE9, 0x24, 0xE2, 0x81, 0x50, + 0x90, 0x40, 0x20, 0x40, 0xE1, 0xF7, 0x00, 0xC0, 0x00, 0x00, 0x10, 0x92, 0x80, 0x02, 0x1F, 0xD0, + 0x08, 0xC0, 0x80, 0xFF, 0x02, 0xC0, 0x1B, 0xD0, 0x04, 0xC0, 0x83, 0xFF, 0x02, 0xC0, 0x97, 0x37, + 0xD1, 0xF7, 0x11, 0xE0, 0xA0, 0xE0, 0xB1, 0xE0, 0xEE, 0xE8, 0xFE, 0xE3, 0x02, 0xC0, 0x05, 0x90, + 0x0D, 0x92, 0xAC, 0x39, 0xB1, 0x07, 0xD9, 0xF7, 0x12, 0xE0, 0xAC, 0xE9, 0xB1, 0xE0, 0x01, 0xC0, + 0x1D, 0x92, 0xA0, 0x33, 0xB1, 0x07, 0xE1, 0xF7, 0x36, 0xD0, 0xBF, 0xC6, 0x79, 0xCF, 0x8B, 0xB1, + 0x80, 0x63, 0x8B, 0xB9, 0xE0, 0xE0, 0xF0, 0xE0, 0x09, 0x94, 0x84, 0xE0, 0x80, 0x93, 0xE9, 0x00, + 0x80, 0x91, 0xE8, 0x00, 0x85, 0xFD, 0x0D, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFD, 0xF3, 0xCF, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, + 0x02, 0xC0, 0x80, 0x91, 0xF1, 0x00, 0x08, 0x95, 0x93, 0xE0, 0x90, 0x93, 0xE9, 0x00, 0x90, 0x91, + 0xE8, 0x00, 0x95, 0xFF, 0x03, 0xC0, 0x80, 0x93, 0xF1, 0x00, 0x08, 0x95, 0x90, 0x91, 0xE8, 0x00, + 0x9E, 0x77, 0x90, 0x93, 0xE8, 0x00, 0x90, 0x91, 0xE8, 0x00, 0x90, 0xFD, 0xF4, 0xCF, 0x9E, 0xB3, + 0x91, 0x11, 0xF9, 0xCF, 0x08, 0x95, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0x00, 0xD0, 0xCD, 0xB7, + 0xDE, 0xB7, 0x90, 0xE0, 0x80, 0xE8, 0x0F, 0xB6, 0xF8, 0x94, 0x80, 0x93, 0x61, 0x00, 0x90, 0x93, + 0x61, 0x00, 0x0F, 0xBE, 0x81, 0xE0, 0x85, 0xBF, 0x82, 0xE0, 0x85, 0xBF, 0x7F, 0xD4, 0x84, 0xE0, + 0x85, 0xBD, 0x8A, 0xB1, 0x88, 0x6B, 0x8A, 0xB9, 0x8B, 0xB1, 0x84, 0x6B, 0x8B, 0xB9, 0x78, 0x94, + 0x13, 0xE0, 0xBB, 0x24, 0xB3, 0x94, 0xE5, 0xE0, 0x8E, 0x2E, 0x21, 0x2C, 0x31, 0x2C, 0x84, 0xE9, + 0x91, 0xE0, 0x27, 0xE0, 0x28, 0x0F, 0x29, 0x83, 0x84, 0xE0, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, + 0xE8, 0x00, 0x82, 0xFF, 0x8D, 0xC1, 0xA1, 0xDF, 0x98, 0x2F, 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, + 0x13, 0xC0, 0x80, 0x91, 0xC8, 0x00, 0x85, 0xFF, 0xFC, 0xCF, 0x90, 0x93, 0xCE, 0x00, 0x80, 0x91, + 0xF2, 0x00, 0x81, 0x11, 0x05, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x5C, 0x98, 0x10, 0x93, 0xA1, 0x01, 0x78, 0xC1, 0x95, 0x34, 0x19, 0xF4, 0x10, 0x92, 0x00, 0x01, + 0x32, 0xC0, 0x88, 0xE8, 0x89, 0x0F, 0x82, 0x30, 0x10, 0xF0, 0x94, 0x35, 0x11, 0xF4, 0x7D, 0xDF, + 0x2A, 0xC0, 0x90, 0x35, 0x41, 0xF1, 0x9C, 0x34, 0x31, 0xF1, 0x94, 0x37, 0x21, 0xF4, 0x84, 0xE4, + 0x8B, 0xDF, 0x80, 0xE0, 0x03, 0xC0, 0x91, 0x36, 0x19, 0xF4, 0x89, 0xE5, 0x85, 0xDF, 0x5C, 0xC1, + 0x91, 0x34, 0xD9, 0xF4, 0x6A, 0xDF, 0x08, 0x2F, 0x68, 0xDF, 0x90, 0xE0, 0x88, 0x0F, 0x99, 0x1F, + 0x20, 0x2F, 0x30, 0xE0, 0x32, 0x2F, 0x22, 0x27, 0x33, 0x0F, 0x82, 0x2B, 0x93, 0x2B, 0xAA, 0x27, + 0x97, 0xFD, 0xA0, 0x95, 0xBA, 0x2F, 0x80, 0x93, 0x9C, 0x01, 0x90, 0x93, 0x9D, 0x01, 0xA0, 0x93, + 0x9E, 0x01, 0xB0, 0x93, 0x9F, 0x01, 0x8D, 0xE0, 0xE1, 0xCF, 0x90, 0x37, 0x11, 0xF4, 0x83, 0xE5, + 0xDD, 0xCF, 0x93, 0x35, 0x61, 0xF4, 0x54, 0xE9, 0xE5, 0x2E, 0x51, 0xE0, 0xF5, 0x2E, 0xF7, 0x01, + 0x81, 0x91, 0x7F, 0x01, 0x59, 0xDF, 0x29, 0x81, 0x2E, 0x11, 0xF9, 0xCF, 0x2D, 0xC1, 0x96, 0x35, + 0x21, 0xF4, 0x81, 0xE3, 0x51, 0xDF, 0x80, 0xE3, 0xC9, 0xCF, 0x93, 0x37, 0x31, 0xF4, 0x89, 0xE8, + 0x4B, 0xDF, 0x84, 0xE9, 0x49, 0xDF, 0x8E, 0xE1, 0xC1, 0xCF, 0x95, 0x36, 0xA9, 0xF4, 0xE0, 0xE0, + 0xF0, 0xE0, 0x10, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0x80, 0x92, + 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xE0, 0x58, 0xFF, 0x4F, 0xE1, 0x15, + 0x80, 0xE3, 0xF8, 0x07, 0x71, 0xF7, 0xC7, 0xCF, 0x9C, 0x36, 0x51, 0xF4, 0x16, 0xDF, 0x80, 0x95, + 0x99, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x08, 0x2E, 0x90, 0x93, 0x57, 0x00, 0xE8, 0x95, 0xBB, 0xCF, + 0x92, 0x37, 0x21, 0xF4, 0x89, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x10, 0xC0, 0x96, 0x34, 0x19, 0xF4, + 0x89, 0xE0, 0xF1, 0x01, 0x0B, 0xC0, 0x9E, 0x34, 0x21, 0xF4, 0x89, 0xE0, 0xE3, 0xE0, 0xF0, 0xE0, + 0x05, 0xC0, 0x91, 0x35, 0x39, 0xF4, 0x89, 0xE0, 0xE2, 0xE0, 0xF0, 0xE0, 0x80, 0x93, 0x57, 0x00, + 0x84, 0x91, 0x84, 0xCF, 0x92, 0x36, 0x31, 0xF4, 0x89, 0xE5, 0x06, 0xDF, 0x80, 0xE0, 0x04, 0xDF, + 0x80, 0xE8, 0x7C, 0xCF, 0x92, 0x34, 0x19, 0xF0, 0x97, 0x36, 0x09, 0xF0, 0xCD, 0xC0, 0x9A, 0x83, + 0xE4, 0xDE, 0xE8, 0x2E, 0xF1, 0x2C, 0xFE, 0x2C, 0xEE, 0x24, 0xDF, 0xDE, 0xE8, 0x2A, 0xDD, 0xDE, + 0x08, 0x2F, 0x8B, 0xEB, 0x80, 0x0F, 0x9A, 0x81, 0x82, 0x30, 0x10, 0xF0, 0x8F, 0xE3, 0x66, 0xCF, + 0x97, 0x36, 0x09, 0xF0, 0x44, 0xC0, 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x37, 0x01, + 0xA1, 0x2C, 0x61, 0x14, 0x71, 0x04, 0x09, 0xF4, 0xB7, 0xC0, 0xC0, 0x90, 0x9C, 0x01, 0xD0, 0x90, + 0x9D, 0x01, 0xE0, 0x90, 0x9E, 0x01, 0xF0, 0x90, 0x9F, 0x01, 0x06, 0x34, 0xB9, 0xF4, 0xEA, 0x2D, + 0xF0, 0xE0, 0xEC, 0x29, 0xFD, 0x29, 0x84, 0x91, 0xCF, 0xDE, 0xAA, 0x20, 0x69, 0xF0, 0xF2, 0xE0, + 0xCF, 0x0E, 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9C, 0x01, 0xD0, 0x92, 0x9D, 0x01, + 0xE0, 0x92, 0x9E, 0x01, 0xF0, 0x92, 0x9F, 0x01, 0xAB, 0x24, 0x15, 0xC0, 0xD7, 0x01, 0xC6, 0x01, + 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0x42, 0xD5, 0xB6, 0xDE, 0x22, 0xE0, 0xC2, 0x0E, + 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9C, 0x01, 0xD0, 0x92, 0x9D, 0x01, 0xE0, 0x92, + 0x9E, 0x01, 0xF0, 0x92, 0x9F, 0x01, 0x81, 0xE0, 0x68, 0x1A, 0x71, 0x08, 0xC2, 0xCF, 0x40, 0x90, + 0x9C, 0x01, 0x50, 0x90, 0x9D, 0x01, 0x60, 0x90, 0x9E, 0x01, 0x70, 0x90, 0x9F, 0x01, 0x06, 0x34, + 0x39, 0xF4, 0xF2, 0x01, 0x10, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0xFC, 0x82, 0xEB, 0x82, 0x91, 0x2C, 0xA1, 0x2C, 0xEB, 0x81, 0xFC, 0x81, 0xEF, 0x2B, 0x09, 0xF4, + 0x50, 0xC0, 0x06, 0x34, 0x31, 0xF5, 0xAA, 0x20, 0x01, 0xF1, 0xC0, 0x90, 0x9C, 0x01, 0xD0, 0x90, + 0x9D, 0x01, 0xE0, 0x90, 0x9E, 0x01, 0xF0, 0x90, 0x9F, 0x01, 0x67, 0xDE, 0x29, 0x2D, 0x30, 0xE0, + 0x38, 0x2B, 0xF6, 0x01, 0x09, 0x01, 0xB0, 0x92, 0x57, 0x00, 0xE8, 0x95, 0x11, 0x24, 0xF2, 0xE0, + 0xCF, 0x0E, 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9C, 0x01, 0xD0, 0x92, 0x9D, 0x01, + 0xE0, 0x92, 0x9E, 0x01, 0xF0, 0x92, 0x9F, 0x01, 0x02, 0xC0, 0x4F, 0xDE, 0x98, 0x2E, 0xAB, 0x24, + 0x22, 0xC0, 0x4B, 0xDE, 0x68, 0x2F, 0x80, 0x91, 0x9C, 0x01, 0x90, 0x91, 0x9D, 0x01, 0xA0, 0x91, + 0x9E, 0x01, 0xB0, 0x91, 0x9F, 0x01, 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0xE7, 0xD4, + 0x80, 0x91, 0x9C, 0x01, 0x90, 0x91, 0x9D, 0x01, 0xA0, 0x91, 0x9E, 0x01, 0xB0, 0x91, 0x9F, 0x01, + 0x02, 0x96, 0xA1, 0x1D, 0xB1, 0x1D, 0x80, 0x93, 0x9C, 0x01, 0x90, 0x93, 0x9D, 0x01, 0xA0, 0x93, + 0x9E, 0x01, 0xB0, 0x93, 0x9F, 0x01, 0x8B, 0x81, 0x9C, 0x81, 0x01, 0x97, 0x9C, 0x83, 0x8B, 0x83, + 0xAB, 0xCF, 0x06, 0x34, 0x09, 0xF0, 0xCF, 0xCE, 0xF2, 0x01, 0x80, 0x92, 0x57, 0x00, 0xE8, 0x95, + 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xC7, 0xCE, 0x9B, 0x31, 0x09, 0xF0, 0x3F, 0xCF, 0x04, 0xC0, + 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, 0x55, 0xC0, 0x8F, 0xB7, 0xF8, 0x94, 0x90, 0x91, 0xA5, 0x01, + 0x8F, 0xBF, 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, 0x06, 0xC0, 0x99, 0x23, 0x09, 0xF4, 0x49, 0xC0, + 0x5D, 0x98, 0x10, 0x93, 0xA2, 0x01, 0xF9, 0x2E, 0xFF, 0x20, 0xB1, 0xF0, 0x00, 0x91, 0xA4, 0x01, + 0xE0, 0x2F, 0xF0, 0xE0, 0xEA, 0x55, 0xFE, 0x4F, 0x80, 0x81, 0x0E, 0xDE, 0x0F, 0x5F, 0x0F, 0x77, + 0x00, 0x93, 0xA4, 0x01, 0x9F, 0xB7, 0xF8, 0x94, 0x80, 0x91, 0xA5, 0x01, 0x81, 0x50, 0x80, 0x93, + 0xA5, 0x01, 0x9F, 0xBF, 0xFA, 0x94, 0xE8, 0xCF, 0x10, 0x93, 0xE9, 0x00, 0x90, 0x91, 0xE8, 0x00, + 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x95, 0xFD, 0x1D, 0xC0, 0x80, 0x91, + 0xE8, 0x00, 0x80, 0xFD, 0x10, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, 0x80, 0x91, 0xA0, 0x01, + 0x88, 0x23, 0xB9, 0xF0, 0xF4, 0xE0, 0xF0, 0x93, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, + 0x80, 0x93, 0xE8, 0x00, 0x0E, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x03, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x51, 0xF3, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xF9, 0xCF, + 0xE5, 0xCF, 0x22, 0xD4, 0xA8, 0x9B, 0x15, 0xC0, 0xA8, 0x9A, 0x80, 0x91, 0xA2, 0x01, 0x88, 0x23, + 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, 0xA2, 0x01, 0x81, 0x11, 0x01, 0xC0, 0x5D, 0x9A, 0x80, 0x91, + 0xA1, 0x01, 0x88, 0x23, 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, 0xA1, 0x01, 0x81, 0x11, 0x01, 0xC0, + 0x5C, 0x9A, 0x80, 0x91, 0x00, 0x01, 0x81, 0x11, 0xF7, 0xCD, 0x8F, 0xE9, 0x9F, 0xE0, 0x01, 0x97, + 0xF1, 0xF7, 0x00, 0xC0, 0x00, 0x00, 0x80, 0x91, 0xE0, 0x00, 0x81, 0x60, 0x80, 0x93, 0xE0, 0x00, + 0x9C, 0xE0, 0x88, 0xE1, 0x0F, 0xB6, 0xF8, 0x94, 0xA8, 0x95, 0x80, 0x93, 0x60, 0x00, 0x0F, 0xBE, + 0x90, 0x93, 0x60, 0x00, 0xFF, 0xCF, 0x42, 0xE0, 0x61, 0xEC, 0x82, 0xE0, 0xE2, 0xD1, 0x42, 0xE3, + 0x61, 0xE8, 0x83, 0xE0, 0xDE, 0xD1, 0x42, 0xE3, 0x60, 0xE8, 0x84, 0xE0, 0xDA, 0xC1, 0xCF, 0x93, + 0x80, 0x91, 0x28, 0x02, 0x98, 0x2F, 0x9F, 0x77, 0x91, 0x32, 0x09, 0xF0, 0xC1, 0xC0, 0x90, 0x91, + 0x29, 0x02, 0x91, 0x32, 0x99, 0xF4, 0x81, 0x3A, 0x09, 0xF0, 0xBA, 0xC0, 0x80, 0x91, 0xE8, 0x00, + 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x67, 0xE0, 0x70, 0xE0, 0x81, 0xE0, 0x91, 0xE0, 0x65, 0xD1, + 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, 0xAA, 0xC0, 0x90, 0x32, 0x09, 0xF0, + 0x92, 0xC0, 0x81, 0x32, 0x09, 0xF0, 0xA4, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0xE1, 0xE0, 0xF1, 0xE0, 0x87, 0xE0, 0x88, 0x23, 0x09, 0xF1, 0x9E, 0xB3, 0x99, 0x23, + 0x11, 0xF1, 0x95, 0x30, 0x01, 0xF1, 0x90, 0x91, 0xE8, 0x00, 0x93, 0xFD, 0x1C, 0xC0, 0x90, 0x91, + 0xE8, 0x00, 0x92, 0xFF, 0xF1, 0xCF, 0x90, 0x91, 0xF2, 0x00, 0x99, 0x23, 0x29, 0xF0, 0x90, 0x91, + 0xF1, 0x00, 0x91, 0x93, 0x81, 0x50, 0xB9, 0xF7, 0x90, 0x91, 0xE8, 0x00, 0x9B, 0x77, 0x90, 0x93, + 0xE8, 0x00, 0xE2, 0xCF, 0x8E, 0xB3, 0x88, 0x23, 0x31, 0xF0, 0x85, 0x30, 0x21, 0xF0, 0x80, 0x91, + 0xE8, 0x00, 0x80, 0xFF, 0xF7, 0xCF, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x20, 0x91, 0x01, 0x01, 0x30, 0x91, 0x02, 0x01, 0x40, 0x91, 0x03, 0x01, 0x50, 0x91, 0x04, 0x01, + 0x21, 0x15, 0x81, 0xEE, 0x38, 0x07, 0x41, 0x05, 0x51, 0x05, 0x21, 0xF4, 0x81, 0xE0, 0x80, 0x93, + 0xA0, 0x01, 0x02, 0xC0, 0x10, 0x92, 0xA0, 0x01, 0x10, 0x92, 0xA5, 0x01, 0x10, 0x92, 0xA4, 0x01, + 0x10, 0x92, 0xA3, 0x01, 0x80, 0x91, 0x06, 0x01, 0x81, 0x30, 0x21, 0xF0, 0x82, 0x30, 0x21, 0xF4, + 0xC0, 0xE2, 0x03, 0xC0, 0xC0, 0xE3, 0x01, 0xC0, 0xC0, 0xE0, 0x80, 0x91, 0x05, 0x01, 0x82, 0x30, + 0x09, 0xF4, 0xC8, 0x60, 0x80, 0x91, 0x07, 0x01, 0x87, 0x30, 0x31, 0xF0, 0x88, 0x30, 0x31, 0xF0, + 0x86, 0x30, 0x29, 0xF4, 0xC2, 0x60, 0x03, 0xC0, 0xC4, 0x60, 0x01, 0xC0, 0xC6, 0x60, 0x5B, 0x9A, + 0x10, 0x92, 0xC9, 0x00, 0x10, 0x92, 0xC8, 0x00, 0x10, 0x92, 0xCA, 0x00, 0xDA, 0x01, 0xC9, 0x01, + 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0xBC, 0x01, 0xCD, 0x01, 0x60, 0x58, 0x7B, 0x47, + 0x81, 0x4E, 0x9F, 0x4F, 0x5A, 0xD3, 0x21, 0x50, 0x31, 0x09, 0x30, 0x93, 0xCD, 0x00, 0x20, 0x93, + 0xCC, 0x00, 0xC0, 0x93, 0xCA, 0x00, 0x82, 0xE0, 0x80, 0x93, 0xC8, 0x00, 0x88, 0xE9, 0x80, 0x93, + 0xC9, 0x00, 0x5B, 0x98, 0x15, 0xC0, 0x92, 0x32, 0x99, 0xF4, 0x81, 0x32, 0x89, 0xF4, 0x80, 0x91, + 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x30, 0xD1, 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, + 0x06, 0xC0, 0x80, 0x91, 0x2A, 0x02, 0x80, 0xFF, 0x02, 0xC0, 0x5F, 0x98, 0x01, 0xC0, 0x5F, 0x9A, + 0xCF, 0x91, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, 0x0F, 0x92, 0x11, 0x24, 0x8F, 0x93, + 0x9F, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x90, 0x91, 0xCE, 0x00, 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, + 0x17, 0xC0, 0x8E, 0xB3, 0x84, 0x30, 0xA1, 0xF4, 0x80, 0x91, 0xA5, 0x01, 0x87, 0xFD, 0x10, 0xC0, + 0x80, 0x91, 0xA3, 0x01, 0xE8, 0x2F, 0xF0, 0xE0, 0xEA, 0x55, 0xFE, 0x4F, 0x90, 0x83, 0x8F, 0x5F, + 0x8F, 0x77, 0x80, 0x93, 0xA3, 0x01, 0x80, 0x91, 0xA5, 0x01, 0x8F, 0x5F, 0x80, 0x93, 0xA5, 0x01, + 0xFF, 0x91, 0xEF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, + 0x18, 0x95, 0x29, 0x2F, 0x30, 0xE0, 0x22, 0x30, 0x31, 0x05, 0x59, 0xF0, 0x23, 0x30, 0x31, 0x05, + 0x69, 0xF0, 0x21, 0x30, 0x31, 0x05, 0xF9, 0xF4, 0x82, 0xE1, 0x90, 0xE0, 0x22, 0xE8, 0x31, 0xE0, + 0x1E, 0xC0, 0x8E, 0xE3, 0x90, 0xE0, 0x24, 0xE4, 0x31, 0xE0, 0x19, 0xC0, 0x88, 0x23, 0x49, 0xF0, + 0x81, 0x30, 0x61, 0xF0, 0x82, 0x30, 0x79, 0xF4, 0x82, 0xE2, 0x90, 0xE0, 0x28, 0xE0, 0x31, 0xE0, + 0x0E, 0xC0, 0x84, 0xE0, 0x90, 0xE0, 0x20, 0xE4, 0x31, 0xE0, 0x09, 0xC0, 0x82, 0xE1, 0x90, 0xE0, + 0x2C, 0xE2, 0x31, 0xE0, 0x04, 0xC0, 0x80, 0xE0, 0x90, 0xE0, 0x20, 0xE0, 0x30, 0xE0, 0xFA, 0x01, + 0x31, 0x83, 0x20, 0x83, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, + 0x23, 0xE0, 0xFB, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0xF9, 0x99, 0xFE, 0xCF, 0x25, 0xE0, 0xFB, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, 0x21, 0xE0, 0xFB, 0x01, 0x0A, 0x01, 0x20, 0x93, + 0x57, 0x00, 0xE8, 0x95, 0x11, 0x24, 0x08, 0x95, 0x21, 0xE2, 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, + 0x84, 0x91, 0x08, 0x95, 0x29, 0xE0, 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, + 0xE1, 0xE0, 0xF0, 0xE0, 0x89, 0xE0, 0x80, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, 0x80, 0x95, 0x99, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, + 0x08, 0x2E, 0x90, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x20, 0x91, 0x2E, 0x02, 0x30, 0x91, + 0x2F, 0x02, 0x26, 0x17, 0x37, 0x07, 0x48, 0xF0, 0x61, 0x15, 0x71, 0x05, 0x39, 0xF4, 0x20, 0x91, + 0xE8, 0x00, 0x2E, 0x77, 0x20, 0x93, 0xE8, 0x00, 0x01, 0xC0, 0xB9, 0x01, 0x40, 0xE0, 0x61, 0x15, + 0x71, 0x05, 0x79, 0xF1, 0x2E, 0xB3, 0x22, 0x23, 0xF1, 0xF1, 0x25, 0x30, 0xF1, 0xF1, 0x20, 0x91, + 0xE8, 0x00, 0x23, 0xFD, 0x3C, 0xC0, 0x20, 0x91, 0xE8, 0x00, 0x22, 0xFD, 0x2E, 0xC0, 0x20, 0x91, + 0xE8, 0x00, 0x20, 0xFF, 0xEC, 0xCF, 0x20, 0x91, 0xF2, 0x00, 0x30, 0xE0, 0xFC, 0x01, 0xCF, 0x01, + 0x61, 0x15, 0x71, 0x05, 0x59, 0xF0, 0x28, 0x30, 0x31, 0x05, 0x40, 0xF4, 0x81, 0x91, 0x80, 0x93, + 0xF1, 0x00, 0x61, 0x50, 0x71, 0x09, 0x2F, 0x5F, 0x3F, 0x4F, 0xF1, 0xCF, 0x41, 0xE0, 0x28, 0x30, + 0x31, 0x05, 0x09, 0xF0, 0x40, 0xE0, 0x20, 0x91, 0xE8, 0x00, 0x2E, 0x77, 0x20, 0x93, 0xE8, 0x00, + 0xCE, 0xCF, 0x41, 0x11, 0xCF, 0xCF, 0x09, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x61, 0xF0, 0x85, 0x30, + 0x61, 0xF0, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFD, 0x0A, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFF, + 0xF3, 0xCF, 0x80, 0xE0, 0x08, 0x95, 0x82, 0xE0, 0x08, 0x95, 0x83, 0xE0, 0x08, 0x95, 0x81, 0xE0, + 0x08, 0x95, 0x8F, 0x70, 0x80, 0x93, 0xE9, 0x00, 0xEB, 0xEE, 0xF0, 0xE0, 0x80, 0x81, 0x81, 0x60, + 0x80, 0x83, 0xED, 0xEE, 0xF0, 0xE0, 0x10, 0x82, 0x60, 0x93, 0xEC, 0x00, 0x40, 0x83, 0x80, 0x91, + 0xEE, 0x00, 0x88, 0x1F, 0x88, 0x27, 0x88, 0x1F, 0x08, 0x95, 0x80, 0x91, 0x28, 0x02, 0x87, 0xFF, + 0x0F, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFD, 0x04, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, + 0x10, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x0A, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x49, 0xF0, + 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xF9, 0xCF, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x08, 0x95, 0x3C, 0xD0, 0x3E, 0xD0, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x77, 0x80, 0x93, + 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, 0x80, 0x68, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, + 0x8F, 0x7D, 0x80, 0x93, 0xD8, 0x00, 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, 0x89, 0xBD, 0x09, 0xB4, + 0x00, 0xFE, 0xFD, 0xCF, 0x1E, 0xBA, 0x10, 0x92, 0x26, 0x02, 0x42, 0xE0, 0x60, 0xE0, 0x80, 0xE0, + 0xB0, 0xDF, 0x80, 0x91, 0xE1, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, + 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x88, 0x60, 0x80, 0x93, 0xE2, 0x00, + 0x80, 0x91, 0xE0, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE0, 0x00, 0x08, 0x95, 0xE3, 0xE6, 0xF0, 0xE0, + 0x80, 0x81, 0x8E, 0x7F, 0x80, 0x83, 0x81, 0xE0, 0x80, 0x93, 0x27, 0x02, 0xC3, 0xCF, 0x10, 0x92, + 0xE2, 0x00, 0x08, 0x95, 0x10, 0x92, 0xE1, 0x00, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, + 0x0F, 0x92, 0x11, 0x24, 0x2F, 0x93, 0x3F, 0x93, 0x4F, 0x93, 0x5F, 0x93, 0x6F, 0x93, 0x7F, 0x93, + 0x8F, 0x93, 0x9F, 0x93, 0xAF, 0x93, 0xBF, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x80, 0x91, 0xE1, 0x00, + 0x80, 0xFF, 0x16, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x80, 0xFF, 0x12, 0xC0, 0x80, 0x91, 0xE2, 0x00, + 0x8E, 0x7F, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, 0x80, 0x93, 0xE2, 0x00, + 0x80, 0x91, 0xD8, 0x00, 0x80, 0x62, 0x80, 0x93, 0xD8, 0x00, 0x19, 0xBC, 0x1E, 0xBA, 0x6B, 0xD1, + 0x80, 0x91, 0xE1, 0x00, 0x84, 0xFF, 0x2E, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x84, 0xFF, 0x2A, 0xC0, + 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, 0x89, 0xBD, 0x09, 0xB4, 0x00, 0xFE, 0xFD, 0xCF, 0x80, 0x91, + 0xD8, 0x00, 0x8F, 0x7D, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xE1, 0x00, 0x8F, 0x7E, 0x80, 0x93, + 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x8F, 0x7E, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, + 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0x26, 0x02, 0x88, 0x23, 0x11, 0xF0, 0x84, 0xE0, + 0x07, 0xC0, 0x80, 0x91, 0xE3, 0x00, 0x87, 0xFD, 0x02, 0xC0, 0x81, 0xE0, 0x01, 0xC0, 0x83, 0xE0, + 0x8E, 0xBB, 0x39, 0xD1, 0x80, 0x91, 0xE1, 0x00, 0x83, 0xFF, 0x21, 0xC0, 0x80, 0x91, 0xE2, 0x00, + 0x83, 0xFF, 0x1D, 0xC0, 0x80, 0x91, 0xE1, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x82, 0xE0, + 0x8E, 0xBB, 0x10, 0x92, 0x26, 0x02, 0x80, 0x91, 0xE1, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, + 0x80, 0x91, 0xE2, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, + 0x80, 0x93, 0xE2, 0x00, 0x42, 0xE0, 0x60, 0xE0, 0x80, 0xE0, 0x0B, 0xDF, 0x14, 0xD1, 0xFF, 0x91, + 0xEF, 0x91, 0xBF, 0x91, 0xAF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x7F, 0x91, 0x6F, 0x91, 0x5F, 0x91, + 0x4F, 0x91, 0x3F, 0x91, 0x2F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, 0x18, 0x95, + 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0xCD, 0xB7, 0xDE, 0xB7, 0xE8, 0xE2, 0xF2, 0xE0, + 0x88, 0xE0, 0x8E, 0x0F, 0x90, 0x91, 0xF1, 0x00, 0x91, 0x93, 0x8E, 0x13, 0xFB, 0xCF, 0x0F, 0xDD, + 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFF, 0xDB, 0xC0, 0x80, 0x91, 0x28, 0x02, 0x90, 0x91, 0x29, 0x02, + 0x95, 0x30, 0x09, 0xF4, 0x66, 0xC0, 0x30, 0xF4, 0x91, 0x30, 0x59, 0xF1, 0x68, 0xF0, 0x93, 0x30, + 0x41, 0xF1, 0xCD, 0xC0, 0x98, 0x30, 0x09, 0xF4, 0x9D, 0xC0, 0x99, 0x30, 0x09, 0xF4, 0xAC, 0xC0, + 0x96, 0x30, 0x09, 0xF0, 0xC4, 0xC0, 0x76, 0xC0, 0x80, 0x38, 0x81, 0xF0, 0x82, 0x38, 0x09, 0xF0, + 0xBE, 0xC0, 0x80, 0x91, 0x2C, 0x02, 0x8F, 0x70, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, 0xEB, 0x00, + 0x85, 0xFB, 0x88, 0x27, 0x80, 0xF9, 0x10, 0x92, 0xE9, 0x00, 0x01, 0xC0, 0x80, 0xE0, 0x90, 0x91, + 0xE8, 0x00, 0x97, 0x7F, 0x90, 0x93, 0xE8, 0x00, 0x80, 0x93, 0xF1, 0x00, 0x10, 0x92, 0xF1, 0x00, + 0x84, 0xC0, 0x28, 0x2F, 0x2D, 0x7F, 0x09, 0xF0, 0xA2, 0xC0, 0x82, 0x30, 0x09, 0xF0, 0x9F, 0xC0, + 0x80, 0x91, 0x2A, 0x02, 0x81, 0x11, 0x27, 0xC0, 0x80, 0x91, 0x2C, 0x02, 0x8F, 0x70, 0x09, 0xF4, + 0x96, 0xC0, 0x80, 0x93, 0xE9, 0x00, 0x20, 0x91, 0xEB, 0x00, 0x20, 0xFF, 0x1C, 0xC0, 0x93, 0x30, + 0x21, 0xF4, 0x80, 0x91, 0xEB, 0x00, 0x80, 0x62, 0x14, 0xC0, 0x90, 0x91, 0xEB, 0x00, 0x90, 0x61, + 0x90, 0x93, 0xEB, 0x00, 0x21, 0xE0, 0x30, 0xE0, 0xA9, 0x01, 0x02, 0xC0, 0x44, 0x0F, 0x55, 0x1F, + 0x8A, 0x95, 0xE2, 0xF7, 0x40, 0x93, 0xEA, 0x00, 0x10, 0x92, 0xEA, 0x00, 0x80, 0x91, 0xEB, 0x00, + 0x88, 0x60, 0x80, 0x93, 0xEB, 0x00, 0x10, 0x92, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, + 0x4F, 0xC0, 0x81, 0x11, 0x6C, 0xC0, 0x10, 0x91, 0x2A, 0x02, 0x1F, 0x77, 0x80, 0x91, 0xE3, 0x00, + 0x80, 0x78, 0x81, 0x2B, 0x80, 0x93, 0xE3, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0x7B, 0xDE, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xFC, 0xCF, 0x80, 0x91, 0xE3, 0x00, + 0x80, 0x68, 0x80, 0x93, 0xE3, 0x00, 0x11, 0x11, 0x02, 0xC0, 0x82, 0xE0, 0x01, 0xC0, 0x83, 0xE0, + 0x8E, 0xBB, 0x4D, 0xC0, 0x80, 0x58, 0x82, 0x30, 0x08, 0xF0, 0x49, 0xC0, 0xAE, 0x01, 0x4F, 0x5F, + 0x5F, 0x4F, 0x60, 0x91, 0x2C, 0x02, 0x80, 0x91, 0x2A, 0x02, 0x90, 0x91, 0x2B, 0x02, 0x69, 0xDD, + 0xBC, 0x01, 0x00, 0x97, 0x09, 0xF4, 0x3B, 0xC0, 0x90, 0x91, 0xE8, 0x00, 0x97, 0x7F, 0x90, 0x93, + 0xE8, 0x00, 0x89, 0x81, 0x9A, 0x81, 0xE1, 0xDD, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x2D, 0xC0, 0x80, 0x38, 0x59, 0xF5, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0x80, 0x91, 0x26, 0x02, 0x80, 0x93, 0xF1, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, + 0x80, 0x93, 0xE8, 0x00, 0x3A, 0xDE, 0x1B, 0xC0, 0x81, 0x11, 0x19, 0xC0, 0x90, 0x91, 0x2A, 0x02, + 0x92, 0x30, 0xA8, 0xF4, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x90, 0x93, + 0x26, 0x02, 0x2B, 0xDE, 0x80, 0x91, 0x26, 0x02, 0x81, 0x11, 0x06, 0xC0, 0x80, 0x91, 0xE3, 0x00, + 0x87, 0xFD, 0x02, 0xC0, 0x81, 0xE0, 0x01, 0xC0, 0x84, 0xE0, 0x8E, 0xBB, 0x24, 0xDC, 0x80, 0x91, + 0xE8, 0x00, 0x83, 0xFF, 0x0A, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, + 0x80, 0x91, 0xEB, 0x00, 0x80, 0x62, 0x80, 0x93, 0xEB, 0x00, 0x0F, 0x90, 0x0F, 0x90, 0xDF, 0x91, + 0xCF, 0x91, 0x1F, 0x91, 0x08, 0x95, 0x08, 0x95, 0xCF, 0x93, 0x8E, 0xB3, 0x88, 0x23, 0x99, 0xF0, + 0xC0, 0x91, 0xE9, 0x00, 0xCF, 0x70, 0x90, 0x91, 0xEC, 0x00, 0x89, 0x2F, 0x81, 0x70, 0x90, 0xFD, + 0x80, 0xE8, 0xC8, 0x2B, 0x10, 0x92, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFD, 0xE8, 0xDE, + 0xCF, 0x70, 0xC0, 0x93, 0xE9, 0x00, 0xCF, 0x91, 0x08, 0x95, 0xA1, 0xE2, 0x1A, 0x2E, 0xAA, 0x1B, + 0xBB, 0x1B, 0xFD, 0x01, 0x0D, 0xC0, 0xAA, 0x1F, 0xBB, 0x1F, 0xEE, 0x1F, 0xFF, 0x1F, 0xA2, 0x17, + 0xB3, 0x07, 0xE4, 0x07, 0xF5, 0x07, 0x20, 0xF0, 0xA2, 0x1B, 0xB3, 0x0B, 0xE4, 0x0B, 0xF5, 0x0B, + 0x66, 0x1F, 0x77, 0x1F, 0x88, 0x1F, 0x99, 0x1F, 0x1A, 0x94, 0x69, 0xF7, 0x60, 0x95, 0x70, 0x95, + 0x80, 0x95, 0x90, 0x95, 0x9B, 0x01, 0xAC, 0x01, 0xBD, 0x01, 0xCF, 0x01, 0x08, 0x95, 0xF9, 0x99, + 0xFE, 0xCF, 0x92, 0xBD, 0x81, 0xBD, 0xF8, 0x9A, 0x99, 0x27, 0x80, 0xB5, 0x08, 0x95, 0x26, 0x2F, + 0xF9, 0x99, 0xFE, 0xCF, 0x1F, 0xBA, 0x92, 0xBD, 0x81, 0xBD, 0x20, 0xBD, 0x0F, 0xB6, 0xF8, 0x94, + 0xFA, 0x9A, 0xF9, 0x9A, 0x0F, 0xBE, 0x01, 0x96, 0x08, 0x95, 0xF8, 0x94, 0xFF, 0xCF, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x22, 0x03, 0x48, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, + 0x4C, 0x00, 0x6F, 0x00, 0x61, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x32, 0x00, 0x20, 0x00, + 0x4D, 0x00, 0x65, 0x00, 0x67, 0x00, 0x61, 0x00, 0x00, 0x00, 0x12, 0x03, 0x4E, 0x00, 0x69, 0x00, + 0x63, 0x00, 0x6F, 0x00, 0x48, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x00, 0x00, 0x04, 0x03, + 0x09, 0x04, 0x09, 0x02, 0x3E, 0x00, 0x02, 0x01, 0x00, 0x80, 0x32, 0x09, 0x04, 0x00, 0x00, 0x01, + 0x02, 0x02, 0x01, 0x00, 0x05, 0x24, 0x00, 0x10, 0x01, 0x04, 0x24, 0x02, 0x02, 0x05, 0x24, 0x06, + 0x00, 0x01, 0x07, 0x05, 0x82, 0x03, 0x08, 0x00, 0xFF, 0x09, 0x04, 0x01, 0x00, 0x02, 0x0A, 0x00, + 0x00, 0x00, 0x07, 0x05, 0x04, 0x02, 0x40, 0x00, 0x05, 0x07, 0x05, 0x83, 0x02, 0x40, 0x00, 0x05, + 0x12, 0x01, 0x10, 0x01, 0x02, 0x00, 0x00, 0x08, 0x41, 0x23, 0x42, 0x00, 0x04, 0x02, 0x01, 0x02, + 0x00, 0x01, 0x48, 0x4C, 0x32, 0x2E, 0x30, 0x2E, 0x34, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x6A, 0xCC, 0x7B, 0xCC, 0x8C, 0xCC, 0x98, 0xCC, 0x9D, 0xCC, 0xA2, 0xCC, 0xA8, 0xCC, 0x08, 0x95, + 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, + 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0x00, 0x30, 0x00, 0x00, 0x00, 0xDF, 0xFB, 0xDC, +}; // end of HoodLoader2_0_4_Mega_16u2_hex diff --git a/tools/HoodLoader2_Installation_Sketch/bootloader_atmega32u2.h b/tools/HoodLoader2_Installation_Sketch/bootloader_atmega32u2.h new file mode 100644 index 0000000..3c82d1c --- /dev/null +++ b/tools/HoodLoader2_Installation_Sketch/bootloader_atmega32u2.h @@ -0,0 +1,541 @@ +/* +Copyright(c) 2014-2015 NicoHood +See the readme for credit to other people. +This file is part of Hoodloader2. +Hoodloader2 is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. +Hoodloader2 is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with Hoodloader2. If not, see . +*/ + +// File = HoodLoader2_0_4_Uno_32u2.hex +// Loader start: 7000, length: 4096 +// MD5 sum = 37 1C 81 11 18 63 4C 16 02 36 8D F5 B0 7D 1A A4 + +const byte HoodLoader2_0_4_Uno_32u2_hex[] PROGMEM = { + 0x39, 0xC0, 0x00, 0x00, 0x83, 0xC0, 0x00, 0x00, 0x81, 0xC0, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x00, + 0x7D, 0xC0, 0x00, 0x00, 0x7B, 0xC0, 0x00, 0x00, 0x79, 0xC0, 0x00, 0x00, 0x77, 0xC0, 0x00, 0x00, + 0x75, 0xC0, 0x00, 0x00, 0x73, 0xC0, 0x00, 0x00, 0x71, 0xC0, 0x00, 0x00, 0x46, 0xC5, 0x00, 0x00, + 0x6D, 0xC0, 0x00, 0x00, 0x6B, 0xC0, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x00, 0x67, 0xC0, 0x00, 0x00, + 0x65, 0xC0, 0x00, 0x00, 0x63, 0xC0, 0x00, 0x00, 0x61, 0xC0, 0x00, 0x00, 0x5F, 0xC0, 0x00, 0x00, + 0x5D, 0xC0, 0x00, 0x00, 0x5B, 0xC0, 0x00, 0x00, 0x59, 0xC0, 0x00, 0x00, 0xAB, 0xC3, 0x00, 0x00, + 0x55, 0xC0, 0x00, 0x00, 0x53, 0xC0, 0x00, 0x00, 0x51, 0xC0, 0x00, 0x00, 0x4F, 0xC0, 0x00, 0x00, + 0x4D, 0xC0, 0x00, 0x00, 0x11, 0x24, 0x1F, 0xBE, 0xCF, 0xEF, 0xD4, 0xE0, 0xDE, 0xBF, 0xCD, 0xBF, + 0x90, 0x91, 0x80, 0x02, 0x10, 0x92, 0x80, 0x02, 0x84, 0xB7, 0x14, 0xBE, 0x28, 0xE1, 0x0F, 0xB6, + 0xF8, 0x94, 0x20, 0x93, 0x60, 0x00, 0x10, 0x92, 0x60, 0x00, 0x0F, 0xBE, 0xE0, 0xE0, 0xF0, 0xE0, + 0x25, 0x91, 0x34, 0x91, 0x2F, 0x3F, 0x3F, 0x4F, 0xE1, 0xF0, 0x81, 0xFF, 0x12, 0xC0, 0x97, 0x37, + 0xC1, 0xF0, 0x87, 0xE7, 0x80, 0x93, 0x80, 0x02, 0x8F, 0xEF, 0x9E, 0xE9, 0x24, 0xE2, 0x81, 0x50, + 0x90, 0x40, 0x20, 0x40, 0xE1, 0xF7, 0x00, 0xC0, 0x00, 0x00, 0x10, 0x92, 0x80, 0x02, 0x1F, 0xD0, + 0x08, 0xC0, 0x80, 0xFF, 0x02, 0xC0, 0x1B, 0xD0, 0x04, 0xC0, 0x83, 0xFF, 0x02, 0xC0, 0x97, 0x37, + 0xD1, 0xF7, 0x11, 0xE0, 0xA0, 0xE0, 0xB1, 0xE0, 0xEE, 0xE8, 0xFE, 0xE7, 0x02, 0xC0, 0x05, 0x90, + 0x0D, 0x92, 0xAA, 0x39, 0xB1, 0x07, 0xD9, 0xF7, 0x12, 0xE0, 0xAA, 0xE9, 0xB1, 0xE0, 0x01, 0xC0, + 0x1D, 0x92, 0xAE, 0x32, 0xB1, 0x07, 0xE1, 0xF7, 0x36, 0xD0, 0xBF, 0xC6, 0x79, 0xCF, 0x8B, 0xB1, + 0x80, 0x63, 0x8B, 0xB9, 0xE0, 0xE0, 0xF0, 0xE0, 0x09, 0x94, 0x84, 0xE0, 0x80, 0x93, 0xE9, 0x00, + 0x80, 0x91, 0xE8, 0x00, 0x85, 0xFD, 0x0D, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFD, 0xF3, 0xCF, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, + 0x02, 0xC0, 0x80, 0x91, 0xF1, 0x00, 0x08, 0x95, 0x93, 0xE0, 0x90, 0x93, 0xE9, 0x00, 0x90, 0x91, + 0xE8, 0x00, 0x95, 0xFF, 0x03, 0xC0, 0x80, 0x93, 0xF1, 0x00, 0x08, 0x95, 0x90, 0x91, 0xE8, 0x00, + 0x9E, 0x77, 0x90, 0x93, 0xE8, 0x00, 0x90, 0x91, 0xE8, 0x00, 0x90, 0xFD, 0xF4, 0xCF, 0x9E, 0xB3, + 0x91, 0x11, 0xF9, 0xCF, 0x08, 0x95, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0x00, 0xD0, 0xCD, 0xB7, + 0xDE, 0xB7, 0x90, 0xE0, 0x80, 0xE8, 0x0F, 0xB6, 0xF8, 0x94, 0x80, 0x93, 0x61, 0x00, 0x90, 0x93, + 0x61, 0x00, 0x0F, 0xBE, 0x81, 0xE0, 0x85, 0xBF, 0x82, 0xE0, 0x85, 0xBF, 0x7F, 0xD4, 0x84, 0xE0, + 0x85, 0xBD, 0x8A, 0xB1, 0x88, 0x6B, 0x8A, 0xB9, 0x8B, 0xB1, 0x84, 0x6B, 0x8B, 0xB9, 0x78, 0x94, + 0x13, 0xE0, 0xBB, 0x24, 0xB3, 0x94, 0xE5, 0xE0, 0x8E, 0x2E, 0x21, 0x2C, 0x31, 0x2C, 0x82, 0xE9, + 0x91, 0xE0, 0x27, 0xE0, 0x28, 0x0F, 0x29, 0x83, 0x84, 0xE0, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, + 0xE8, 0x00, 0x82, 0xFF, 0x8D, 0xC1, 0xA1, 0xDF, 0x98, 0x2F, 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, + 0x13, 0xC0, 0x80, 0x91, 0xC8, 0x00, 0x85, 0xFF, 0xFC, 0xCF, 0x90, 0x93, 0xCE, 0x00, 0x80, 0x91, + 0xF2, 0x00, 0x81, 0x11, 0x05, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x5C, 0x98, 0x10, 0x93, 0x9F, 0x01, 0x78, 0xC1, 0x95, 0x34, 0x19, 0xF4, 0x10, 0x92, 0x00, 0x01, + 0x32, 0xC0, 0x88, 0xE8, 0x89, 0x0F, 0x82, 0x30, 0x10, 0xF0, 0x94, 0x35, 0x11, 0xF4, 0x7D, 0xDF, + 0x2A, 0xC0, 0x90, 0x35, 0x41, 0xF1, 0x9C, 0x34, 0x31, 0xF1, 0x94, 0x37, 0x21, 0xF4, 0x84, 0xE4, + 0x8B, 0xDF, 0x80, 0xE0, 0x03, 0xC0, 0x91, 0x36, 0x19, 0xF4, 0x89, 0xE5, 0x85, 0xDF, 0x5C, 0xC1, + 0x91, 0x34, 0xD9, 0xF4, 0x6A, 0xDF, 0x08, 0x2F, 0x68, 0xDF, 0x90, 0xE0, 0x88, 0x0F, 0x99, 0x1F, + 0x20, 0x2F, 0x30, 0xE0, 0x32, 0x2F, 0x22, 0x27, 0x33, 0x0F, 0x82, 0x2B, 0x93, 0x2B, 0xAA, 0x27, + 0x97, 0xFD, 0xA0, 0x95, 0xBA, 0x2F, 0x80, 0x93, 0x9A, 0x01, 0x90, 0x93, 0x9B, 0x01, 0xA0, 0x93, + 0x9C, 0x01, 0xB0, 0x93, 0x9D, 0x01, 0x8D, 0xE0, 0xE1, 0xCF, 0x90, 0x37, 0x11, 0xF4, 0x83, 0xE5, + 0xDD, 0xCF, 0x93, 0x35, 0x61, 0xF4, 0x52, 0xE9, 0xE5, 0x2E, 0x51, 0xE0, 0xF5, 0x2E, 0xF7, 0x01, + 0x81, 0x91, 0x7F, 0x01, 0x59, 0xDF, 0x29, 0x81, 0x2E, 0x11, 0xF9, 0xCF, 0x2D, 0xC1, 0x96, 0x35, + 0x21, 0xF4, 0x81, 0xE3, 0x51, 0xDF, 0x80, 0xE3, 0xC9, 0xCF, 0x93, 0x37, 0x31, 0xF4, 0x8A, 0xE8, + 0x4B, 0xDF, 0x85, 0xE9, 0x49, 0xDF, 0x8E, 0xE1, 0xC1, 0xCF, 0x95, 0x36, 0xA9, 0xF4, 0xE0, 0xE0, + 0xF0, 0xE0, 0x10, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0x80, 0x92, + 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xE0, 0x58, 0xFF, 0x4F, 0xE1, 0x15, + 0x80, 0xE7, 0xF8, 0x07, 0x71, 0xF7, 0xC7, 0xCF, 0x9C, 0x36, 0x51, 0xF4, 0x16, 0xDF, 0x80, 0x95, + 0x99, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x08, 0x2E, 0x90, 0x93, 0x57, 0x00, 0xE8, 0x95, 0xBB, 0xCF, + 0x92, 0x37, 0x21, 0xF4, 0x89, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x10, 0xC0, 0x96, 0x34, 0x19, 0xF4, + 0x89, 0xE0, 0xF1, 0x01, 0x0B, 0xC0, 0x9E, 0x34, 0x21, 0xF4, 0x89, 0xE0, 0xE3, 0xE0, 0xF0, 0xE0, + 0x05, 0xC0, 0x91, 0x35, 0x39, 0xF4, 0x89, 0xE0, 0xE2, 0xE0, 0xF0, 0xE0, 0x80, 0x93, 0x57, 0x00, + 0x84, 0x91, 0x84, 0xCF, 0x92, 0x36, 0x31, 0xF4, 0x89, 0xE5, 0x06, 0xDF, 0x80, 0xE0, 0x04, 0xDF, + 0x80, 0xE8, 0x7C, 0xCF, 0x92, 0x34, 0x19, 0xF0, 0x97, 0x36, 0x09, 0xF0, 0xCD, 0xC0, 0x9A, 0x83, + 0xE4, 0xDE, 0xE8, 0x2E, 0xF1, 0x2C, 0xFE, 0x2C, 0xEE, 0x24, 0xDF, 0xDE, 0xE8, 0x2A, 0xDD, 0xDE, + 0x08, 0x2F, 0x8B, 0xEB, 0x80, 0x0F, 0x9A, 0x81, 0x82, 0x30, 0x10, 0xF0, 0x8F, 0xE3, 0x66, 0xCF, + 0x97, 0x36, 0x09, 0xF0, 0x44, 0xC0, 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x37, 0x01, + 0xA1, 0x2C, 0x61, 0x14, 0x71, 0x04, 0x09, 0xF4, 0xB7, 0xC0, 0xC0, 0x90, 0x9A, 0x01, 0xD0, 0x90, + 0x9B, 0x01, 0xE0, 0x90, 0x9C, 0x01, 0xF0, 0x90, 0x9D, 0x01, 0x06, 0x34, 0xB9, 0xF4, 0xEA, 0x2D, + 0xF0, 0xE0, 0xEC, 0x29, 0xFD, 0x29, 0x84, 0x91, 0xCF, 0xDE, 0xAA, 0x20, 0x69, 0xF0, 0xF2, 0xE0, + 0xCF, 0x0E, 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9A, 0x01, 0xD0, 0x92, 0x9B, 0x01, + 0xE0, 0x92, 0x9C, 0x01, 0xF0, 0x92, 0x9D, 0x01, 0xAB, 0x24, 0x15, 0xC0, 0xD7, 0x01, 0xC6, 0x01, + 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0x42, 0xD5, 0xB6, 0xDE, 0x22, 0xE0, 0xC2, 0x0E, + 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9A, 0x01, 0xD0, 0x92, 0x9B, 0x01, 0xE0, 0x92, + 0x9C, 0x01, 0xF0, 0x92, 0x9D, 0x01, 0x81, 0xE0, 0x68, 0x1A, 0x71, 0x08, 0xC2, 0xCF, 0x40, 0x90, + 0x9A, 0x01, 0x50, 0x90, 0x9B, 0x01, 0x60, 0x90, 0x9C, 0x01, 0x70, 0x90, 0x9D, 0x01, 0x06, 0x34, + 0x39, 0xF4, 0xF2, 0x01, 0x10, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0xFC, 0x82, 0xEB, 0x82, 0x91, 0x2C, 0xA1, 0x2C, 0xEB, 0x81, 0xFC, 0x81, 0xEF, 0x2B, 0x09, 0xF4, + 0x50, 0xC0, 0x06, 0x34, 0x31, 0xF5, 0xAA, 0x20, 0x01, 0xF1, 0xC0, 0x90, 0x9A, 0x01, 0xD0, 0x90, + 0x9B, 0x01, 0xE0, 0x90, 0x9C, 0x01, 0xF0, 0x90, 0x9D, 0x01, 0x67, 0xDE, 0x29, 0x2D, 0x30, 0xE0, + 0x38, 0x2B, 0xF6, 0x01, 0x09, 0x01, 0xB0, 0x92, 0x57, 0x00, 0xE8, 0x95, 0x11, 0x24, 0xF2, 0xE0, + 0xCF, 0x0E, 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9A, 0x01, 0xD0, 0x92, 0x9B, 0x01, + 0xE0, 0x92, 0x9C, 0x01, 0xF0, 0x92, 0x9D, 0x01, 0x02, 0xC0, 0x4F, 0xDE, 0x98, 0x2E, 0xAB, 0x24, + 0x22, 0xC0, 0x4B, 0xDE, 0x68, 0x2F, 0x80, 0x91, 0x9A, 0x01, 0x90, 0x91, 0x9B, 0x01, 0xA0, 0x91, + 0x9C, 0x01, 0xB0, 0x91, 0x9D, 0x01, 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0xE7, 0xD4, + 0x80, 0x91, 0x9A, 0x01, 0x90, 0x91, 0x9B, 0x01, 0xA0, 0x91, 0x9C, 0x01, 0xB0, 0x91, 0x9D, 0x01, + 0x02, 0x96, 0xA1, 0x1D, 0xB1, 0x1D, 0x80, 0x93, 0x9A, 0x01, 0x90, 0x93, 0x9B, 0x01, 0xA0, 0x93, + 0x9C, 0x01, 0xB0, 0x93, 0x9D, 0x01, 0x8B, 0x81, 0x9C, 0x81, 0x01, 0x97, 0x9C, 0x83, 0x8B, 0x83, + 0xAB, 0xCF, 0x06, 0x34, 0x09, 0xF0, 0xCF, 0xCE, 0xF2, 0x01, 0x80, 0x92, 0x57, 0x00, 0xE8, 0x95, + 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xC7, 0xCE, 0x9B, 0x31, 0x09, 0xF0, 0x3F, 0xCF, 0x04, 0xC0, + 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, 0x55, 0xC0, 0x8F, 0xB7, 0xF8, 0x94, 0x90, 0x91, 0xA3, 0x01, + 0x8F, 0xBF, 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, 0x06, 0xC0, 0x99, 0x23, 0x09, 0xF4, 0x49, 0xC0, + 0x5D, 0x98, 0x10, 0x93, 0xA0, 0x01, 0xF9, 0x2E, 0xFF, 0x20, 0xB1, 0xF0, 0x00, 0x91, 0xA2, 0x01, + 0xE0, 0x2F, 0xF0, 0xE0, 0xEC, 0x55, 0xFE, 0x4F, 0x80, 0x81, 0x0E, 0xDE, 0x0F, 0x5F, 0x0F, 0x77, + 0x00, 0x93, 0xA2, 0x01, 0x9F, 0xB7, 0xF8, 0x94, 0x80, 0x91, 0xA3, 0x01, 0x81, 0x50, 0x80, 0x93, + 0xA3, 0x01, 0x9F, 0xBF, 0xFA, 0x94, 0xE8, 0xCF, 0x10, 0x93, 0xE9, 0x00, 0x90, 0x91, 0xE8, 0x00, + 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x95, 0xFD, 0x1D, 0xC0, 0x80, 0x91, + 0xE8, 0x00, 0x80, 0xFD, 0x10, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, 0x80, 0x91, 0x9E, 0x01, + 0x88, 0x23, 0xB9, 0xF0, 0xF4, 0xE0, 0xF0, 0x93, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, + 0x80, 0x93, 0xE8, 0x00, 0x0E, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x03, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x51, 0xF3, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xF9, 0xCF, + 0xE5, 0xCF, 0x22, 0xD4, 0xA8, 0x9B, 0x15, 0xC0, 0xA8, 0x9A, 0x80, 0x91, 0xA0, 0x01, 0x88, 0x23, + 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, 0xA0, 0x01, 0x81, 0x11, 0x01, 0xC0, 0x5D, 0x9A, 0x80, 0x91, + 0x9F, 0x01, 0x88, 0x23, 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, 0x9F, 0x01, 0x81, 0x11, 0x01, 0xC0, + 0x5C, 0x9A, 0x80, 0x91, 0x00, 0x01, 0x81, 0x11, 0xF7, 0xCD, 0x8F, 0xE9, 0x9F, 0xE0, 0x01, 0x97, + 0xF1, 0xF7, 0x00, 0xC0, 0x00, 0x00, 0x80, 0x91, 0xE0, 0x00, 0x81, 0x60, 0x80, 0x93, 0xE0, 0x00, + 0x9C, 0xE0, 0x88, 0xE1, 0x0F, 0xB6, 0xF8, 0x94, 0xA8, 0x95, 0x80, 0x93, 0x60, 0x00, 0x0F, 0xBE, + 0x90, 0x93, 0x60, 0x00, 0xFF, 0xCF, 0x42, 0xE0, 0x61, 0xEC, 0x82, 0xE0, 0xE2, 0xD1, 0x42, 0xE3, + 0x61, 0xE8, 0x83, 0xE0, 0xDE, 0xD1, 0x42, 0xE3, 0x60, 0xE8, 0x84, 0xE0, 0xDA, 0xC1, 0xCF, 0x93, + 0x80, 0x91, 0x26, 0x02, 0x98, 0x2F, 0x9F, 0x77, 0x91, 0x32, 0x09, 0xF0, 0xC1, 0xC0, 0x90, 0x91, + 0x27, 0x02, 0x91, 0x32, 0x99, 0xF4, 0x81, 0x3A, 0x09, 0xF0, 0xBA, 0xC0, 0x80, 0x91, 0xE8, 0x00, + 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x67, 0xE0, 0x70, 0xE0, 0x81, 0xE0, 0x91, 0xE0, 0x65, 0xD1, + 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, 0xAA, 0xC0, 0x90, 0x32, 0x09, 0xF0, + 0x92, 0xC0, 0x81, 0x32, 0x09, 0xF0, 0xA4, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0xE1, 0xE0, 0xF1, 0xE0, 0x87, 0xE0, 0x88, 0x23, 0x09, 0xF1, 0x9E, 0xB3, 0x99, 0x23, + 0x11, 0xF1, 0x95, 0x30, 0x01, 0xF1, 0x90, 0x91, 0xE8, 0x00, 0x93, 0xFD, 0x1C, 0xC0, 0x90, 0x91, + 0xE8, 0x00, 0x92, 0xFF, 0xF1, 0xCF, 0x90, 0x91, 0xF2, 0x00, 0x99, 0x23, 0x29, 0xF0, 0x90, 0x91, + 0xF1, 0x00, 0x91, 0x93, 0x81, 0x50, 0xB9, 0xF7, 0x90, 0x91, 0xE8, 0x00, 0x9B, 0x77, 0x90, 0x93, + 0xE8, 0x00, 0xE2, 0xCF, 0x8E, 0xB3, 0x88, 0x23, 0x31, 0xF0, 0x85, 0x30, 0x21, 0xF0, 0x80, 0x91, + 0xE8, 0x00, 0x80, 0xFF, 0xF7, 0xCF, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x20, 0x91, 0x01, 0x01, 0x30, 0x91, 0x02, 0x01, 0x40, 0x91, 0x03, 0x01, 0x50, 0x91, 0x04, 0x01, + 0x21, 0x15, 0x81, 0xEE, 0x38, 0x07, 0x41, 0x05, 0x51, 0x05, 0x21, 0xF4, 0x81, 0xE0, 0x80, 0x93, + 0x9E, 0x01, 0x02, 0xC0, 0x10, 0x92, 0x9E, 0x01, 0x10, 0x92, 0xA3, 0x01, 0x10, 0x92, 0xA2, 0x01, + 0x10, 0x92, 0xA1, 0x01, 0x80, 0x91, 0x06, 0x01, 0x81, 0x30, 0x21, 0xF0, 0x82, 0x30, 0x21, 0xF4, + 0xC0, 0xE2, 0x03, 0xC0, 0xC0, 0xE3, 0x01, 0xC0, 0xC0, 0xE0, 0x80, 0x91, 0x05, 0x01, 0x82, 0x30, + 0x09, 0xF4, 0xC8, 0x60, 0x80, 0x91, 0x07, 0x01, 0x87, 0x30, 0x31, 0xF0, 0x88, 0x30, 0x31, 0xF0, + 0x86, 0x30, 0x29, 0xF4, 0xC2, 0x60, 0x03, 0xC0, 0xC4, 0x60, 0x01, 0xC0, 0xC6, 0x60, 0x5B, 0x9A, + 0x10, 0x92, 0xC9, 0x00, 0x10, 0x92, 0xC8, 0x00, 0x10, 0x92, 0xCA, 0x00, 0xDA, 0x01, 0xC9, 0x01, + 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0xBC, 0x01, 0xCD, 0x01, 0x60, 0x58, 0x7B, 0x47, + 0x81, 0x4E, 0x9F, 0x4F, 0x5A, 0xD3, 0x21, 0x50, 0x31, 0x09, 0x30, 0x93, 0xCD, 0x00, 0x20, 0x93, + 0xCC, 0x00, 0xC0, 0x93, 0xCA, 0x00, 0x82, 0xE0, 0x80, 0x93, 0xC8, 0x00, 0x88, 0xE9, 0x80, 0x93, + 0xC9, 0x00, 0x5B, 0x98, 0x15, 0xC0, 0x92, 0x32, 0x99, 0xF4, 0x81, 0x32, 0x89, 0xF4, 0x80, 0x91, + 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x30, 0xD1, 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, + 0x06, 0xC0, 0x80, 0x91, 0x28, 0x02, 0x80, 0xFF, 0x02, 0xC0, 0x5F, 0x98, 0x01, 0xC0, 0x5F, 0x9A, + 0xCF, 0x91, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, 0x0F, 0x92, 0x11, 0x24, 0x8F, 0x93, + 0x9F, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x90, 0x91, 0xCE, 0x00, 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, + 0x17, 0xC0, 0x8E, 0xB3, 0x84, 0x30, 0xA1, 0xF4, 0x80, 0x91, 0xA3, 0x01, 0x87, 0xFD, 0x10, 0xC0, + 0x80, 0x91, 0xA1, 0x01, 0xE8, 0x2F, 0xF0, 0xE0, 0xEC, 0x55, 0xFE, 0x4F, 0x90, 0x83, 0x8F, 0x5F, + 0x8F, 0x77, 0x80, 0x93, 0xA1, 0x01, 0x80, 0x91, 0xA3, 0x01, 0x8F, 0x5F, 0x80, 0x93, 0xA3, 0x01, + 0xFF, 0x91, 0xEF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, + 0x18, 0x95, 0x29, 0x2F, 0x30, 0xE0, 0x22, 0x30, 0x31, 0x05, 0x59, 0xF0, 0x23, 0x30, 0x31, 0x05, + 0x69, 0xF0, 0x21, 0x30, 0x31, 0x05, 0xF9, 0xF4, 0x82, 0xE1, 0x90, 0xE0, 0x20, 0xE8, 0x31, 0xE0, + 0x1E, 0xC0, 0x8E, 0xE3, 0x90, 0xE0, 0x22, 0xE4, 0x31, 0xE0, 0x19, 0xC0, 0x88, 0x23, 0x49, 0xF0, + 0x81, 0x30, 0x61, 0xF0, 0x82, 0x30, 0x79, 0xF4, 0x80, 0xE2, 0x90, 0xE0, 0x28, 0xE0, 0x31, 0xE0, + 0x0E, 0xC0, 0x84, 0xE0, 0x90, 0xE0, 0x2E, 0xE3, 0x31, 0xE0, 0x09, 0xC0, 0x82, 0xE1, 0x90, 0xE0, + 0x2A, 0xE2, 0x31, 0xE0, 0x04, 0xC0, 0x80, 0xE0, 0x90, 0xE0, 0x20, 0xE0, 0x30, 0xE0, 0xFA, 0x01, + 0x31, 0x83, 0x20, 0x83, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, + 0x23, 0xE0, 0xFB, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0xF9, 0x99, 0xFE, 0xCF, 0x25, 0xE0, 0xFB, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, 0x21, 0xE0, 0xFB, 0x01, 0x0A, 0x01, 0x20, 0x93, + 0x57, 0x00, 0xE8, 0x95, 0x11, 0x24, 0x08, 0x95, 0x21, 0xE2, 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, + 0x84, 0x91, 0x08, 0x95, 0x29, 0xE0, 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, + 0xE1, 0xE0, 0xF0, 0xE0, 0x89, 0xE0, 0x80, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, 0x80, 0x95, 0x99, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, + 0x08, 0x2E, 0x90, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x20, 0x91, 0x2C, 0x02, 0x30, 0x91, + 0x2D, 0x02, 0x26, 0x17, 0x37, 0x07, 0x48, 0xF0, 0x61, 0x15, 0x71, 0x05, 0x39, 0xF4, 0x20, 0x91, + 0xE8, 0x00, 0x2E, 0x77, 0x20, 0x93, 0xE8, 0x00, 0x01, 0xC0, 0xB9, 0x01, 0x40, 0xE0, 0x61, 0x15, + 0x71, 0x05, 0x79, 0xF1, 0x2E, 0xB3, 0x22, 0x23, 0xF1, 0xF1, 0x25, 0x30, 0xF1, 0xF1, 0x20, 0x91, + 0xE8, 0x00, 0x23, 0xFD, 0x3C, 0xC0, 0x20, 0x91, 0xE8, 0x00, 0x22, 0xFD, 0x2E, 0xC0, 0x20, 0x91, + 0xE8, 0x00, 0x20, 0xFF, 0xEC, 0xCF, 0x20, 0x91, 0xF2, 0x00, 0x30, 0xE0, 0xFC, 0x01, 0xCF, 0x01, + 0x61, 0x15, 0x71, 0x05, 0x59, 0xF0, 0x28, 0x30, 0x31, 0x05, 0x40, 0xF4, 0x81, 0x91, 0x80, 0x93, + 0xF1, 0x00, 0x61, 0x50, 0x71, 0x09, 0x2F, 0x5F, 0x3F, 0x4F, 0xF1, 0xCF, 0x41, 0xE0, 0x28, 0x30, + 0x31, 0x05, 0x09, 0xF0, 0x40, 0xE0, 0x20, 0x91, 0xE8, 0x00, 0x2E, 0x77, 0x20, 0x93, 0xE8, 0x00, + 0xCE, 0xCF, 0x41, 0x11, 0xCF, 0xCF, 0x09, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x61, 0xF0, 0x85, 0x30, + 0x61, 0xF0, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFD, 0x0A, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFF, + 0xF3, 0xCF, 0x80, 0xE0, 0x08, 0x95, 0x82, 0xE0, 0x08, 0x95, 0x83, 0xE0, 0x08, 0x95, 0x81, 0xE0, + 0x08, 0x95, 0x8F, 0x70, 0x80, 0x93, 0xE9, 0x00, 0xEB, 0xEE, 0xF0, 0xE0, 0x80, 0x81, 0x81, 0x60, + 0x80, 0x83, 0xED, 0xEE, 0xF0, 0xE0, 0x10, 0x82, 0x60, 0x93, 0xEC, 0x00, 0x40, 0x83, 0x80, 0x91, + 0xEE, 0x00, 0x88, 0x1F, 0x88, 0x27, 0x88, 0x1F, 0x08, 0x95, 0x80, 0x91, 0x26, 0x02, 0x87, 0xFF, + 0x0F, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFD, 0x04, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, + 0x10, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x0A, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x49, 0xF0, + 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xF9, 0xCF, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x08, 0x95, 0x3C, 0xD0, 0x3E, 0xD0, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x77, 0x80, 0x93, + 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, 0x80, 0x68, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, + 0x8F, 0x7D, 0x80, 0x93, 0xD8, 0x00, 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, 0x89, 0xBD, 0x09, 0xB4, + 0x00, 0xFE, 0xFD, 0xCF, 0x1E, 0xBA, 0x10, 0x92, 0x24, 0x02, 0x42, 0xE0, 0x60, 0xE0, 0x80, 0xE0, + 0xB0, 0xDF, 0x80, 0x91, 0xE1, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, + 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x88, 0x60, 0x80, 0x93, 0xE2, 0x00, + 0x80, 0x91, 0xE0, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE0, 0x00, 0x08, 0x95, 0xE3, 0xE6, 0xF0, 0xE0, + 0x80, 0x81, 0x8E, 0x7F, 0x80, 0x83, 0x81, 0xE0, 0x80, 0x93, 0x25, 0x02, 0xC3, 0xCF, 0x10, 0x92, + 0xE2, 0x00, 0x08, 0x95, 0x10, 0x92, 0xE1, 0x00, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, + 0x0F, 0x92, 0x11, 0x24, 0x2F, 0x93, 0x3F, 0x93, 0x4F, 0x93, 0x5F, 0x93, 0x6F, 0x93, 0x7F, 0x93, + 0x8F, 0x93, 0x9F, 0x93, 0xAF, 0x93, 0xBF, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x80, 0x91, 0xE1, 0x00, + 0x80, 0xFF, 0x16, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x80, 0xFF, 0x12, 0xC0, 0x80, 0x91, 0xE2, 0x00, + 0x8E, 0x7F, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, 0x80, 0x93, 0xE2, 0x00, + 0x80, 0x91, 0xD8, 0x00, 0x80, 0x62, 0x80, 0x93, 0xD8, 0x00, 0x19, 0xBC, 0x1E, 0xBA, 0x6B, 0xD1, + 0x80, 0x91, 0xE1, 0x00, 0x84, 0xFF, 0x2E, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x84, 0xFF, 0x2A, 0xC0, + 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, 0x89, 0xBD, 0x09, 0xB4, 0x00, 0xFE, 0xFD, 0xCF, 0x80, 0x91, + 0xD8, 0x00, 0x8F, 0x7D, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xE1, 0x00, 0x8F, 0x7E, 0x80, 0x93, + 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x8F, 0x7E, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, + 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0x24, 0x02, 0x88, 0x23, 0x11, 0xF0, 0x84, 0xE0, + 0x07, 0xC0, 0x80, 0x91, 0xE3, 0x00, 0x87, 0xFD, 0x02, 0xC0, 0x81, 0xE0, 0x01, 0xC0, 0x83, 0xE0, + 0x8E, 0xBB, 0x39, 0xD1, 0x80, 0x91, 0xE1, 0x00, 0x83, 0xFF, 0x21, 0xC0, 0x80, 0x91, 0xE2, 0x00, + 0x83, 0xFF, 0x1D, 0xC0, 0x80, 0x91, 0xE1, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x82, 0xE0, + 0x8E, 0xBB, 0x10, 0x92, 0x24, 0x02, 0x80, 0x91, 0xE1, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, + 0x80, 0x91, 0xE2, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, + 0x80, 0x93, 0xE2, 0x00, 0x42, 0xE0, 0x60, 0xE0, 0x80, 0xE0, 0x0B, 0xDF, 0x14, 0xD1, 0xFF, 0x91, + 0xEF, 0x91, 0xBF, 0x91, 0xAF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x7F, 0x91, 0x6F, 0x91, 0x5F, 0x91, + 0x4F, 0x91, 0x3F, 0x91, 0x2F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, 0x18, 0x95, + 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0xCD, 0xB7, 0xDE, 0xB7, 0xE6, 0xE2, 0xF2, 0xE0, + 0x88, 0xE0, 0x8E, 0x0F, 0x90, 0x91, 0xF1, 0x00, 0x91, 0x93, 0x8E, 0x13, 0xFB, 0xCF, 0x0F, 0xDD, + 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFF, 0xDB, 0xC0, 0x80, 0x91, 0x26, 0x02, 0x90, 0x91, 0x27, 0x02, + 0x95, 0x30, 0x09, 0xF4, 0x66, 0xC0, 0x30, 0xF4, 0x91, 0x30, 0x59, 0xF1, 0x68, 0xF0, 0x93, 0x30, + 0x41, 0xF1, 0xCD, 0xC0, 0x98, 0x30, 0x09, 0xF4, 0x9D, 0xC0, 0x99, 0x30, 0x09, 0xF4, 0xAC, 0xC0, + 0x96, 0x30, 0x09, 0xF0, 0xC4, 0xC0, 0x76, 0xC0, 0x80, 0x38, 0x81, 0xF0, 0x82, 0x38, 0x09, 0xF0, + 0xBE, 0xC0, 0x80, 0x91, 0x2A, 0x02, 0x8F, 0x70, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, 0xEB, 0x00, + 0x85, 0xFB, 0x88, 0x27, 0x80, 0xF9, 0x10, 0x92, 0xE9, 0x00, 0x01, 0xC0, 0x80, 0xE0, 0x90, 0x91, + 0xE8, 0x00, 0x97, 0x7F, 0x90, 0x93, 0xE8, 0x00, 0x80, 0x93, 0xF1, 0x00, 0x10, 0x92, 0xF1, 0x00, + 0x84, 0xC0, 0x28, 0x2F, 0x2D, 0x7F, 0x09, 0xF0, 0xA2, 0xC0, 0x82, 0x30, 0x09, 0xF0, 0x9F, 0xC0, + 0x80, 0x91, 0x28, 0x02, 0x81, 0x11, 0x27, 0xC0, 0x80, 0x91, 0x2A, 0x02, 0x8F, 0x70, 0x09, 0xF4, + 0x96, 0xC0, 0x80, 0x93, 0xE9, 0x00, 0x20, 0x91, 0xEB, 0x00, 0x20, 0xFF, 0x1C, 0xC0, 0x93, 0x30, + 0x21, 0xF4, 0x80, 0x91, 0xEB, 0x00, 0x80, 0x62, 0x14, 0xC0, 0x90, 0x91, 0xEB, 0x00, 0x90, 0x61, + 0x90, 0x93, 0xEB, 0x00, 0x21, 0xE0, 0x30, 0xE0, 0xA9, 0x01, 0x02, 0xC0, 0x44, 0x0F, 0x55, 0x1F, + 0x8A, 0x95, 0xE2, 0xF7, 0x40, 0x93, 0xEA, 0x00, 0x10, 0x92, 0xEA, 0x00, 0x80, 0x91, 0xEB, 0x00, + 0x88, 0x60, 0x80, 0x93, 0xEB, 0x00, 0x10, 0x92, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, + 0x4F, 0xC0, 0x81, 0x11, 0x6C, 0xC0, 0x10, 0x91, 0x28, 0x02, 0x1F, 0x77, 0x80, 0x91, 0xE3, 0x00, + 0x80, 0x78, 0x81, 0x2B, 0x80, 0x93, 0xE3, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0x7B, 0xDE, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xFC, 0xCF, 0x80, 0x91, 0xE3, 0x00, + 0x80, 0x68, 0x80, 0x93, 0xE3, 0x00, 0x11, 0x11, 0x02, 0xC0, 0x82, 0xE0, 0x01, 0xC0, 0x83, 0xE0, + 0x8E, 0xBB, 0x4D, 0xC0, 0x80, 0x58, 0x82, 0x30, 0x08, 0xF0, 0x49, 0xC0, 0xAE, 0x01, 0x4F, 0x5F, + 0x5F, 0x4F, 0x60, 0x91, 0x2A, 0x02, 0x80, 0x91, 0x28, 0x02, 0x90, 0x91, 0x29, 0x02, 0x69, 0xDD, + 0xBC, 0x01, 0x00, 0x97, 0x09, 0xF4, 0x3B, 0xC0, 0x90, 0x91, 0xE8, 0x00, 0x97, 0x7F, 0x90, 0x93, + 0xE8, 0x00, 0x89, 0x81, 0x9A, 0x81, 0xE1, 0xDD, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x2D, 0xC0, 0x80, 0x38, 0x59, 0xF5, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0x80, 0x91, 0x24, 0x02, 0x80, 0x93, 0xF1, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, + 0x80, 0x93, 0xE8, 0x00, 0x3A, 0xDE, 0x1B, 0xC0, 0x81, 0x11, 0x19, 0xC0, 0x90, 0x91, 0x28, 0x02, + 0x92, 0x30, 0xA8, 0xF4, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x90, 0x93, + 0x24, 0x02, 0x2B, 0xDE, 0x80, 0x91, 0x24, 0x02, 0x81, 0x11, 0x06, 0xC0, 0x80, 0x91, 0xE3, 0x00, + 0x87, 0xFD, 0x02, 0xC0, 0x81, 0xE0, 0x01, 0xC0, 0x84, 0xE0, 0x8E, 0xBB, 0x24, 0xDC, 0x80, 0x91, + 0xE8, 0x00, 0x83, 0xFF, 0x0A, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, + 0x80, 0x91, 0xEB, 0x00, 0x80, 0x62, 0x80, 0x93, 0xEB, 0x00, 0x0F, 0x90, 0x0F, 0x90, 0xDF, 0x91, + 0xCF, 0x91, 0x1F, 0x91, 0x08, 0x95, 0x08, 0x95, 0xCF, 0x93, 0x8E, 0xB3, 0x88, 0x23, 0x99, 0xF0, + 0xC0, 0x91, 0xE9, 0x00, 0xCF, 0x70, 0x90, 0x91, 0xEC, 0x00, 0x89, 0x2F, 0x81, 0x70, 0x90, 0xFD, + 0x80, 0xE8, 0xC8, 0x2B, 0x10, 0x92, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFD, 0xE8, 0xDE, + 0xCF, 0x70, 0xC0, 0x93, 0xE9, 0x00, 0xCF, 0x91, 0x08, 0x95, 0xA1, 0xE2, 0x1A, 0x2E, 0xAA, 0x1B, + 0xBB, 0x1B, 0xFD, 0x01, 0x0D, 0xC0, 0xAA, 0x1F, 0xBB, 0x1F, 0xEE, 0x1F, 0xFF, 0x1F, 0xA2, 0x17, + 0xB3, 0x07, 0xE4, 0x07, 0xF5, 0x07, 0x20, 0xF0, 0xA2, 0x1B, 0xB3, 0x0B, 0xE4, 0x0B, 0xF5, 0x0B, + 0x66, 0x1F, 0x77, 0x1F, 0x88, 0x1F, 0x99, 0x1F, 0x1A, 0x94, 0x69, 0xF7, 0x60, 0x95, 0x70, 0x95, + 0x80, 0x95, 0x90, 0x95, 0x9B, 0x01, 0xAC, 0x01, 0xBD, 0x01, 0xCF, 0x01, 0x08, 0x95, 0xF9, 0x99, + 0xFE, 0xCF, 0x92, 0xBD, 0x81, 0xBD, 0xF8, 0x9A, 0x99, 0x27, 0x80, 0xB5, 0x08, 0x95, 0x26, 0x2F, + 0xF9, 0x99, 0xFE, 0xCF, 0x1F, 0xBA, 0x92, 0xBD, 0x81, 0xBD, 0x20, 0xBD, 0x0F, 0xB6, 0xF8, 0x94, + 0xFA, 0x9A, 0xF9, 0x9A, 0x0F, 0xBE, 0x01, 0x96, 0x08, 0x95, 0xF8, 0x94, 0xFF, 0xCF, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x03, 0x48, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, + 0x4C, 0x00, 0x6F, 0x00, 0x61, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x32, 0x00, 0x20, 0x00, + 0x55, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x12, 0x03, 0x4E, 0x00, 0x69, 0x00, 0x63, 0x00, + 0x6F, 0x00, 0x48, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x00, 0x00, 0x04, 0x03, 0x09, 0x04, + 0x09, 0x02, 0x3E, 0x00, 0x02, 0x01, 0x00, 0x80, 0x32, 0x09, 0x04, 0x00, 0x00, 0x01, 0x02, 0x02, + 0x01, 0x00, 0x05, 0x24, 0x00, 0x10, 0x01, 0x04, 0x24, 0x02, 0x02, 0x05, 0x24, 0x06, 0x00, 0x01, + 0x07, 0x05, 0x82, 0x03, 0x08, 0x00, 0xFF, 0x09, 0x04, 0x01, 0x00, 0x02, 0x0A, 0x00, 0x00, 0x00, + 0x07, 0x05, 0x04, 0x02, 0x40, 0x00, 0x05, 0x07, 0x05, 0x83, 0x02, 0x40, 0x00, 0x05, 0x12, 0x01, + 0x10, 0x01, 0x02, 0x00, 0x00, 0x08, 0x41, 0x23, 0x43, 0x00, 0x04, 0x02, 0x01, 0x02, 0x00, 0x01, + 0x48, 0x4C, 0x32, 0x2E, 0x30, 0x2E, 0x34, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x6A, 0xCC, 0x7B, 0xCC, 0x8C, 0xCC, 0x98, 0xCC, 0x9D, 0xCC, 0xA2, 0xCC, 0xA8, 0xCC, 0x08, 0x95, + 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, + 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0x00, 0x70, 0x00, 0x00, 0x00, 0xDF, 0xFB, 0xDC, +}; // end of HoodLoader2_0_4_Uno_32u2_hex + +// File = HoodLoader2_0_4_Mega_32u2.hex +// Loader start: 7000, length: 4096 +// MD5 sum = 0C 4B 12 AB 2C 1D 4F 5B 2B B9 E2 91 92 AA A4 F8 + +const byte HoodLoader2_0_4_Mega_32u2_hex[] PROGMEM = { + 0x39, 0xC0, 0x00, 0x00, 0x83, 0xC0, 0x00, 0x00, 0x81, 0xC0, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x00, + 0x7D, 0xC0, 0x00, 0x00, 0x7B, 0xC0, 0x00, 0x00, 0x79, 0xC0, 0x00, 0x00, 0x77, 0xC0, 0x00, 0x00, + 0x75, 0xC0, 0x00, 0x00, 0x73, 0xC0, 0x00, 0x00, 0x71, 0xC0, 0x00, 0x00, 0x46, 0xC5, 0x00, 0x00, + 0x6D, 0xC0, 0x00, 0x00, 0x6B, 0xC0, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x00, 0x67, 0xC0, 0x00, 0x00, + 0x65, 0xC0, 0x00, 0x00, 0x63, 0xC0, 0x00, 0x00, 0x61, 0xC0, 0x00, 0x00, 0x5F, 0xC0, 0x00, 0x00, + 0x5D, 0xC0, 0x00, 0x00, 0x5B, 0xC0, 0x00, 0x00, 0x59, 0xC0, 0x00, 0x00, 0xAB, 0xC3, 0x00, 0x00, + 0x55, 0xC0, 0x00, 0x00, 0x53, 0xC0, 0x00, 0x00, 0x51, 0xC0, 0x00, 0x00, 0x4F, 0xC0, 0x00, 0x00, + 0x4D, 0xC0, 0x00, 0x00, 0x11, 0x24, 0x1F, 0xBE, 0xCF, 0xEF, 0xD4, 0xE0, 0xDE, 0xBF, 0xCD, 0xBF, + 0x90, 0x91, 0x80, 0x02, 0x10, 0x92, 0x80, 0x02, 0x84, 0xB7, 0x14, 0xBE, 0x28, 0xE1, 0x0F, 0xB6, + 0xF8, 0x94, 0x20, 0x93, 0x60, 0x00, 0x10, 0x92, 0x60, 0x00, 0x0F, 0xBE, 0xE0, 0xE0, 0xF0, 0xE0, + 0x25, 0x91, 0x34, 0x91, 0x2F, 0x3F, 0x3F, 0x4F, 0xE1, 0xF0, 0x81, 0xFF, 0x12, 0xC0, 0x97, 0x37, + 0xC1, 0xF0, 0x87, 0xE7, 0x80, 0x93, 0x80, 0x02, 0x8F, 0xEF, 0x9E, 0xE9, 0x24, 0xE2, 0x81, 0x50, + 0x90, 0x40, 0x20, 0x40, 0xE1, 0xF7, 0x00, 0xC0, 0x00, 0x00, 0x10, 0x92, 0x80, 0x02, 0x1F, 0xD0, + 0x08, 0xC0, 0x80, 0xFF, 0x02, 0xC0, 0x1B, 0xD0, 0x04, 0xC0, 0x83, 0xFF, 0x02, 0xC0, 0x97, 0x37, + 0xD1, 0xF7, 0x11, 0xE0, 0xA0, 0xE0, 0xB1, 0xE0, 0xEE, 0xE8, 0xFE, 0xE7, 0x02, 0xC0, 0x05, 0x90, + 0x0D, 0x92, 0xAC, 0x39, 0xB1, 0x07, 0xD9, 0xF7, 0x12, 0xE0, 0xAC, 0xE9, 0xB1, 0xE0, 0x01, 0xC0, + 0x1D, 0x92, 0xA0, 0x33, 0xB1, 0x07, 0xE1, 0xF7, 0x36, 0xD0, 0xBF, 0xC6, 0x79, 0xCF, 0x8B, 0xB1, + 0x80, 0x63, 0x8B, 0xB9, 0xE0, 0xE0, 0xF0, 0xE0, 0x09, 0x94, 0x84, 0xE0, 0x80, 0x93, 0xE9, 0x00, + 0x80, 0x91, 0xE8, 0x00, 0x85, 0xFD, 0x0D, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFD, 0xF3, 0xCF, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, + 0x02, 0xC0, 0x80, 0x91, 0xF1, 0x00, 0x08, 0x95, 0x93, 0xE0, 0x90, 0x93, 0xE9, 0x00, 0x90, 0x91, + 0xE8, 0x00, 0x95, 0xFF, 0x03, 0xC0, 0x80, 0x93, 0xF1, 0x00, 0x08, 0x95, 0x90, 0x91, 0xE8, 0x00, + 0x9E, 0x77, 0x90, 0x93, 0xE8, 0x00, 0x90, 0x91, 0xE8, 0x00, 0x90, 0xFD, 0xF4, 0xCF, 0x9E, 0xB3, + 0x91, 0x11, 0xF9, 0xCF, 0x08, 0x95, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0x00, 0xD0, 0xCD, 0xB7, + 0xDE, 0xB7, 0x90, 0xE0, 0x80, 0xE8, 0x0F, 0xB6, 0xF8, 0x94, 0x80, 0x93, 0x61, 0x00, 0x90, 0x93, + 0x61, 0x00, 0x0F, 0xBE, 0x81, 0xE0, 0x85, 0xBF, 0x82, 0xE0, 0x85, 0xBF, 0x7F, 0xD4, 0x84, 0xE0, + 0x85, 0xBD, 0x8A, 0xB1, 0x88, 0x6B, 0x8A, 0xB9, 0x8B, 0xB1, 0x84, 0x6B, 0x8B, 0xB9, 0x78, 0x94, + 0x13, 0xE0, 0xBB, 0x24, 0xB3, 0x94, 0xE5, 0xE0, 0x8E, 0x2E, 0x21, 0x2C, 0x31, 0x2C, 0x84, 0xE9, + 0x91, 0xE0, 0x27, 0xE0, 0x28, 0x0F, 0x29, 0x83, 0x84, 0xE0, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, + 0xE8, 0x00, 0x82, 0xFF, 0x8D, 0xC1, 0xA1, 0xDF, 0x98, 0x2F, 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, + 0x13, 0xC0, 0x80, 0x91, 0xC8, 0x00, 0x85, 0xFF, 0xFC, 0xCF, 0x90, 0x93, 0xCE, 0x00, 0x80, 0x91, + 0xF2, 0x00, 0x81, 0x11, 0x05, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x5C, 0x98, 0x10, 0x93, 0xA1, 0x01, 0x78, 0xC1, 0x95, 0x34, 0x19, 0xF4, 0x10, 0x92, 0x00, 0x01, + 0x32, 0xC0, 0x88, 0xE8, 0x89, 0x0F, 0x82, 0x30, 0x10, 0xF0, 0x94, 0x35, 0x11, 0xF4, 0x7D, 0xDF, + 0x2A, 0xC0, 0x90, 0x35, 0x41, 0xF1, 0x9C, 0x34, 0x31, 0xF1, 0x94, 0x37, 0x21, 0xF4, 0x84, 0xE4, + 0x8B, 0xDF, 0x80, 0xE0, 0x03, 0xC0, 0x91, 0x36, 0x19, 0xF4, 0x89, 0xE5, 0x85, 0xDF, 0x5C, 0xC1, + 0x91, 0x34, 0xD9, 0xF4, 0x6A, 0xDF, 0x08, 0x2F, 0x68, 0xDF, 0x90, 0xE0, 0x88, 0x0F, 0x99, 0x1F, + 0x20, 0x2F, 0x30, 0xE0, 0x32, 0x2F, 0x22, 0x27, 0x33, 0x0F, 0x82, 0x2B, 0x93, 0x2B, 0xAA, 0x27, + 0x97, 0xFD, 0xA0, 0x95, 0xBA, 0x2F, 0x80, 0x93, 0x9C, 0x01, 0x90, 0x93, 0x9D, 0x01, 0xA0, 0x93, + 0x9E, 0x01, 0xB0, 0x93, 0x9F, 0x01, 0x8D, 0xE0, 0xE1, 0xCF, 0x90, 0x37, 0x11, 0xF4, 0x83, 0xE5, + 0xDD, 0xCF, 0x93, 0x35, 0x61, 0xF4, 0x54, 0xE9, 0xE5, 0x2E, 0x51, 0xE0, 0xF5, 0x2E, 0xF7, 0x01, + 0x81, 0x91, 0x7F, 0x01, 0x59, 0xDF, 0x29, 0x81, 0x2E, 0x11, 0xF9, 0xCF, 0x2D, 0xC1, 0x96, 0x35, + 0x21, 0xF4, 0x81, 0xE3, 0x51, 0xDF, 0x80, 0xE3, 0xC9, 0xCF, 0x93, 0x37, 0x31, 0xF4, 0x8A, 0xE8, + 0x4B, 0xDF, 0x85, 0xE9, 0x49, 0xDF, 0x8E, 0xE1, 0xC1, 0xCF, 0x95, 0x36, 0xA9, 0xF4, 0xE0, 0xE0, + 0xF0, 0xE0, 0x10, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0x80, 0x92, + 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xE0, 0x58, 0xFF, 0x4F, 0xE1, 0x15, + 0x80, 0xE7, 0xF8, 0x07, 0x71, 0xF7, 0xC7, 0xCF, 0x9C, 0x36, 0x51, 0xF4, 0x16, 0xDF, 0x80, 0x95, + 0x99, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x08, 0x2E, 0x90, 0x93, 0x57, 0x00, 0xE8, 0x95, 0xBB, 0xCF, + 0x92, 0x37, 0x21, 0xF4, 0x89, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x10, 0xC0, 0x96, 0x34, 0x19, 0xF4, + 0x89, 0xE0, 0xF1, 0x01, 0x0B, 0xC0, 0x9E, 0x34, 0x21, 0xF4, 0x89, 0xE0, 0xE3, 0xE0, 0xF0, 0xE0, + 0x05, 0xC0, 0x91, 0x35, 0x39, 0xF4, 0x89, 0xE0, 0xE2, 0xE0, 0xF0, 0xE0, 0x80, 0x93, 0x57, 0x00, + 0x84, 0x91, 0x84, 0xCF, 0x92, 0x36, 0x31, 0xF4, 0x89, 0xE5, 0x06, 0xDF, 0x80, 0xE0, 0x04, 0xDF, + 0x80, 0xE8, 0x7C, 0xCF, 0x92, 0x34, 0x19, 0xF0, 0x97, 0x36, 0x09, 0xF0, 0xCD, 0xC0, 0x9A, 0x83, + 0xE4, 0xDE, 0xE8, 0x2E, 0xF1, 0x2C, 0xFE, 0x2C, 0xEE, 0x24, 0xDF, 0xDE, 0xE8, 0x2A, 0xDD, 0xDE, + 0x08, 0x2F, 0x8B, 0xEB, 0x80, 0x0F, 0x9A, 0x81, 0x82, 0x30, 0x10, 0xF0, 0x8F, 0xE3, 0x66, 0xCF, + 0x97, 0x36, 0x09, 0xF0, 0x44, 0xC0, 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x37, 0x01, + 0xA1, 0x2C, 0x61, 0x14, 0x71, 0x04, 0x09, 0xF4, 0xB7, 0xC0, 0xC0, 0x90, 0x9C, 0x01, 0xD0, 0x90, + 0x9D, 0x01, 0xE0, 0x90, 0x9E, 0x01, 0xF0, 0x90, 0x9F, 0x01, 0x06, 0x34, 0xB9, 0xF4, 0xEA, 0x2D, + 0xF0, 0xE0, 0xEC, 0x29, 0xFD, 0x29, 0x84, 0x91, 0xCF, 0xDE, 0xAA, 0x20, 0x69, 0xF0, 0xF2, 0xE0, + 0xCF, 0x0E, 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9C, 0x01, 0xD0, 0x92, 0x9D, 0x01, + 0xE0, 0x92, 0x9E, 0x01, 0xF0, 0x92, 0x9F, 0x01, 0xAB, 0x24, 0x15, 0xC0, 0xD7, 0x01, 0xC6, 0x01, + 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0x42, 0xD5, 0xB6, 0xDE, 0x22, 0xE0, 0xC2, 0x0E, + 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9C, 0x01, 0xD0, 0x92, 0x9D, 0x01, 0xE0, 0x92, + 0x9E, 0x01, 0xF0, 0x92, 0x9F, 0x01, 0x81, 0xE0, 0x68, 0x1A, 0x71, 0x08, 0xC2, 0xCF, 0x40, 0x90, + 0x9C, 0x01, 0x50, 0x90, 0x9D, 0x01, 0x60, 0x90, 0x9E, 0x01, 0x70, 0x90, 0x9F, 0x01, 0x06, 0x34, + 0x39, 0xF4, 0xF2, 0x01, 0x10, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0xFC, 0x82, 0xEB, 0x82, 0x91, 0x2C, 0xA1, 0x2C, 0xEB, 0x81, 0xFC, 0x81, 0xEF, 0x2B, 0x09, 0xF4, + 0x50, 0xC0, 0x06, 0x34, 0x31, 0xF5, 0xAA, 0x20, 0x01, 0xF1, 0xC0, 0x90, 0x9C, 0x01, 0xD0, 0x90, + 0x9D, 0x01, 0xE0, 0x90, 0x9E, 0x01, 0xF0, 0x90, 0x9F, 0x01, 0x67, 0xDE, 0x29, 0x2D, 0x30, 0xE0, + 0x38, 0x2B, 0xF6, 0x01, 0x09, 0x01, 0xB0, 0x92, 0x57, 0x00, 0xE8, 0x95, 0x11, 0x24, 0xF2, 0xE0, + 0xCF, 0x0E, 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9C, 0x01, 0xD0, 0x92, 0x9D, 0x01, + 0xE0, 0x92, 0x9E, 0x01, 0xF0, 0x92, 0x9F, 0x01, 0x02, 0xC0, 0x4F, 0xDE, 0x98, 0x2E, 0xAB, 0x24, + 0x22, 0xC0, 0x4B, 0xDE, 0x68, 0x2F, 0x80, 0x91, 0x9C, 0x01, 0x90, 0x91, 0x9D, 0x01, 0xA0, 0x91, + 0x9E, 0x01, 0xB0, 0x91, 0x9F, 0x01, 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0xE7, 0xD4, + 0x80, 0x91, 0x9C, 0x01, 0x90, 0x91, 0x9D, 0x01, 0xA0, 0x91, 0x9E, 0x01, 0xB0, 0x91, 0x9F, 0x01, + 0x02, 0x96, 0xA1, 0x1D, 0xB1, 0x1D, 0x80, 0x93, 0x9C, 0x01, 0x90, 0x93, 0x9D, 0x01, 0xA0, 0x93, + 0x9E, 0x01, 0xB0, 0x93, 0x9F, 0x01, 0x8B, 0x81, 0x9C, 0x81, 0x01, 0x97, 0x9C, 0x83, 0x8B, 0x83, + 0xAB, 0xCF, 0x06, 0x34, 0x09, 0xF0, 0xCF, 0xCE, 0xF2, 0x01, 0x80, 0x92, 0x57, 0x00, 0xE8, 0x95, + 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xC7, 0xCE, 0x9B, 0x31, 0x09, 0xF0, 0x3F, 0xCF, 0x04, 0xC0, + 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, 0x55, 0xC0, 0x8F, 0xB7, 0xF8, 0x94, 0x90, 0x91, 0xA5, 0x01, + 0x8F, 0xBF, 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, 0x06, 0xC0, 0x99, 0x23, 0x09, 0xF4, 0x49, 0xC0, + 0x5D, 0x98, 0x10, 0x93, 0xA2, 0x01, 0xF9, 0x2E, 0xFF, 0x20, 0xB1, 0xF0, 0x00, 0x91, 0xA4, 0x01, + 0xE0, 0x2F, 0xF0, 0xE0, 0xEA, 0x55, 0xFE, 0x4F, 0x80, 0x81, 0x0E, 0xDE, 0x0F, 0x5F, 0x0F, 0x77, + 0x00, 0x93, 0xA4, 0x01, 0x9F, 0xB7, 0xF8, 0x94, 0x80, 0x91, 0xA5, 0x01, 0x81, 0x50, 0x80, 0x93, + 0xA5, 0x01, 0x9F, 0xBF, 0xFA, 0x94, 0xE8, 0xCF, 0x10, 0x93, 0xE9, 0x00, 0x90, 0x91, 0xE8, 0x00, + 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x95, 0xFD, 0x1D, 0xC0, 0x80, 0x91, + 0xE8, 0x00, 0x80, 0xFD, 0x10, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, 0x80, 0x91, 0xA0, 0x01, + 0x88, 0x23, 0xB9, 0xF0, 0xF4, 0xE0, 0xF0, 0x93, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, + 0x80, 0x93, 0xE8, 0x00, 0x0E, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x03, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x51, 0xF3, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xF9, 0xCF, + 0xE5, 0xCF, 0x22, 0xD4, 0xA8, 0x9B, 0x15, 0xC0, 0xA8, 0x9A, 0x80, 0x91, 0xA2, 0x01, 0x88, 0x23, + 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, 0xA2, 0x01, 0x81, 0x11, 0x01, 0xC0, 0x5D, 0x9A, 0x80, 0x91, + 0xA1, 0x01, 0x88, 0x23, 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, 0xA1, 0x01, 0x81, 0x11, 0x01, 0xC0, + 0x5C, 0x9A, 0x80, 0x91, 0x00, 0x01, 0x81, 0x11, 0xF7, 0xCD, 0x8F, 0xE9, 0x9F, 0xE0, 0x01, 0x97, + 0xF1, 0xF7, 0x00, 0xC0, 0x00, 0x00, 0x80, 0x91, 0xE0, 0x00, 0x81, 0x60, 0x80, 0x93, 0xE0, 0x00, + 0x9C, 0xE0, 0x88, 0xE1, 0x0F, 0xB6, 0xF8, 0x94, 0xA8, 0x95, 0x80, 0x93, 0x60, 0x00, 0x0F, 0xBE, + 0x90, 0x93, 0x60, 0x00, 0xFF, 0xCF, 0x42, 0xE0, 0x61, 0xEC, 0x82, 0xE0, 0xE2, 0xD1, 0x42, 0xE3, + 0x61, 0xE8, 0x83, 0xE0, 0xDE, 0xD1, 0x42, 0xE3, 0x60, 0xE8, 0x84, 0xE0, 0xDA, 0xC1, 0xCF, 0x93, + 0x80, 0x91, 0x28, 0x02, 0x98, 0x2F, 0x9F, 0x77, 0x91, 0x32, 0x09, 0xF0, 0xC1, 0xC0, 0x90, 0x91, + 0x29, 0x02, 0x91, 0x32, 0x99, 0xF4, 0x81, 0x3A, 0x09, 0xF0, 0xBA, 0xC0, 0x80, 0x91, 0xE8, 0x00, + 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x67, 0xE0, 0x70, 0xE0, 0x81, 0xE0, 0x91, 0xE0, 0x65, 0xD1, + 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, 0xAA, 0xC0, 0x90, 0x32, 0x09, 0xF0, + 0x92, 0xC0, 0x81, 0x32, 0x09, 0xF0, 0xA4, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0xE1, 0xE0, 0xF1, 0xE0, 0x87, 0xE0, 0x88, 0x23, 0x09, 0xF1, 0x9E, 0xB3, 0x99, 0x23, + 0x11, 0xF1, 0x95, 0x30, 0x01, 0xF1, 0x90, 0x91, 0xE8, 0x00, 0x93, 0xFD, 0x1C, 0xC0, 0x90, 0x91, + 0xE8, 0x00, 0x92, 0xFF, 0xF1, 0xCF, 0x90, 0x91, 0xF2, 0x00, 0x99, 0x23, 0x29, 0xF0, 0x90, 0x91, + 0xF1, 0x00, 0x91, 0x93, 0x81, 0x50, 0xB9, 0xF7, 0x90, 0x91, 0xE8, 0x00, 0x9B, 0x77, 0x90, 0x93, + 0xE8, 0x00, 0xE2, 0xCF, 0x8E, 0xB3, 0x88, 0x23, 0x31, 0xF0, 0x85, 0x30, 0x21, 0xF0, 0x80, 0x91, + 0xE8, 0x00, 0x80, 0xFF, 0xF7, 0xCF, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x20, 0x91, 0x01, 0x01, 0x30, 0x91, 0x02, 0x01, 0x40, 0x91, 0x03, 0x01, 0x50, 0x91, 0x04, 0x01, + 0x21, 0x15, 0x81, 0xEE, 0x38, 0x07, 0x41, 0x05, 0x51, 0x05, 0x21, 0xF4, 0x81, 0xE0, 0x80, 0x93, + 0xA0, 0x01, 0x02, 0xC0, 0x10, 0x92, 0xA0, 0x01, 0x10, 0x92, 0xA5, 0x01, 0x10, 0x92, 0xA4, 0x01, + 0x10, 0x92, 0xA3, 0x01, 0x80, 0x91, 0x06, 0x01, 0x81, 0x30, 0x21, 0xF0, 0x82, 0x30, 0x21, 0xF4, + 0xC0, 0xE2, 0x03, 0xC0, 0xC0, 0xE3, 0x01, 0xC0, 0xC0, 0xE0, 0x80, 0x91, 0x05, 0x01, 0x82, 0x30, + 0x09, 0xF4, 0xC8, 0x60, 0x80, 0x91, 0x07, 0x01, 0x87, 0x30, 0x31, 0xF0, 0x88, 0x30, 0x31, 0xF0, + 0x86, 0x30, 0x29, 0xF4, 0xC2, 0x60, 0x03, 0xC0, 0xC4, 0x60, 0x01, 0xC0, 0xC6, 0x60, 0x5B, 0x9A, + 0x10, 0x92, 0xC9, 0x00, 0x10, 0x92, 0xC8, 0x00, 0x10, 0x92, 0xCA, 0x00, 0xDA, 0x01, 0xC9, 0x01, + 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0xBC, 0x01, 0xCD, 0x01, 0x60, 0x58, 0x7B, 0x47, + 0x81, 0x4E, 0x9F, 0x4F, 0x5A, 0xD3, 0x21, 0x50, 0x31, 0x09, 0x30, 0x93, 0xCD, 0x00, 0x20, 0x93, + 0xCC, 0x00, 0xC0, 0x93, 0xCA, 0x00, 0x82, 0xE0, 0x80, 0x93, 0xC8, 0x00, 0x88, 0xE9, 0x80, 0x93, + 0xC9, 0x00, 0x5B, 0x98, 0x15, 0xC0, 0x92, 0x32, 0x99, 0xF4, 0x81, 0x32, 0x89, 0xF4, 0x80, 0x91, + 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x30, 0xD1, 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, + 0x06, 0xC0, 0x80, 0x91, 0x2A, 0x02, 0x80, 0xFF, 0x02, 0xC0, 0x5F, 0x98, 0x01, 0xC0, 0x5F, 0x9A, + 0xCF, 0x91, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, 0x0F, 0x92, 0x11, 0x24, 0x8F, 0x93, + 0x9F, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x90, 0x91, 0xCE, 0x00, 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, + 0x17, 0xC0, 0x8E, 0xB3, 0x84, 0x30, 0xA1, 0xF4, 0x80, 0x91, 0xA5, 0x01, 0x87, 0xFD, 0x10, 0xC0, + 0x80, 0x91, 0xA3, 0x01, 0xE8, 0x2F, 0xF0, 0xE0, 0xEA, 0x55, 0xFE, 0x4F, 0x90, 0x83, 0x8F, 0x5F, + 0x8F, 0x77, 0x80, 0x93, 0xA3, 0x01, 0x80, 0x91, 0xA5, 0x01, 0x8F, 0x5F, 0x80, 0x93, 0xA5, 0x01, + 0xFF, 0x91, 0xEF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, + 0x18, 0x95, 0x29, 0x2F, 0x30, 0xE0, 0x22, 0x30, 0x31, 0x05, 0x59, 0xF0, 0x23, 0x30, 0x31, 0x05, + 0x69, 0xF0, 0x21, 0x30, 0x31, 0x05, 0xF9, 0xF4, 0x82, 0xE1, 0x90, 0xE0, 0x22, 0xE8, 0x31, 0xE0, + 0x1E, 0xC0, 0x8E, 0xE3, 0x90, 0xE0, 0x24, 0xE4, 0x31, 0xE0, 0x19, 0xC0, 0x88, 0x23, 0x49, 0xF0, + 0x81, 0x30, 0x61, 0xF0, 0x82, 0x30, 0x79, 0xF4, 0x82, 0xE2, 0x90, 0xE0, 0x28, 0xE0, 0x31, 0xE0, + 0x0E, 0xC0, 0x84, 0xE0, 0x90, 0xE0, 0x20, 0xE4, 0x31, 0xE0, 0x09, 0xC0, 0x82, 0xE1, 0x90, 0xE0, + 0x2C, 0xE2, 0x31, 0xE0, 0x04, 0xC0, 0x80, 0xE0, 0x90, 0xE0, 0x20, 0xE0, 0x30, 0xE0, 0xFA, 0x01, + 0x31, 0x83, 0x20, 0x83, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, + 0x23, 0xE0, 0xFB, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0xF9, 0x99, 0xFE, 0xCF, 0x25, 0xE0, 0xFB, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, 0x21, 0xE0, 0xFB, 0x01, 0x0A, 0x01, 0x20, 0x93, + 0x57, 0x00, 0xE8, 0x95, 0x11, 0x24, 0x08, 0x95, 0x21, 0xE2, 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, + 0x84, 0x91, 0x08, 0x95, 0x29, 0xE0, 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, + 0xE1, 0xE0, 0xF0, 0xE0, 0x89, 0xE0, 0x80, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, 0x80, 0x95, 0x99, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, + 0x08, 0x2E, 0x90, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x20, 0x91, 0x2E, 0x02, 0x30, 0x91, + 0x2F, 0x02, 0x26, 0x17, 0x37, 0x07, 0x48, 0xF0, 0x61, 0x15, 0x71, 0x05, 0x39, 0xF4, 0x20, 0x91, + 0xE8, 0x00, 0x2E, 0x77, 0x20, 0x93, 0xE8, 0x00, 0x01, 0xC0, 0xB9, 0x01, 0x40, 0xE0, 0x61, 0x15, + 0x71, 0x05, 0x79, 0xF1, 0x2E, 0xB3, 0x22, 0x23, 0xF1, 0xF1, 0x25, 0x30, 0xF1, 0xF1, 0x20, 0x91, + 0xE8, 0x00, 0x23, 0xFD, 0x3C, 0xC0, 0x20, 0x91, 0xE8, 0x00, 0x22, 0xFD, 0x2E, 0xC0, 0x20, 0x91, + 0xE8, 0x00, 0x20, 0xFF, 0xEC, 0xCF, 0x20, 0x91, 0xF2, 0x00, 0x30, 0xE0, 0xFC, 0x01, 0xCF, 0x01, + 0x61, 0x15, 0x71, 0x05, 0x59, 0xF0, 0x28, 0x30, 0x31, 0x05, 0x40, 0xF4, 0x81, 0x91, 0x80, 0x93, + 0xF1, 0x00, 0x61, 0x50, 0x71, 0x09, 0x2F, 0x5F, 0x3F, 0x4F, 0xF1, 0xCF, 0x41, 0xE0, 0x28, 0x30, + 0x31, 0x05, 0x09, 0xF0, 0x40, 0xE0, 0x20, 0x91, 0xE8, 0x00, 0x2E, 0x77, 0x20, 0x93, 0xE8, 0x00, + 0xCE, 0xCF, 0x41, 0x11, 0xCF, 0xCF, 0x09, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x61, 0xF0, 0x85, 0x30, + 0x61, 0xF0, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFD, 0x0A, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFF, + 0xF3, 0xCF, 0x80, 0xE0, 0x08, 0x95, 0x82, 0xE0, 0x08, 0x95, 0x83, 0xE0, 0x08, 0x95, 0x81, 0xE0, + 0x08, 0x95, 0x8F, 0x70, 0x80, 0x93, 0xE9, 0x00, 0xEB, 0xEE, 0xF0, 0xE0, 0x80, 0x81, 0x81, 0x60, + 0x80, 0x83, 0xED, 0xEE, 0xF0, 0xE0, 0x10, 0x82, 0x60, 0x93, 0xEC, 0x00, 0x40, 0x83, 0x80, 0x91, + 0xEE, 0x00, 0x88, 0x1F, 0x88, 0x27, 0x88, 0x1F, 0x08, 0x95, 0x80, 0x91, 0x28, 0x02, 0x87, 0xFF, + 0x0F, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFD, 0x04, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, + 0x10, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x0A, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x49, 0xF0, + 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xF9, 0xCF, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x08, 0x95, 0x3C, 0xD0, 0x3E, 0xD0, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x77, 0x80, 0x93, + 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, 0x80, 0x68, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, + 0x8F, 0x7D, 0x80, 0x93, 0xD8, 0x00, 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, 0x89, 0xBD, 0x09, 0xB4, + 0x00, 0xFE, 0xFD, 0xCF, 0x1E, 0xBA, 0x10, 0x92, 0x26, 0x02, 0x42, 0xE0, 0x60, 0xE0, 0x80, 0xE0, + 0xB0, 0xDF, 0x80, 0x91, 0xE1, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, + 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x88, 0x60, 0x80, 0x93, 0xE2, 0x00, + 0x80, 0x91, 0xE0, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE0, 0x00, 0x08, 0x95, 0xE3, 0xE6, 0xF0, 0xE0, + 0x80, 0x81, 0x8E, 0x7F, 0x80, 0x83, 0x81, 0xE0, 0x80, 0x93, 0x27, 0x02, 0xC3, 0xCF, 0x10, 0x92, + 0xE2, 0x00, 0x08, 0x95, 0x10, 0x92, 0xE1, 0x00, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, + 0x0F, 0x92, 0x11, 0x24, 0x2F, 0x93, 0x3F, 0x93, 0x4F, 0x93, 0x5F, 0x93, 0x6F, 0x93, 0x7F, 0x93, + 0x8F, 0x93, 0x9F, 0x93, 0xAF, 0x93, 0xBF, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x80, 0x91, 0xE1, 0x00, + 0x80, 0xFF, 0x16, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x80, 0xFF, 0x12, 0xC0, 0x80, 0x91, 0xE2, 0x00, + 0x8E, 0x7F, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, 0x80, 0x93, 0xE2, 0x00, + 0x80, 0x91, 0xD8, 0x00, 0x80, 0x62, 0x80, 0x93, 0xD8, 0x00, 0x19, 0xBC, 0x1E, 0xBA, 0x6B, 0xD1, + 0x80, 0x91, 0xE1, 0x00, 0x84, 0xFF, 0x2E, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x84, 0xFF, 0x2A, 0xC0, + 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, 0x89, 0xBD, 0x09, 0xB4, 0x00, 0xFE, 0xFD, 0xCF, 0x80, 0x91, + 0xD8, 0x00, 0x8F, 0x7D, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xE1, 0x00, 0x8F, 0x7E, 0x80, 0x93, + 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x8F, 0x7E, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, + 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0x26, 0x02, 0x88, 0x23, 0x11, 0xF0, 0x84, 0xE0, + 0x07, 0xC0, 0x80, 0x91, 0xE3, 0x00, 0x87, 0xFD, 0x02, 0xC0, 0x81, 0xE0, 0x01, 0xC0, 0x83, 0xE0, + 0x8E, 0xBB, 0x39, 0xD1, 0x80, 0x91, 0xE1, 0x00, 0x83, 0xFF, 0x21, 0xC0, 0x80, 0x91, 0xE2, 0x00, + 0x83, 0xFF, 0x1D, 0xC0, 0x80, 0x91, 0xE1, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x82, 0xE0, + 0x8E, 0xBB, 0x10, 0x92, 0x26, 0x02, 0x80, 0x91, 0xE1, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, + 0x80, 0x91, 0xE2, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, + 0x80, 0x93, 0xE2, 0x00, 0x42, 0xE0, 0x60, 0xE0, 0x80, 0xE0, 0x0B, 0xDF, 0x14, 0xD1, 0xFF, 0x91, + 0xEF, 0x91, 0xBF, 0x91, 0xAF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x7F, 0x91, 0x6F, 0x91, 0x5F, 0x91, + 0x4F, 0x91, 0x3F, 0x91, 0x2F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, 0x18, 0x95, + 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0xCD, 0xB7, 0xDE, 0xB7, 0xE8, 0xE2, 0xF2, 0xE0, + 0x88, 0xE0, 0x8E, 0x0F, 0x90, 0x91, 0xF1, 0x00, 0x91, 0x93, 0x8E, 0x13, 0xFB, 0xCF, 0x0F, 0xDD, + 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFF, 0xDB, 0xC0, 0x80, 0x91, 0x28, 0x02, 0x90, 0x91, 0x29, 0x02, + 0x95, 0x30, 0x09, 0xF4, 0x66, 0xC0, 0x30, 0xF4, 0x91, 0x30, 0x59, 0xF1, 0x68, 0xF0, 0x93, 0x30, + 0x41, 0xF1, 0xCD, 0xC0, 0x98, 0x30, 0x09, 0xF4, 0x9D, 0xC0, 0x99, 0x30, 0x09, 0xF4, 0xAC, 0xC0, + 0x96, 0x30, 0x09, 0xF0, 0xC4, 0xC0, 0x76, 0xC0, 0x80, 0x38, 0x81, 0xF0, 0x82, 0x38, 0x09, 0xF0, + 0xBE, 0xC0, 0x80, 0x91, 0x2C, 0x02, 0x8F, 0x70, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, 0xEB, 0x00, + 0x85, 0xFB, 0x88, 0x27, 0x80, 0xF9, 0x10, 0x92, 0xE9, 0x00, 0x01, 0xC0, 0x80, 0xE0, 0x90, 0x91, + 0xE8, 0x00, 0x97, 0x7F, 0x90, 0x93, 0xE8, 0x00, 0x80, 0x93, 0xF1, 0x00, 0x10, 0x92, 0xF1, 0x00, + 0x84, 0xC0, 0x28, 0x2F, 0x2D, 0x7F, 0x09, 0xF0, 0xA2, 0xC0, 0x82, 0x30, 0x09, 0xF0, 0x9F, 0xC0, + 0x80, 0x91, 0x2A, 0x02, 0x81, 0x11, 0x27, 0xC0, 0x80, 0x91, 0x2C, 0x02, 0x8F, 0x70, 0x09, 0xF4, + 0x96, 0xC0, 0x80, 0x93, 0xE9, 0x00, 0x20, 0x91, 0xEB, 0x00, 0x20, 0xFF, 0x1C, 0xC0, 0x93, 0x30, + 0x21, 0xF4, 0x80, 0x91, 0xEB, 0x00, 0x80, 0x62, 0x14, 0xC0, 0x90, 0x91, 0xEB, 0x00, 0x90, 0x61, + 0x90, 0x93, 0xEB, 0x00, 0x21, 0xE0, 0x30, 0xE0, 0xA9, 0x01, 0x02, 0xC0, 0x44, 0x0F, 0x55, 0x1F, + 0x8A, 0x95, 0xE2, 0xF7, 0x40, 0x93, 0xEA, 0x00, 0x10, 0x92, 0xEA, 0x00, 0x80, 0x91, 0xEB, 0x00, + 0x88, 0x60, 0x80, 0x93, 0xEB, 0x00, 0x10, 0x92, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, + 0x4F, 0xC0, 0x81, 0x11, 0x6C, 0xC0, 0x10, 0x91, 0x2A, 0x02, 0x1F, 0x77, 0x80, 0x91, 0xE3, 0x00, + 0x80, 0x78, 0x81, 0x2B, 0x80, 0x93, 0xE3, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0x7B, 0xDE, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xFC, 0xCF, 0x80, 0x91, 0xE3, 0x00, + 0x80, 0x68, 0x80, 0x93, 0xE3, 0x00, 0x11, 0x11, 0x02, 0xC0, 0x82, 0xE0, 0x01, 0xC0, 0x83, 0xE0, + 0x8E, 0xBB, 0x4D, 0xC0, 0x80, 0x58, 0x82, 0x30, 0x08, 0xF0, 0x49, 0xC0, 0xAE, 0x01, 0x4F, 0x5F, + 0x5F, 0x4F, 0x60, 0x91, 0x2C, 0x02, 0x80, 0x91, 0x2A, 0x02, 0x90, 0x91, 0x2B, 0x02, 0x69, 0xDD, + 0xBC, 0x01, 0x00, 0x97, 0x09, 0xF4, 0x3B, 0xC0, 0x90, 0x91, 0xE8, 0x00, 0x97, 0x7F, 0x90, 0x93, + 0xE8, 0x00, 0x89, 0x81, 0x9A, 0x81, 0xE1, 0xDD, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x2D, 0xC0, 0x80, 0x38, 0x59, 0xF5, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0x80, 0x91, 0x26, 0x02, 0x80, 0x93, 0xF1, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, + 0x80, 0x93, 0xE8, 0x00, 0x3A, 0xDE, 0x1B, 0xC0, 0x81, 0x11, 0x19, 0xC0, 0x90, 0x91, 0x2A, 0x02, + 0x92, 0x30, 0xA8, 0xF4, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x90, 0x93, + 0x26, 0x02, 0x2B, 0xDE, 0x80, 0x91, 0x26, 0x02, 0x81, 0x11, 0x06, 0xC0, 0x80, 0x91, 0xE3, 0x00, + 0x87, 0xFD, 0x02, 0xC0, 0x81, 0xE0, 0x01, 0xC0, 0x84, 0xE0, 0x8E, 0xBB, 0x24, 0xDC, 0x80, 0x91, + 0xE8, 0x00, 0x83, 0xFF, 0x0A, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, + 0x80, 0x91, 0xEB, 0x00, 0x80, 0x62, 0x80, 0x93, 0xEB, 0x00, 0x0F, 0x90, 0x0F, 0x90, 0xDF, 0x91, + 0xCF, 0x91, 0x1F, 0x91, 0x08, 0x95, 0x08, 0x95, 0xCF, 0x93, 0x8E, 0xB3, 0x88, 0x23, 0x99, 0xF0, + 0xC0, 0x91, 0xE9, 0x00, 0xCF, 0x70, 0x90, 0x91, 0xEC, 0x00, 0x89, 0x2F, 0x81, 0x70, 0x90, 0xFD, + 0x80, 0xE8, 0xC8, 0x2B, 0x10, 0x92, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFD, 0xE8, 0xDE, + 0xCF, 0x70, 0xC0, 0x93, 0xE9, 0x00, 0xCF, 0x91, 0x08, 0x95, 0xA1, 0xE2, 0x1A, 0x2E, 0xAA, 0x1B, + 0xBB, 0x1B, 0xFD, 0x01, 0x0D, 0xC0, 0xAA, 0x1F, 0xBB, 0x1F, 0xEE, 0x1F, 0xFF, 0x1F, 0xA2, 0x17, + 0xB3, 0x07, 0xE4, 0x07, 0xF5, 0x07, 0x20, 0xF0, 0xA2, 0x1B, 0xB3, 0x0B, 0xE4, 0x0B, 0xF5, 0x0B, + 0x66, 0x1F, 0x77, 0x1F, 0x88, 0x1F, 0x99, 0x1F, 0x1A, 0x94, 0x69, 0xF7, 0x60, 0x95, 0x70, 0x95, + 0x80, 0x95, 0x90, 0x95, 0x9B, 0x01, 0xAC, 0x01, 0xBD, 0x01, 0xCF, 0x01, 0x08, 0x95, 0xF9, 0x99, + 0xFE, 0xCF, 0x92, 0xBD, 0x81, 0xBD, 0xF8, 0x9A, 0x99, 0x27, 0x80, 0xB5, 0x08, 0x95, 0x26, 0x2F, + 0xF9, 0x99, 0xFE, 0xCF, 0x1F, 0xBA, 0x92, 0xBD, 0x81, 0xBD, 0x20, 0xBD, 0x0F, 0xB6, 0xF8, 0x94, + 0xFA, 0x9A, 0xF9, 0x9A, 0x0F, 0xBE, 0x01, 0x96, 0x08, 0x95, 0xF8, 0x94, 0xFF, 0xCF, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x22, 0x03, 0x48, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, + 0x4C, 0x00, 0x6F, 0x00, 0x61, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x32, 0x00, 0x20, 0x00, + 0x4D, 0x00, 0x65, 0x00, 0x67, 0x00, 0x61, 0x00, 0x00, 0x00, 0x12, 0x03, 0x4E, 0x00, 0x69, 0x00, + 0x63, 0x00, 0x6F, 0x00, 0x48, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x00, 0x00, 0x04, 0x03, + 0x09, 0x04, 0x09, 0x02, 0x3E, 0x00, 0x02, 0x01, 0x00, 0x80, 0x32, 0x09, 0x04, 0x00, 0x00, 0x01, + 0x02, 0x02, 0x01, 0x00, 0x05, 0x24, 0x00, 0x10, 0x01, 0x04, 0x24, 0x02, 0x02, 0x05, 0x24, 0x06, + 0x00, 0x01, 0x07, 0x05, 0x82, 0x03, 0x08, 0x00, 0xFF, 0x09, 0x04, 0x01, 0x00, 0x02, 0x0A, 0x00, + 0x00, 0x00, 0x07, 0x05, 0x04, 0x02, 0x40, 0x00, 0x05, 0x07, 0x05, 0x83, 0x02, 0x40, 0x00, 0x05, + 0x12, 0x01, 0x10, 0x01, 0x02, 0x00, 0x00, 0x08, 0x41, 0x23, 0x42, 0x00, 0x04, 0x02, 0x01, 0x02, + 0x00, 0x01, 0x48, 0x4C, 0x32, 0x2E, 0x30, 0x2E, 0x34, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x6A, 0xCC, 0x7B, 0xCC, 0x8C, 0xCC, 0x98, 0xCC, 0x9D, 0xCC, 0xA2, 0xCC, 0xA8, 0xCC, 0x08, 0x95, + 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, + 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0x00, 0x70, 0x00, 0x00, 0x00, 0xDF, 0xFB, 0xDC, +}; // end of HoodLoader2_0_4_Mega_32u2_hex \ No newline at end of file diff --git a/tools/HoodLoader2_Installation_Sketch/bootloader_atmega8u2.h b/tools/HoodLoader2_Installation_Sketch/bootloader_atmega8u2.h new file mode 100644 index 0000000..1ae8778 --- /dev/null +++ b/tools/HoodLoader2_Installation_Sketch/bootloader_atmega8u2.h @@ -0,0 +1,541 @@ +/* +Copyright(c) 2014-2015 NicoHood +See the readme for credit to other people. +This file is part of Hoodloader2. +Hoodloader2 is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. +Hoodloader2 is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with Hoodloader2. If not, see . +*/ + +// File = HoodLoader2_0_4_Uno_8u2.hex +// Loader start: 1000, length: 4096 +// MD5 sum = B9 0C A1 97 06 3C 7E 29 48 58 D6 9A 61 34 59 A9 + +const byte HoodLoader2_0_4_Uno_8u2_hex[] PROGMEM = { + 0x39, 0xC0, 0x00, 0x00, 0x83, 0xC0, 0x00, 0x00, 0x81, 0xC0, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x00, + 0x7D, 0xC0, 0x00, 0x00, 0x7B, 0xC0, 0x00, 0x00, 0x79, 0xC0, 0x00, 0x00, 0x77, 0xC0, 0x00, 0x00, + 0x75, 0xC0, 0x00, 0x00, 0x73, 0xC0, 0x00, 0x00, 0x71, 0xC0, 0x00, 0x00, 0x46, 0xC5, 0x00, 0x00, + 0x6D, 0xC0, 0x00, 0x00, 0x6B, 0xC0, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x00, 0x67, 0xC0, 0x00, 0x00, + 0x65, 0xC0, 0x00, 0x00, 0x63, 0xC0, 0x00, 0x00, 0x61, 0xC0, 0x00, 0x00, 0x5F, 0xC0, 0x00, 0x00, + 0x5D, 0xC0, 0x00, 0x00, 0x5B, 0xC0, 0x00, 0x00, 0x59, 0xC0, 0x00, 0x00, 0xAB, 0xC3, 0x00, 0x00, + 0x55, 0xC0, 0x00, 0x00, 0x53, 0xC0, 0x00, 0x00, 0x51, 0xC0, 0x00, 0x00, 0x4F, 0xC0, 0x00, 0x00, + 0x4D, 0xC0, 0x00, 0x00, 0x11, 0x24, 0x1F, 0xBE, 0xCF, 0xEF, 0xD2, 0xE0, 0xDE, 0xBF, 0xCD, 0xBF, + 0x90, 0x91, 0x80, 0x02, 0x10, 0x92, 0x80, 0x02, 0x84, 0xB7, 0x14, 0xBE, 0x28, 0xE1, 0x0F, 0xB6, + 0xF8, 0x94, 0x20, 0x93, 0x60, 0x00, 0x10, 0x92, 0x60, 0x00, 0x0F, 0xBE, 0xE0, 0xE0, 0xF0, 0xE0, + 0x25, 0x91, 0x34, 0x91, 0x2F, 0x3F, 0x3F, 0x4F, 0xE1, 0xF0, 0x81, 0xFF, 0x12, 0xC0, 0x97, 0x37, + 0xC1, 0xF0, 0x87, 0xE7, 0x80, 0x93, 0x80, 0x02, 0x8F, 0xEF, 0x9E, 0xE9, 0x24, 0xE2, 0x81, 0x50, + 0x90, 0x40, 0x20, 0x40, 0xE1, 0xF7, 0x00, 0xC0, 0x00, 0x00, 0x10, 0x92, 0x80, 0x02, 0x1F, 0xD0, + 0x08, 0xC0, 0x80, 0xFF, 0x02, 0xC0, 0x1B, 0xD0, 0x04, 0xC0, 0x83, 0xFF, 0x02, 0xC0, 0x97, 0x37, + 0xD1, 0xF7, 0x11, 0xE0, 0xA0, 0xE0, 0xB1, 0xE0, 0xEE, 0xE8, 0xFE, 0xE1, 0x02, 0xC0, 0x05, 0x90, + 0x0D, 0x92, 0xAA, 0x39, 0xB1, 0x07, 0xD9, 0xF7, 0x12, 0xE0, 0xAA, 0xE9, 0xB1, 0xE0, 0x01, 0xC0, + 0x1D, 0x92, 0xAE, 0x32, 0xB1, 0x07, 0xE1, 0xF7, 0x36, 0xD0, 0xBF, 0xC6, 0x79, 0xCF, 0x8B, 0xB1, + 0x80, 0x63, 0x8B, 0xB9, 0xE0, 0xE0, 0xF0, 0xE0, 0x09, 0x94, 0x84, 0xE0, 0x80, 0x93, 0xE9, 0x00, + 0x80, 0x91, 0xE8, 0x00, 0x85, 0xFD, 0x0D, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFD, 0xF3, 0xCF, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, + 0x02, 0xC0, 0x80, 0x91, 0xF1, 0x00, 0x08, 0x95, 0x93, 0xE0, 0x90, 0x93, 0xE9, 0x00, 0x90, 0x91, + 0xE8, 0x00, 0x95, 0xFF, 0x03, 0xC0, 0x80, 0x93, 0xF1, 0x00, 0x08, 0x95, 0x90, 0x91, 0xE8, 0x00, + 0x9E, 0x77, 0x90, 0x93, 0xE8, 0x00, 0x90, 0x91, 0xE8, 0x00, 0x90, 0xFD, 0xF4, 0xCF, 0x9E, 0xB3, + 0x91, 0x11, 0xF9, 0xCF, 0x08, 0x95, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0x00, 0xD0, 0xCD, 0xB7, + 0xDE, 0xB7, 0x90, 0xE0, 0x80, 0xE8, 0x0F, 0xB6, 0xF8, 0x94, 0x80, 0x93, 0x61, 0x00, 0x90, 0x93, + 0x61, 0x00, 0x0F, 0xBE, 0x81, 0xE0, 0x85, 0xBF, 0x82, 0xE0, 0x85, 0xBF, 0x7F, 0xD4, 0x84, 0xE0, + 0x85, 0xBD, 0x8A, 0xB1, 0x88, 0x6B, 0x8A, 0xB9, 0x8B, 0xB1, 0x84, 0x6B, 0x8B, 0xB9, 0x78, 0x94, + 0x13, 0xE0, 0xBB, 0x24, 0xB3, 0x94, 0xE5, 0xE0, 0x8E, 0x2E, 0x21, 0x2C, 0x31, 0x2C, 0x82, 0xE9, + 0x91, 0xE0, 0x27, 0xE0, 0x28, 0x0F, 0x29, 0x83, 0x84, 0xE0, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, + 0xE8, 0x00, 0x82, 0xFF, 0x8D, 0xC1, 0xA1, 0xDF, 0x98, 0x2F, 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, + 0x13, 0xC0, 0x80, 0x91, 0xC8, 0x00, 0x85, 0xFF, 0xFC, 0xCF, 0x90, 0x93, 0xCE, 0x00, 0x80, 0x91, + 0xF2, 0x00, 0x81, 0x11, 0x05, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x5C, 0x98, 0x10, 0x93, 0x9F, 0x01, 0x78, 0xC1, 0x95, 0x34, 0x19, 0xF4, 0x10, 0x92, 0x00, 0x01, + 0x32, 0xC0, 0x88, 0xE8, 0x89, 0x0F, 0x82, 0x30, 0x10, 0xF0, 0x94, 0x35, 0x11, 0xF4, 0x7D, 0xDF, + 0x2A, 0xC0, 0x90, 0x35, 0x41, 0xF1, 0x9C, 0x34, 0x31, 0xF1, 0x94, 0x37, 0x21, 0xF4, 0x84, 0xE4, + 0x8B, 0xDF, 0x80, 0xE0, 0x03, 0xC0, 0x91, 0x36, 0x19, 0xF4, 0x89, 0xE5, 0x85, 0xDF, 0x5C, 0xC1, + 0x91, 0x34, 0xD9, 0xF4, 0x6A, 0xDF, 0x08, 0x2F, 0x68, 0xDF, 0x90, 0xE0, 0x88, 0x0F, 0x99, 0x1F, + 0x20, 0x2F, 0x30, 0xE0, 0x32, 0x2F, 0x22, 0x27, 0x33, 0x0F, 0x82, 0x2B, 0x93, 0x2B, 0xAA, 0x27, + 0x97, 0xFD, 0xA0, 0x95, 0xBA, 0x2F, 0x80, 0x93, 0x9A, 0x01, 0x90, 0x93, 0x9B, 0x01, 0xA0, 0x93, + 0x9C, 0x01, 0xB0, 0x93, 0x9D, 0x01, 0x8D, 0xE0, 0xE1, 0xCF, 0x90, 0x37, 0x11, 0xF4, 0x83, 0xE5, + 0xDD, 0xCF, 0x93, 0x35, 0x61, 0xF4, 0x52, 0xE9, 0xE5, 0x2E, 0x51, 0xE0, 0xF5, 0x2E, 0xF7, 0x01, + 0x81, 0x91, 0x7F, 0x01, 0x59, 0xDF, 0x29, 0x81, 0x2E, 0x11, 0xF9, 0xCF, 0x2D, 0xC1, 0x96, 0x35, + 0x21, 0xF4, 0x81, 0xE3, 0x51, 0xDF, 0x80, 0xE3, 0xC9, 0xCF, 0x93, 0x37, 0x31, 0xF4, 0x89, 0xE8, + 0x4B, 0xDF, 0x83, 0xE9, 0x49, 0xDF, 0x8E, 0xE1, 0xC1, 0xCF, 0x95, 0x36, 0xA9, 0xF4, 0xE0, 0xE0, + 0xF0, 0xE0, 0x10, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0x80, 0x92, + 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xE0, 0x58, 0xFF, 0x4F, 0xE1, 0x15, + 0x80, 0xE1, 0xF8, 0x07, 0x71, 0xF7, 0xC7, 0xCF, 0x9C, 0x36, 0x51, 0xF4, 0x16, 0xDF, 0x80, 0x95, + 0x99, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x08, 0x2E, 0x90, 0x93, 0x57, 0x00, 0xE8, 0x95, 0xBB, 0xCF, + 0x92, 0x37, 0x21, 0xF4, 0x89, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x10, 0xC0, 0x96, 0x34, 0x19, 0xF4, + 0x89, 0xE0, 0xF1, 0x01, 0x0B, 0xC0, 0x9E, 0x34, 0x21, 0xF4, 0x89, 0xE0, 0xE3, 0xE0, 0xF0, 0xE0, + 0x05, 0xC0, 0x91, 0x35, 0x39, 0xF4, 0x89, 0xE0, 0xE2, 0xE0, 0xF0, 0xE0, 0x80, 0x93, 0x57, 0x00, + 0x84, 0x91, 0x84, 0xCF, 0x92, 0x36, 0x31, 0xF4, 0x89, 0xE5, 0x06, 0xDF, 0x80, 0xE0, 0x04, 0xDF, + 0x80, 0xE8, 0x7C, 0xCF, 0x92, 0x34, 0x19, 0xF0, 0x97, 0x36, 0x09, 0xF0, 0xCD, 0xC0, 0x9A, 0x83, + 0xE4, 0xDE, 0xE8, 0x2E, 0xF1, 0x2C, 0xFE, 0x2C, 0xEE, 0x24, 0xDF, 0xDE, 0xE8, 0x2A, 0xDD, 0xDE, + 0x08, 0x2F, 0x8B, 0xEB, 0x80, 0x0F, 0x9A, 0x81, 0x82, 0x30, 0x10, 0xF0, 0x8F, 0xE3, 0x66, 0xCF, + 0x97, 0x36, 0x09, 0xF0, 0x44, 0xC0, 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x37, 0x01, + 0xA1, 0x2C, 0x61, 0x14, 0x71, 0x04, 0x09, 0xF4, 0xB7, 0xC0, 0xC0, 0x90, 0x9A, 0x01, 0xD0, 0x90, + 0x9B, 0x01, 0xE0, 0x90, 0x9C, 0x01, 0xF0, 0x90, 0x9D, 0x01, 0x06, 0x34, 0xB9, 0xF4, 0xEA, 0x2D, + 0xF0, 0xE0, 0xEC, 0x29, 0xFD, 0x29, 0x84, 0x91, 0xCF, 0xDE, 0xAA, 0x20, 0x69, 0xF0, 0xF2, 0xE0, + 0xCF, 0x0E, 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9A, 0x01, 0xD0, 0x92, 0x9B, 0x01, + 0xE0, 0x92, 0x9C, 0x01, 0xF0, 0x92, 0x9D, 0x01, 0xAB, 0x24, 0x15, 0xC0, 0xD7, 0x01, 0xC6, 0x01, + 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0x42, 0xD5, 0xB6, 0xDE, 0x22, 0xE0, 0xC2, 0x0E, + 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9A, 0x01, 0xD0, 0x92, 0x9B, 0x01, 0xE0, 0x92, + 0x9C, 0x01, 0xF0, 0x92, 0x9D, 0x01, 0x81, 0xE0, 0x68, 0x1A, 0x71, 0x08, 0xC2, 0xCF, 0x40, 0x90, + 0x9A, 0x01, 0x50, 0x90, 0x9B, 0x01, 0x60, 0x90, 0x9C, 0x01, 0x70, 0x90, 0x9D, 0x01, 0x06, 0x34, + 0x39, 0xF4, 0xF2, 0x01, 0x10, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0xFC, 0x82, 0xEB, 0x82, 0x91, 0x2C, 0xA1, 0x2C, 0xEB, 0x81, 0xFC, 0x81, 0xEF, 0x2B, 0x09, 0xF4, + 0x50, 0xC0, 0x06, 0x34, 0x31, 0xF5, 0xAA, 0x20, 0x01, 0xF1, 0xC0, 0x90, 0x9A, 0x01, 0xD0, 0x90, + 0x9B, 0x01, 0xE0, 0x90, 0x9C, 0x01, 0xF0, 0x90, 0x9D, 0x01, 0x67, 0xDE, 0x29, 0x2D, 0x30, 0xE0, + 0x38, 0x2B, 0xF6, 0x01, 0x09, 0x01, 0xB0, 0x92, 0x57, 0x00, 0xE8, 0x95, 0x11, 0x24, 0xF2, 0xE0, + 0xCF, 0x0E, 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9A, 0x01, 0xD0, 0x92, 0x9B, 0x01, + 0xE0, 0x92, 0x9C, 0x01, 0xF0, 0x92, 0x9D, 0x01, 0x02, 0xC0, 0x4F, 0xDE, 0x98, 0x2E, 0xAB, 0x24, + 0x22, 0xC0, 0x4B, 0xDE, 0x68, 0x2F, 0x80, 0x91, 0x9A, 0x01, 0x90, 0x91, 0x9B, 0x01, 0xA0, 0x91, + 0x9C, 0x01, 0xB0, 0x91, 0x9D, 0x01, 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0xE7, 0xD4, + 0x80, 0x91, 0x9A, 0x01, 0x90, 0x91, 0x9B, 0x01, 0xA0, 0x91, 0x9C, 0x01, 0xB0, 0x91, 0x9D, 0x01, + 0x02, 0x96, 0xA1, 0x1D, 0xB1, 0x1D, 0x80, 0x93, 0x9A, 0x01, 0x90, 0x93, 0x9B, 0x01, 0xA0, 0x93, + 0x9C, 0x01, 0xB0, 0x93, 0x9D, 0x01, 0x8B, 0x81, 0x9C, 0x81, 0x01, 0x97, 0x9C, 0x83, 0x8B, 0x83, + 0xAB, 0xCF, 0x06, 0x34, 0x09, 0xF0, 0xCF, 0xCE, 0xF2, 0x01, 0x80, 0x92, 0x57, 0x00, 0xE8, 0x95, + 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xC7, 0xCE, 0x9B, 0x31, 0x09, 0xF0, 0x3F, 0xCF, 0x04, 0xC0, + 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, 0x55, 0xC0, 0x8F, 0xB7, 0xF8, 0x94, 0x90, 0x91, 0xA3, 0x01, + 0x8F, 0xBF, 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, 0x06, 0xC0, 0x99, 0x23, 0x09, 0xF4, 0x49, 0xC0, + 0x5D, 0x98, 0x10, 0x93, 0xA0, 0x01, 0xF9, 0x2E, 0xFF, 0x20, 0xB1, 0xF0, 0x00, 0x91, 0xA2, 0x01, + 0xE0, 0x2F, 0xF0, 0xE0, 0xEC, 0x55, 0xFE, 0x4F, 0x80, 0x81, 0x0E, 0xDE, 0x0F, 0x5F, 0x0F, 0x77, + 0x00, 0x93, 0xA2, 0x01, 0x9F, 0xB7, 0xF8, 0x94, 0x80, 0x91, 0xA3, 0x01, 0x81, 0x50, 0x80, 0x93, + 0xA3, 0x01, 0x9F, 0xBF, 0xFA, 0x94, 0xE8, 0xCF, 0x10, 0x93, 0xE9, 0x00, 0x90, 0x91, 0xE8, 0x00, + 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x95, 0xFD, 0x1D, 0xC0, 0x80, 0x91, + 0xE8, 0x00, 0x80, 0xFD, 0x10, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, 0x80, 0x91, 0x9E, 0x01, + 0x88, 0x23, 0xB9, 0xF0, 0xF4, 0xE0, 0xF0, 0x93, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, + 0x80, 0x93, 0xE8, 0x00, 0x0E, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x03, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x51, 0xF3, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xF9, 0xCF, + 0xE5, 0xCF, 0x22, 0xD4, 0xA8, 0x9B, 0x15, 0xC0, 0xA8, 0x9A, 0x80, 0x91, 0xA0, 0x01, 0x88, 0x23, + 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, 0xA0, 0x01, 0x81, 0x11, 0x01, 0xC0, 0x5D, 0x9A, 0x80, 0x91, + 0x9F, 0x01, 0x88, 0x23, 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, 0x9F, 0x01, 0x81, 0x11, 0x01, 0xC0, + 0x5C, 0x9A, 0x80, 0x91, 0x00, 0x01, 0x81, 0x11, 0xF7, 0xCD, 0x8F, 0xE9, 0x9F, 0xE0, 0x01, 0x97, + 0xF1, 0xF7, 0x00, 0xC0, 0x00, 0x00, 0x80, 0x91, 0xE0, 0x00, 0x81, 0x60, 0x80, 0x93, 0xE0, 0x00, + 0x9C, 0xE0, 0x88, 0xE1, 0x0F, 0xB6, 0xF8, 0x94, 0xA8, 0x95, 0x80, 0x93, 0x60, 0x00, 0x0F, 0xBE, + 0x90, 0x93, 0x60, 0x00, 0xFF, 0xCF, 0x42, 0xE0, 0x61, 0xEC, 0x82, 0xE0, 0xE2, 0xD1, 0x42, 0xE3, + 0x61, 0xE8, 0x83, 0xE0, 0xDE, 0xD1, 0x42, 0xE3, 0x60, 0xE8, 0x84, 0xE0, 0xDA, 0xC1, 0xCF, 0x93, + 0x80, 0x91, 0x26, 0x02, 0x98, 0x2F, 0x9F, 0x77, 0x91, 0x32, 0x09, 0xF0, 0xC1, 0xC0, 0x90, 0x91, + 0x27, 0x02, 0x91, 0x32, 0x99, 0xF4, 0x81, 0x3A, 0x09, 0xF0, 0xBA, 0xC0, 0x80, 0x91, 0xE8, 0x00, + 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x67, 0xE0, 0x70, 0xE0, 0x81, 0xE0, 0x91, 0xE0, 0x65, 0xD1, + 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, 0xAA, 0xC0, 0x90, 0x32, 0x09, 0xF0, + 0x92, 0xC0, 0x81, 0x32, 0x09, 0xF0, 0xA4, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0xE1, 0xE0, 0xF1, 0xE0, 0x87, 0xE0, 0x88, 0x23, 0x09, 0xF1, 0x9E, 0xB3, 0x99, 0x23, + 0x11, 0xF1, 0x95, 0x30, 0x01, 0xF1, 0x90, 0x91, 0xE8, 0x00, 0x93, 0xFD, 0x1C, 0xC0, 0x90, 0x91, + 0xE8, 0x00, 0x92, 0xFF, 0xF1, 0xCF, 0x90, 0x91, 0xF2, 0x00, 0x99, 0x23, 0x29, 0xF0, 0x90, 0x91, + 0xF1, 0x00, 0x91, 0x93, 0x81, 0x50, 0xB9, 0xF7, 0x90, 0x91, 0xE8, 0x00, 0x9B, 0x77, 0x90, 0x93, + 0xE8, 0x00, 0xE2, 0xCF, 0x8E, 0xB3, 0x88, 0x23, 0x31, 0xF0, 0x85, 0x30, 0x21, 0xF0, 0x80, 0x91, + 0xE8, 0x00, 0x80, 0xFF, 0xF7, 0xCF, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x20, 0x91, 0x01, 0x01, 0x30, 0x91, 0x02, 0x01, 0x40, 0x91, 0x03, 0x01, 0x50, 0x91, 0x04, 0x01, + 0x21, 0x15, 0x81, 0xEE, 0x38, 0x07, 0x41, 0x05, 0x51, 0x05, 0x21, 0xF4, 0x81, 0xE0, 0x80, 0x93, + 0x9E, 0x01, 0x02, 0xC0, 0x10, 0x92, 0x9E, 0x01, 0x10, 0x92, 0xA3, 0x01, 0x10, 0x92, 0xA2, 0x01, + 0x10, 0x92, 0xA1, 0x01, 0x80, 0x91, 0x06, 0x01, 0x81, 0x30, 0x21, 0xF0, 0x82, 0x30, 0x21, 0xF4, + 0xC0, 0xE2, 0x03, 0xC0, 0xC0, 0xE3, 0x01, 0xC0, 0xC0, 0xE0, 0x80, 0x91, 0x05, 0x01, 0x82, 0x30, + 0x09, 0xF4, 0xC8, 0x60, 0x80, 0x91, 0x07, 0x01, 0x87, 0x30, 0x31, 0xF0, 0x88, 0x30, 0x31, 0xF0, + 0x86, 0x30, 0x29, 0xF4, 0xC2, 0x60, 0x03, 0xC0, 0xC4, 0x60, 0x01, 0xC0, 0xC6, 0x60, 0x5B, 0x9A, + 0x10, 0x92, 0xC9, 0x00, 0x10, 0x92, 0xC8, 0x00, 0x10, 0x92, 0xCA, 0x00, 0xDA, 0x01, 0xC9, 0x01, + 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0xBC, 0x01, 0xCD, 0x01, 0x60, 0x58, 0x7B, 0x47, + 0x81, 0x4E, 0x9F, 0x4F, 0x5A, 0xD3, 0x21, 0x50, 0x31, 0x09, 0x30, 0x93, 0xCD, 0x00, 0x20, 0x93, + 0xCC, 0x00, 0xC0, 0x93, 0xCA, 0x00, 0x82, 0xE0, 0x80, 0x93, 0xC8, 0x00, 0x88, 0xE9, 0x80, 0x93, + 0xC9, 0x00, 0x5B, 0x98, 0x15, 0xC0, 0x92, 0x32, 0x99, 0xF4, 0x81, 0x32, 0x89, 0xF4, 0x80, 0x91, + 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x30, 0xD1, 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, + 0x06, 0xC0, 0x80, 0x91, 0x28, 0x02, 0x80, 0xFF, 0x02, 0xC0, 0x5F, 0x98, 0x01, 0xC0, 0x5F, 0x9A, + 0xCF, 0x91, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, 0x0F, 0x92, 0x11, 0x24, 0x8F, 0x93, + 0x9F, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x90, 0x91, 0xCE, 0x00, 0x80, 0x91, 0x9E, 0x01, 0x81, 0x11, + 0x17, 0xC0, 0x8E, 0xB3, 0x84, 0x30, 0xA1, 0xF4, 0x80, 0x91, 0xA3, 0x01, 0x87, 0xFD, 0x10, 0xC0, + 0x80, 0x91, 0xA1, 0x01, 0xE8, 0x2F, 0xF0, 0xE0, 0xEC, 0x55, 0xFE, 0x4F, 0x90, 0x83, 0x8F, 0x5F, + 0x8F, 0x77, 0x80, 0x93, 0xA1, 0x01, 0x80, 0x91, 0xA3, 0x01, 0x8F, 0x5F, 0x80, 0x93, 0xA3, 0x01, + 0xFF, 0x91, 0xEF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, + 0x18, 0x95, 0x29, 0x2F, 0x30, 0xE0, 0x22, 0x30, 0x31, 0x05, 0x59, 0xF0, 0x23, 0x30, 0x31, 0x05, + 0x69, 0xF0, 0x21, 0x30, 0x31, 0x05, 0xF9, 0xF4, 0x82, 0xE1, 0x90, 0xE0, 0x20, 0xE8, 0x31, 0xE0, + 0x1E, 0xC0, 0x8E, 0xE3, 0x90, 0xE0, 0x22, 0xE4, 0x31, 0xE0, 0x19, 0xC0, 0x88, 0x23, 0x49, 0xF0, + 0x81, 0x30, 0x61, 0xF0, 0x82, 0x30, 0x79, 0xF4, 0x80, 0xE2, 0x90, 0xE0, 0x28, 0xE0, 0x31, 0xE0, + 0x0E, 0xC0, 0x84, 0xE0, 0x90, 0xE0, 0x2E, 0xE3, 0x31, 0xE0, 0x09, 0xC0, 0x82, 0xE1, 0x90, 0xE0, + 0x2A, 0xE2, 0x31, 0xE0, 0x04, 0xC0, 0x80, 0xE0, 0x90, 0xE0, 0x20, 0xE0, 0x30, 0xE0, 0xFA, 0x01, + 0x31, 0x83, 0x20, 0x83, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, + 0x23, 0xE0, 0xFB, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0xF9, 0x99, 0xFE, 0xCF, 0x25, 0xE0, 0xFB, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, 0x21, 0xE0, 0xFB, 0x01, 0x0A, 0x01, 0x20, 0x93, + 0x57, 0x00, 0xE8, 0x95, 0x11, 0x24, 0x08, 0x95, 0x21, 0xE2, 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, + 0x84, 0x91, 0x08, 0x95, 0x29, 0xE0, 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, + 0xE1, 0xE0, 0xF0, 0xE0, 0x89, 0xE0, 0x80, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, 0x80, 0x95, 0x99, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, + 0x08, 0x2E, 0x90, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x20, 0x91, 0x2C, 0x02, 0x30, 0x91, + 0x2D, 0x02, 0x26, 0x17, 0x37, 0x07, 0x48, 0xF0, 0x61, 0x15, 0x71, 0x05, 0x39, 0xF4, 0x20, 0x91, + 0xE8, 0x00, 0x2E, 0x77, 0x20, 0x93, 0xE8, 0x00, 0x01, 0xC0, 0xB9, 0x01, 0x40, 0xE0, 0x61, 0x15, + 0x71, 0x05, 0x79, 0xF1, 0x2E, 0xB3, 0x22, 0x23, 0xF1, 0xF1, 0x25, 0x30, 0xF1, 0xF1, 0x20, 0x91, + 0xE8, 0x00, 0x23, 0xFD, 0x3C, 0xC0, 0x20, 0x91, 0xE8, 0x00, 0x22, 0xFD, 0x2E, 0xC0, 0x20, 0x91, + 0xE8, 0x00, 0x20, 0xFF, 0xEC, 0xCF, 0x20, 0x91, 0xF2, 0x00, 0x30, 0xE0, 0xFC, 0x01, 0xCF, 0x01, + 0x61, 0x15, 0x71, 0x05, 0x59, 0xF0, 0x28, 0x30, 0x31, 0x05, 0x40, 0xF4, 0x81, 0x91, 0x80, 0x93, + 0xF1, 0x00, 0x61, 0x50, 0x71, 0x09, 0x2F, 0x5F, 0x3F, 0x4F, 0xF1, 0xCF, 0x41, 0xE0, 0x28, 0x30, + 0x31, 0x05, 0x09, 0xF0, 0x40, 0xE0, 0x20, 0x91, 0xE8, 0x00, 0x2E, 0x77, 0x20, 0x93, 0xE8, 0x00, + 0xCE, 0xCF, 0x41, 0x11, 0xCF, 0xCF, 0x09, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x61, 0xF0, 0x85, 0x30, + 0x61, 0xF0, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFD, 0x0A, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFF, + 0xF3, 0xCF, 0x80, 0xE0, 0x08, 0x95, 0x82, 0xE0, 0x08, 0x95, 0x83, 0xE0, 0x08, 0x95, 0x81, 0xE0, + 0x08, 0x95, 0x8F, 0x70, 0x80, 0x93, 0xE9, 0x00, 0xEB, 0xEE, 0xF0, 0xE0, 0x80, 0x81, 0x81, 0x60, + 0x80, 0x83, 0xED, 0xEE, 0xF0, 0xE0, 0x10, 0x82, 0x60, 0x93, 0xEC, 0x00, 0x40, 0x83, 0x80, 0x91, + 0xEE, 0x00, 0x88, 0x1F, 0x88, 0x27, 0x88, 0x1F, 0x08, 0x95, 0x80, 0x91, 0x26, 0x02, 0x87, 0xFF, + 0x0F, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFD, 0x04, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, + 0x10, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x0A, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x49, 0xF0, + 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xF9, 0xCF, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x08, 0x95, 0x3C, 0xD0, 0x3E, 0xD0, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x77, 0x80, 0x93, + 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, 0x80, 0x68, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, + 0x8F, 0x7D, 0x80, 0x93, 0xD8, 0x00, 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, 0x89, 0xBD, 0x09, 0xB4, + 0x00, 0xFE, 0xFD, 0xCF, 0x1E, 0xBA, 0x10, 0x92, 0x24, 0x02, 0x42, 0xE0, 0x60, 0xE0, 0x80, 0xE0, + 0xB0, 0xDF, 0x80, 0x91, 0xE1, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, + 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x88, 0x60, 0x80, 0x93, 0xE2, 0x00, + 0x80, 0x91, 0xE0, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE0, 0x00, 0x08, 0x95, 0xE3, 0xE6, 0xF0, 0xE0, + 0x80, 0x81, 0x8E, 0x7F, 0x80, 0x83, 0x81, 0xE0, 0x80, 0x93, 0x25, 0x02, 0xC3, 0xCF, 0x10, 0x92, + 0xE2, 0x00, 0x08, 0x95, 0x10, 0x92, 0xE1, 0x00, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, + 0x0F, 0x92, 0x11, 0x24, 0x2F, 0x93, 0x3F, 0x93, 0x4F, 0x93, 0x5F, 0x93, 0x6F, 0x93, 0x7F, 0x93, + 0x8F, 0x93, 0x9F, 0x93, 0xAF, 0x93, 0xBF, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x80, 0x91, 0xE1, 0x00, + 0x80, 0xFF, 0x16, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x80, 0xFF, 0x12, 0xC0, 0x80, 0x91, 0xE2, 0x00, + 0x8E, 0x7F, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, 0x80, 0x93, 0xE2, 0x00, + 0x80, 0x91, 0xD8, 0x00, 0x80, 0x62, 0x80, 0x93, 0xD8, 0x00, 0x19, 0xBC, 0x1E, 0xBA, 0x6B, 0xD1, + 0x80, 0x91, 0xE1, 0x00, 0x84, 0xFF, 0x2E, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x84, 0xFF, 0x2A, 0xC0, + 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, 0x89, 0xBD, 0x09, 0xB4, 0x00, 0xFE, 0xFD, 0xCF, 0x80, 0x91, + 0xD8, 0x00, 0x8F, 0x7D, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xE1, 0x00, 0x8F, 0x7E, 0x80, 0x93, + 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x8F, 0x7E, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, + 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0x24, 0x02, 0x88, 0x23, 0x11, 0xF0, 0x84, 0xE0, + 0x07, 0xC0, 0x80, 0x91, 0xE3, 0x00, 0x87, 0xFD, 0x02, 0xC0, 0x81, 0xE0, 0x01, 0xC0, 0x83, 0xE0, + 0x8E, 0xBB, 0x39, 0xD1, 0x80, 0x91, 0xE1, 0x00, 0x83, 0xFF, 0x21, 0xC0, 0x80, 0x91, 0xE2, 0x00, + 0x83, 0xFF, 0x1D, 0xC0, 0x80, 0x91, 0xE1, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x82, 0xE0, + 0x8E, 0xBB, 0x10, 0x92, 0x24, 0x02, 0x80, 0x91, 0xE1, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, + 0x80, 0x91, 0xE2, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, + 0x80, 0x93, 0xE2, 0x00, 0x42, 0xE0, 0x60, 0xE0, 0x80, 0xE0, 0x0B, 0xDF, 0x14, 0xD1, 0xFF, 0x91, + 0xEF, 0x91, 0xBF, 0x91, 0xAF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x7F, 0x91, 0x6F, 0x91, 0x5F, 0x91, + 0x4F, 0x91, 0x3F, 0x91, 0x2F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, 0x18, 0x95, + 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0xCD, 0xB7, 0xDE, 0xB7, 0xE6, 0xE2, 0xF2, 0xE0, + 0x88, 0xE0, 0x8E, 0x0F, 0x90, 0x91, 0xF1, 0x00, 0x91, 0x93, 0x8E, 0x13, 0xFB, 0xCF, 0x0F, 0xDD, + 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFF, 0xDB, 0xC0, 0x80, 0x91, 0x26, 0x02, 0x90, 0x91, 0x27, 0x02, + 0x95, 0x30, 0x09, 0xF4, 0x66, 0xC0, 0x30, 0xF4, 0x91, 0x30, 0x59, 0xF1, 0x68, 0xF0, 0x93, 0x30, + 0x41, 0xF1, 0xCD, 0xC0, 0x98, 0x30, 0x09, 0xF4, 0x9D, 0xC0, 0x99, 0x30, 0x09, 0xF4, 0xAC, 0xC0, + 0x96, 0x30, 0x09, 0xF0, 0xC4, 0xC0, 0x76, 0xC0, 0x80, 0x38, 0x81, 0xF0, 0x82, 0x38, 0x09, 0xF0, + 0xBE, 0xC0, 0x80, 0x91, 0x2A, 0x02, 0x8F, 0x70, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, 0xEB, 0x00, + 0x85, 0xFB, 0x88, 0x27, 0x80, 0xF9, 0x10, 0x92, 0xE9, 0x00, 0x01, 0xC0, 0x80, 0xE0, 0x90, 0x91, + 0xE8, 0x00, 0x97, 0x7F, 0x90, 0x93, 0xE8, 0x00, 0x80, 0x93, 0xF1, 0x00, 0x10, 0x92, 0xF1, 0x00, + 0x84, 0xC0, 0x28, 0x2F, 0x2D, 0x7F, 0x09, 0xF0, 0xA2, 0xC0, 0x82, 0x30, 0x09, 0xF0, 0x9F, 0xC0, + 0x80, 0x91, 0x28, 0x02, 0x81, 0x11, 0x27, 0xC0, 0x80, 0x91, 0x2A, 0x02, 0x8F, 0x70, 0x09, 0xF4, + 0x96, 0xC0, 0x80, 0x93, 0xE9, 0x00, 0x20, 0x91, 0xEB, 0x00, 0x20, 0xFF, 0x1C, 0xC0, 0x93, 0x30, + 0x21, 0xF4, 0x80, 0x91, 0xEB, 0x00, 0x80, 0x62, 0x14, 0xC0, 0x90, 0x91, 0xEB, 0x00, 0x90, 0x61, + 0x90, 0x93, 0xEB, 0x00, 0x21, 0xE0, 0x30, 0xE0, 0xA9, 0x01, 0x02, 0xC0, 0x44, 0x0F, 0x55, 0x1F, + 0x8A, 0x95, 0xE2, 0xF7, 0x40, 0x93, 0xEA, 0x00, 0x10, 0x92, 0xEA, 0x00, 0x80, 0x91, 0xEB, 0x00, + 0x88, 0x60, 0x80, 0x93, 0xEB, 0x00, 0x10, 0x92, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, + 0x4F, 0xC0, 0x81, 0x11, 0x6C, 0xC0, 0x10, 0x91, 0x28, 0x02, 0x1F, 0x77, 0x80, 0x91, 0xE3, 0x00, + 0x80, 0x78, 0x81, 0x2B, 0x80, 0x93, 0xE3, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0x7B, 0xDE, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xFC, 0xCF, 0x80, 0x91, 0xE3, 0x00, + 0x80, 0x68, 0x80, 0x93, 0xE3, 0x00, 0x11, 0x11, 0x02, 0xC0, 0x82, 0xE0, 0x01, 0xC0, 0x83, 0xE0, + 0x8E, 0xBB, 0x4D, 0xC0, 0x80, 0x58, 0x82, 0x30, 0x08, 0xF0, 0x49, 0xC0, 0xAE, 0x01, 0x4F, 0x5F, + 0x5F, 0x4F, 0x60, 0x91, 0x2A, 0x02, 0x80, 0x91, 0x28, 0x02, 0x90, 0x91, 0x29, 0x02, 0x69, 0xDD, + 0xBC, 0x01, 0x00, 0x97, 0x09, 0xF4, 0x3B, 0xC0, 0x90, 0x91, 0xE8, 0x00, 0x97, 0x7F, 0x90, 0x93, + 0xE8, 0x00, 0x89, 0x81, 0x9A, 0x81, 0xE1, 0xDD, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x2D, 0xC0, 0x80, 0x38, 0x59, 0xF5, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0x80, 0x91, 0x24, 0x02, 0x80, 0x93, 0xF1, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, + 0x80, 0x93, 0xE8, 0x00, 0x3A, 0xDE, 0x1B, 0xC0, 0x81, 0x11, 0x19, 0xC0, 0x90, 0x91, 0x28, 0x02, + 0x92, 0x30, 0xA8, 0xF4, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x90, 0x93, + 0x24, 0x02, 0x2B, 0xDE, 0x80, 0x91, 0x24, 0x02, 0x81, 0x11, 0x06, 0xC0, 0x80, 0x91, 0xE3, 0x00, + 0x87, 0xFD, 0x02, 0xC0, 0x81, 0xE0, 0x01, 0xC0, 0x84, 0xE0, 0x8E, 0xBB, 0x24, 0xDC, 0x80, 0x91, + 0xE8, 0x00, 0x83, 0xFF, 0x0A, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, + 0x80, 0x91, 0xEB, 0x00, 0x80, 0x62, 0x80, 0x93, 0xEB, 0x00, 0x0F, 0x90, 0x0F, 0x90, 0xDF, 0x91, + 0xCF, 0x91, 0x1F, 0x91, 0x08, 0x95, 0x08, 0x95, 0xCF, 0x93, 0x8E, 0xB3, 0x88, 0x23, 0x99, 0xF0, + 0xC0, 0x91, 0xE9, 0x00, 0xCF, 0x70, 0x90, 0x91, 0xEC, 0x00, 0x89, 0x2F, 0x81, 0x70, 0x90, 0xFD, + 0x80, 0xE8, 0xC8, 0x2B, 0x10, 0x92, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFD, 0xE8, 0xDE, + 0xCF, 0x70, 0xC0, 0x93, 0xE9, 0x00, 0xCF, 0x91, 0x08, 0x95, 0xA1, 0xE2, 0x1A, 0x2E, 0xAA, 0x1B, + 0xBB, 0x1B, 0xFD, 0x01, 0x0D, 0xC0, 0xAA, 0x1F, 0xBB, 0x1F, 0xEE, 0x1F, 0xFF, 0x1F, 0xA2, 0x17, + 0xB3, 0x07, 0xE4, 0x07, 0xF5, 0x07, 0x20, 0xF0, 0xA2, 0x1B, 0xB3, 0x0B, 0xE4, 0x0B, 0xF5, 0x0B, + 0x66, 0x1F, 0x77, 0x1F, 0x88, 0x1F, 0x99, 0x1F, 0x1A, 0x94, 0x69, 0xF7, 0x60, 0x95, 0x70, 0x95, + 0x80, 0x95, 0x90, 0x95, 0x9B, 0x01, 0xAC, 0x01, 0xBD, 0x01, 0xCF, 0x01, 0x08, 0x95, 0xF9, 0x99, + 0xFE, 0xCF, 0x92, 0xBD, 0x81, 0xBD, 0xF8, 0x9A, 0x99, 0x27, 0x80, 0xB5, 0x08, 0x95, 0x26, 0x2F, + 0xF9, 0x99, 0xFE, 0xCF, 0x1F, 0xBA, 0x92, 0xBD, 0x81, 0xBD, 0x20, 0xBD, 0x0F, 0xB6, 0xF8, 0x94, + 0xFA, 0x9A, 0xF9, 0x9A, 0x0F, 0xBE, 0x01, 0x96, 0x08, 0x95, 0xF8, 0x94, 0xFF, 0xCF, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x03, 0x48, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, + 0x4C, 0x00, 0x6F, 0x00, 0x61, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x32, 0x00, 0x20, 0x00, + 0x55, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x12, 0x03, 0x4E, 0x00, 0x69, 0x00, 0x63, 0x00, + 0x6F, 0x00, 0x48, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x00, 0x00, 0x04, 0x03, 0x09, 0x04, + 0x09, 0x02, 0x3E, 0x00, 0x02, 0x01, 0x00, 0x80, 0x32, 0x09, 0x04, 0x00, 0x00, 0x01, 0x02, 0x02, + 0x01, 0x00, 0x05, 0x24, 0x00, 0x10, 0x01, 0x04, 0x24, 0x02, 0x02, 0x05, 0x24, 0x06, 0x00, 0x01, + 0x07, 0x05, 0x82, 0x03, 0x08, 0x00, 0xFF, 0x09, 0x04, 0x01, 0x00, 0x02, 0x0A, 0x00, 0x00, 0x00, + 0x07, 0x05, 0x04, 0x02, 0x40, 0x00, 0x05, 0x07, 0x05, 0x83, 0x02, 0x40, 0x00, 0x05, 0x12, 0x01, + 0x10, 0x01, 0x02, 0x00, 0x00, 0x08, 0x41, 0x23, 0x43, 0x00, 0x04, 0x02, 0x01, 0x02, 0x00, 0x01, + 0x48, 0x4C, 0x32, 0x2E, 0x30, 0x2E, 0x34, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x6A, 0xCC, 0x7B, 0xCC, 0x8C, 0xCC, 0x98, 0xCC, 0x9D, 0xCC, 0xA2, 0xCC, 0xA8, 0xCC, 0x08, 0x95, + 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, + 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0x00, 0x10, 0x00, 0x00, 0x00, 0xDF, 0xFB, 0xDC, +}; // end of HoodLoader2_0_4_Uno_8u2_hex + +// File = HoodLoader2_0_4_Mega_8u2.hex +// Loader start: 1000, length: 4096 +// MD5 sum = AF 02 55 83 97 51 B1 7D 86 96 62 5C 9B 7B 61 70 + +const byte HoodLoader2_0_4_Mega_8u2_hex[] PROGMEM = { + 0x39, 0xC0, 0x00, 0x00, 0x83, 0xC0, 0x00, 0x00, 0x81, 0xC0, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x00, + 0x7D, 0xC0, 0x00, 0x00, 0x7B, 0xC0, 0x00, 0x00, 0x79, 0xC0, 0x00, 0x00, 0x77, 0xC0, 0x00, 0x00, + 0x75, 0xC0, 0x00, 0x00, 0x73, 0xC0, 0x00, 0x00, 0x71, 0xC0, 0x00, 0x00, 0x46, 0xC5, 0x00, 0x00, + 0x6D, 0xC0, 0x00, 0x00, 0x6B, 0xC0, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x00, 0x67, 0xC0, 0x00, 0x00, + 0x65, 0xC0, 0x00, 0x00, 0x63, 0xC0, 0x00, 0x00, 0x61, 0xC0, 0x00, 0x00, 0x5F, 0xC0, 0x00, 0x00, + 0x5D, 0xC0, 0x00, 0x00, 0x5B, 0xC0, 0x00, 0x00, 0x59, 0xC0, 0x00, 0x00, 0xAB, 0xC3, 0x00, 0x00, + 0x55, 0xC0, 0x00, 0x00, 0x53, 0xC0, 0x00, 0x00, 0x51, 0xC0, 0x00, 0x00, 0x4F, 0xC0, 0x00, 0x00, + 0x4D, 0xC0, 0x00, 0x00, 0x11, 0x24, 0x1F, 0xBE, 0xCF, 0xEF, 0xD2, 0xE0, 0xDE, 0xBF, 0xCD, 0xBF, + 0x90, 0x91, 0x80, 0x02, 0x10, 0x92, 0x80, 0x02, 0x84, 0xB7, 0x14, 0xBE, 0x28, 0xE1, 0x0F, 0xB6, + 0xF8, 0x94, 0x20, 0x93, 0x60, 0x00, 0x10, 0x92, 0x60, 0x00, 0x0F, 0xBE, 0xE0, 0xE0, 0xF0, 0xE0, + 0x25, 0x91, 0x34, 0x91, 0x2F, 0x3F, 0x3F, 0x4F, 0xE1, 0xF0, 0x81, 0xFF, 0x12, 0xC0, 0x97, 0x37, + 0xC1, 0xF0, 0x87, 0xE7, 0x80, 0x93, 0x80, 0x02, 0x8F, 0xEF, 0x9E, 0xE9, 0x24, 0xE2, 0x81, 0x50, + 0x90, 0x40, 0x20, 0x40, 0xE1, 0xF7, 0x00, 0xC0, 0x00, 0x00, 0x10, 0x92, 0x80, 0x02, 0x1F, 0xD0, + 0x08, 0xC0, 0x80, 0xFF, 0x02, 0xC0, 0x1B, 0xD0, 0x04, 0xC0, 0x83, 0xFF, 0x02, 0xC0, 0x97, 0x37, + 0xD1, 0xF7, 0x11, 0xE0, 0xA0, 0xE0, 0xB1, 0xE0, 0xEE, 0xE8, 0xFE, 0xE1, 0x02, 0xC0, 0x05, 0x90, + 0x0D, 0x92, 0xAC, 0x39, 0xB1, 0x07, 0xD9, 0xF7, 0x12, 0xE0, 0xAC, 0xE9, 0xB1, 0xE0, 0x01, 0xC0, + 0x1D, 0x92, 0xA0, 0x33, 0xB1, 0x07, 0xE1, 0xF7, 0x36, 0xD0, 0xBF, 0xC6, 0x79, 0xCF, 0x8B, 0xB1, + 0x80, 0x63, 0x8B, 0xB9, 0xE0, 0xE0, 0xF0, 0xE0, 0x09, 0x94, 0x84, 0xE0, 0x80, 0x93, 0xE9, 0x00, + 0x80, 0x91, 0xE8, 0x00, 0x85, 0xFD, 0x0D, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFD, 0xF3, 0xCF, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, + 0x02, 0xC0, 0x80, 0x91, 0xF1, 0x00, 0x08, 0x95, 0x93, 0xE0, 0x90, 0x93, 0xE9, 0x00, 0x90, 0x91, + 0xE8, 0x00, 0x95, 0xFF, 0x03, 0xC0, 0x80, 0x93, 0xF1, 0x00, 0x08, 0x95, 0x90, 0x91, 0xE8, 0x00, + 0x9E, 0x77, 0x90, 0x93, 0xE8, 0x00, 0x90, 0x91, 0xE8, 0x00, 0x90, 0xFD, 0xF4, 0xCF, 0x9E, 0xB3, + 0x91, 0x11, 0xF9, 0xCF, 0x08, 0x95, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0x00, 0xD0, 0xCD, 0xB7, + 0xDE, 0xB7, 0x90, 0xE0, 0x80, 0xE8, 0x0F, 0xB6, 0xF8, 0x94, 0x80, 0x93, 0x61, 0x00, 0x90, 0x93, + 0x61, 0x00, 0x0F, 0xBE, 0x81, 0xE0, 0x85, 0xBF, 0x82, 0xE0, 0x85, 0xBF, 0x7F, 0xD4, 0x84, 0xE0, + 0x85, 0xBD, 0x8A, 0xB1, 0x88, 0x6B, 0x8A, 0xB9, 0x8B, 0xB1, 0x84, 0x6B, 0x8B, 0xB9, 0x78, 0x94, + 0x13, 0xE0, 0xBB, 0x24, 0xB3, 0x94, 0xE5, 0xE0, 0x8E, 0x2E, 0x21, 0x2C, 0x31, 0x2C, 0x84, 0xE9, + 0x91, 0xE0, 0x27, 0xE0, 0x28, 0x0F, 0x29, 0x83, 0x84, 0xE0, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, + 0xE8, 0x00, 0x82, 0xFF, 0x8D, 0xC1, 0xA1, 0xDF, 0x98, 0x2F, 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, + 0x13, 0xC0, 0x80, 0x91, 0xC8, 0x00, 0x85, 0xFF, 0xFC, 0xCF, 0x90, 0x93, 0xCE, 0x00, 0x80, 0x91, + 0xF2, 0x00, 0x81, 0x11, 0x05, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x5C, 0x98, 0x10, 0x93, 0xA1, 0x01, 0x78, 0xC1, 0x95, 0x34, 0x19, 0xF4, 0x10, 0x92, 0x00, 0x01, + 0x32, 0xC0, 0x88, 0xE8, 0x89, 0x0F, 0x82, 0x30, 0x10, 0xF0, 0x94, 0x35, 0x11, 0xF4, 0x7D, 0xDF, + 0x2A, 0xC0, 0x90, 0x35, 0x41, 0xF1, 0x9C, 0x34, 0x31, 0xF1, 0x94, 0x37, 0x21, 0xF4, 0x84, 0xE4, + 0x8B, 0xDF, 0x80, 0xE0, 0x03, 0xC0, 0x91, 0x36, 0x19, 0xF4, 0x89, 0xE5, 0x85, 0xDF, 0x5C, 0xC1, + 0x91, 0x34, 0xD9, 0xF4, 0x6A, 0xDF, 0x08, 0x2F, 0x68, 0xDF, 0x90, 0xE0, 0x88, 0x0F, 0x99, 0x1F, + 0x20, 0x2F, 0x30, 0xE0, 0x32, 0x2F, 0x22, 0x27, 0x33, 0x0F, 0x82, 0x2B, 0x93, 0x2B, 0xAA, 0x27, + 0x97, 0xFD, 0xA0, 0x95, 0xBA, 0x2F, 0x80, 0x93, 0x9C, 0x01, 0x90, 0x93, 0x9D, 0x01, 0xA0, 0x93, + 0x9E, 0x01, 0xB0, 0x93, 0x9F, 0x01, 0x8D, 0xE0, 0xE1, 0xCF, 0x90, 0x37, 0x11, 0xF4, 0x83, 0xE5, + 0xDD, 0xCF, 0x93, 0x35, 0x61, 0xF4, 0x54, 0xE9, 0xE5, 0x2E, 0x51, 0xE0, 0xF5, 0x2E, 0xF7, 0x01, + 0x81, 0x91, 0x7F, 0x01, 0x59, 0xDF, 0x29, 0x81, 0x2E, 0x11, 0xF9, 0xCF, 0x2D, 0xC1, 0x96, 0x35, + 0x21, 0xF4, 0x81, 0xE3, 0x51, 0xDF, 0x80, 0xE3, 0xC9, 0xCF, 0x93, 0x37, 0x31, 0xF4, 0x89, 0xE8, + 0x4B, 0xDF, 0x83, 0xE9, 0x49, 0xDF, 0x8E, 0xE1, 0xC1, 0xCF, 0x95, 0x36, 0xA9, 0xF4, 0xE0, 0xE0, + 0xF0, 0xE0, 0x10, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0x80, 0x92, + 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xE0, 0x58, 0xFF, 0x4F, 0xE1, 0x15, + 0x80, 0xE1, 0xF8, 0x07, 0x71, 0xF7, 0xC7, 0xCF, 0x9C, 0x36, 0x51, 0xF4, 0x16, 0xDF, 0x80, 0x95, + 0x99, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x08, 0x2E, 0x90, 0x93, 0x57, 0x00, 0xE8, 0x95, 0xBB, 0xCF, + 0x92, 0x37, 0x21, 0xF4, 0x89, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, 0x10, 0xC0, 0x96, 0x34, 0x19, 0xF4, + 0x89, 0xE0, 0xF1, 0x01, 0x0B, 0xC0, 0x9E, 0x34, 0x21, 0xF4, 0x89, 0xE0, 0xE3, 0xE0, 0xF0, 0xE0, + 0x05, 0xC0, 0x91, 0x35, 0x39, 0xF4, 0x89, 0xE0, 0xE2, 0xE0, 0xF0, 0xE0, 0x80, 0x93, 0x57, 0x00, + 0x84, 0x91, 0x84, 0xCF, 0x92, 0x36, 0x31, 0xF4, 0x89, 0xE5, 0x06, 0xDF, 0x80, 0xE0, 0x04, 0xDF, + 0x80, 0xE8, 0x7C, 0xCF, 0x92, 0x34, 0x19, 0xF0, 0x97, 0x36, 0x09, 0xF0, 0xCD, 0xC0, 0x9A, 0x83, + 0xE4, 0xDE, 0xE8, 0x2E, 0xF1, 0x2C, 0xFE, 0x2C, 0xEE, 0x24, 0xDF, 0xDE, 0xE8, 0x2A, 0xDD, 0xDE, + 0x08, 0x2F, 0x8B, 0xEB, 0x80, 0x0F, 0x9A, 0x81, 0x82, 0x30, 0x10, 0xF0, 0x8F, 0xE3, 0x66, 0xCF, + 0x97, 0x36, 0x09, 0xF0, 0x44, 0xC0, 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x37, 0x01, + 0xA1, 0x2C, 0x61, 0x14, 0x71, 0x04, 0x09, 0xF4, 0xB7, 0xC0, 0xC0, 0x90, 0x9C, 0x01, 0xD0, 0x90, + 0x9D, 0x01, 0xE0, 0x90, 0x9E, 0x01, 0xF0, 0x90, 0x9F, 0x01, 0x06, 0x34, 0xB9, 0xF4, 0xEA, 0x2D, + 0xF0, 0xE0, 0xEC, 0x29, 0xFD, 0x29, 0x84, 0x91, 0xCF, 0xDE, 0xAA, 0x20, 0x69, 0xF0, 0xF2, 0xE0, + 0xCF, 0x0E, 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9C, 0x01, 0xD0, 0x92, 0x9D, 0x01, + 0xE0, 0x92, 0x9E, 0x01, 0xF0, 0x92, 0x9F, 0x01, 0xAB, 0x24, 0x15, 0xC0, 0xD7, 0x01, 0xC6, 0x01, + 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0x42, 0xD5, 0xB6, 0xDE, 0x22, 0xE0, 0xC2, 0x0E, + 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9C, 0x01, 0xD0, 0x92, 0x9D, 0x01, 0xE0, 0x92, + 0x9E, 0x01, 0xF0, 0x92, 0x9F, 0x01, 0x81, 0xE0, 0x68, 0x1A, 0x71, 0x08, 0xC2, 0xCF, 0x40, 0x90, + 0x9C, 0x01, 0x50, 0x90, 0x9D, 0x01, 0x60, 0x90, 0x9E, 0x01, 0x70, 0x90, 0x9F, 0x01, 0x06, 0x34, + 0x39, 0xF4, 0xF2, 0x01, 0x10, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0xFC, 0x82, 0xEB, 0x82, 0x91, 0x2C, 0xA1, 0x2C, 0xEB, 0x81, 0xFC, 0x81, 0xEF, 0x2B, 0x09, 0xF4, + 0x50, 0xC0, 0x06, 0x34, 0x31, 0xF5, 0xAA, 0x20, 0x01, 0xF1, 0xC0, 0x90, 0x9C, 0x01, 0xD0, 0x90, + 0x9D, 0x01, 0xE0, 0x90, 0x9E, 0x01, 0xF0, 0x90, 0x9F, 0x01, 0x67, 0xDE, 0x29, 0x2D, 0x30, 0xE0, + 0x38, 0x2B, 0xF6, 0x01, 0x09, 0x01, 0xB0, 0x92, 0x57, 0x00, 0xE8, 0x95, 0x11, 0x24, 0xF2, 0xE0, + 0xCF, 0x0E, 0xD1, 0x1C, 0xE1, 0x1C, 0xF1, 0x1C, 0xC0, 0x92, 0x9C, 0x01, 0xD0, 0x92, 0x9D, 0x01, + 0xE0, 0x92, 0x9E, 0x01, 0xF0, 0x92, 0x9F, 0x01, 0x02, 0xC0, 0x4F, 0xDE, 0x98, 0x2E, 0xAB, 0x24, + 0x22, 0xC0, 0x4B, 0xDE, 0x68, 0x2F, 0x80, 0x91, 0x9C, 0x01, 0x90, 0x91, 0x9D, 0x01, 0xA0, 0x91, + 0x9E, 0x01, 0xB0, 0x91, 0x9F, 0x01, 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0xE7, 0xD4, + 0x80, 0x91, 0x9C, 0x01, 0x90, 0x91, 0x9D, 0x01, 0xA0, 0x91, 0x9E, 0x01, 0xB0, 0x91, 0x9F, 0x01, + 0x02, 0x96, 0xA1, 0x1D, 0xB1, 0x1D, 0x80, 0x93, 0x9C, 0x01, 0x90, 0x93, 0x9D, 0x01, 0xA0, 0x93, + 0x9E, 0x01, 0xB0, 0x93, 0x9F, 0x01, 0x8B, 0x81, 0x9C, 0x81, 0x01, 0x97, 0x9C, 0x83, 0x8B, 0x83, + 0xAB, 0xCF, 0x06, 0x34, 0x09, 0xF0, 0xCF, 0xCE, 0xF2, 0x01, 0x80, 0x92, 0x57, 0x00, 0xE8, 0x95, + 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xC7, 0xCE, 0x9B, 0x31, 0x09, 0xF0, 0x3F, 0xCF, 0x04, 0xC0, + 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, 0x55, 0xC0, 0x8F, 0xB7, 0xF8, 0x94, 0x90, 0x91, 0xA5, 0x01, + 0x8F, 0xBF, 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, 0x06, 0xC0, 0x99, 0x23, 0x09, 0xF4, 0x49, 0xC0, + 0x5D, 0x98, 0x10, 0x93, 0xA2, 0x01, 0xF9, 0x2E, 0xFF, 0x20, 0xB1, 0xF0, 0x00, 0x91, 0xA4, 0x01, + 0xE0, 0x2F, 0xF0, 0xE0, 0xEA, 0x55, 0xFE, 0x4F, 0x80, 0x81, 0x0E, 0xDE, 0x0F, 0x5F, 0x0F, 0x77, + 0x00, 0x93, 0xA4, 0x01, 0x9F, 0xB7, 0xF8, 0x94, 0x80, 0x91, 0xA5, 0x01, 0x81, 0x50, 0x80, 0x93, + 0xA5, 0x01, 0x9F, 0xBF, 0xFA, 0x94, 0xE8, 0xCF, 0x10, 0x93, 0xE9, 0x00, 0x90, 0x91, 0xE8, 0x00, + 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, 0x95, 0xFD, 0x1D, 0xC0, 0x80, 0x91, + 0xE8, 0x00, 0x80, 0xFD, 0x10, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, 0x80, 0x91, 0xA0, 0x01, + 0x88, 0x23, 0xB9, 0xF0, 0xF4, 0xE0, 0xF0, 0x93, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, + 0x80, 0x93, 0xE8, 0x00, 0x0E, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x03, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x51, 0xF3, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xF9, 0xCF, + 0xE5, 0xCF, 0x22, 0xD4, 0xA8, 0x9B, 0x15, 0xC0, 0xA8, 0x9A, 0x80, 0x91, 0xA2, 0x01, 0x88, 0x23, + 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, 0xA2, 0x01, 0x81, 0x11, 0x01, 0xC0, 0x5D, 0x9A, 0x80, 0x91, + 0xA1, 0x01, 0x88, 0x23, 0x31, 0xF0, 0x81, 0x50, 0x80, 0x93, 0xA1, 0x01, 0x81, 0x11, 0x01, 0xC0, + 0x5C, 0x9A, 0x80, 0x91, 0x00, 0x01, 0x81, 0x11, 0xF7, 0xCD, 0x8F, 0xE9, 0x9F, 0xE0, 0x01, 0x97, + 0xF1, 0xF7, 0x00, 0xC0, 0x00, 0x00, 0x80, 0x91, 0xE0, 0x00, 0x81, 0x60, 0x80, 0x93, 0xE0, 0x00, + 0x9C, 0xE0, 0x88, 0xE1, 0x0F, 0xB6, 0xF8, 0x94, 0xA8, 0x95, 0x80, 0x93, 0x60, 0x00, 0x0F, 0xBE, + 0x90, 0x93, 0x60, 0x00, 0xFF, 0xCF, 0x42, 0xE0, 0x61, 0xEC, 0x82, 0xE0, 0xE2, 0xD1, 0x42, 0xE3, + 0x61, 0xE8, 0x83, 0xE0, 0xDE, 0xD1, 0x42, 0xE3, 0x60, 0xE8, 0x84, 0xE0, 0xDA, 0xC1, 0xCF, 0x93, + 0x80, 0x91, 0x28, 0x02, 0x98, 0x2F, 0x9F, 0x77, 0x91, 0x32, 0x09, 0xF0, 0xC1, 0xC0, 0x90, 0x91, + 0x29, 0x02, 0x91, 0x32, 0x99, 0xF4, 0x81, 0x3A, 0x09, 0xF0, 0xBA, 0xC0, 0x80, 0x91, 0xE8, 0x00, + 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x67, 0xE0, 0x70, 0xE0, 0x81, 0xE0, 0x91, 0xE0, 0x65, 0xD1, + 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, 0xE8, 0x00, 0xAA, 0xC0, 0x90, 0x32, 0x09, 0xF0, + 0x92, 0xC0, 0x81, 0x32, 0x09, 0xF0, 0xA4, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0xE1, 0xE0, 0xF1, 0xE0, 0x87, 0xE0, 0x88, 0x23, 0x09, 0xF1, 0x9E, 0xB3, 0x99, 0x23, + 0x11, 0xF1, 0x95, 0x30, 0x01, 0xF1, 0x90, 0x91, 0xE8, 0x00, 0x93, 0xFD, 0x1C, 0xC0, 0x90, 0x91, + 0xE8, 0x00, 0x92, 0xFF, 0xF1, 0xCF, 0x90, 0x91, 0xF2, 0x00, 0x99, 0x23, 0x29, 0xF0, 0x90, 0x91, + 0xF1, 0x00, 0x91, 0x93, 0x81, 0x50, 0xB9, 0xF7, 0x90, 0x91, 0xE8, 0x00, 0x9B, 0x77, 0x90, 0x93, + 0xE8, 0x00, 0xE2, 0xCF, 0x8E, 0xB3, 0x88, 0x23, 0x31, 0xF0, 0x85, 0x30, 0x21, 0xF0, 0x80, 0x91, + 0xE8, 0x00, 0x80, 0xFF, 0xF7, 0xCF, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, 0xE8, 0x00, + 0x20, 0x91, 0x01, 0x01, 0x30, 0x91, 0x02, 0x01, 0x40, 0x91, 0x03, 0x01, 0x50, 0x91, 0x04, 0x01, + 0x21, 0x15, 0x81, 0xEE, 0x38, 0x07, 0x41, 0x05, 0x51, 0x05, 0x21, 0xF4, 0x81, 0xE0, 0x80, 0x93, + 0xA0, 0x01, 0x02, 0xC0, 0x10, 0x92, 0xA0, 0x01, 0x10, 0x92, 0xA5, 0x01, 0x10, 0x92, 0xA4, 0x01, + 0x10, 0x92, 0xA3, 0x01, 0x80, 0x91, 0x06, 0x01, 0x81, 0x30, 0x21, 0xF0, 0x82, 0x30, 0x21, 0xF4, + 0xC0, 0xE2, 0x03, 0xC0, 0xC0, 0xE3, 0x01, 0xC0, 0xC0, 0xE0, 0x80, 0x91, 0x05, 0x01, 0x82, 0x30, + 0x09, 0xF4, 0xC8, 0x60, 0x80, 0x91, 0x07, 0x01, 0x87, 0x30, 0x31, 0xF0, 0x88, 0x30, 0x31, 0xF0, + 0x86, 0x30, 0x29, 0xF4, 0xC2, 0x60, 0x03, 0xC0, 0xC4, 0x60, 0x01, 0xC0, 0xC6, 0x60, 0x5B, 0x9A, + 0x10, 0x92, 0xC9, 0x00, 0x10, 0x92, 0xC8, 0x00, 0x10, 0x92, 0xCA, 0x00, 0xDA, 0x01, 0xC9, 0x01, + 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0xBC, 0x01, 0xCD, 0x01, 0x60, 0x58, 0x7B, 0x47, + 0x81, 0x4E, 0x9F, 0x4F, 0x5A, 0xD3, 0x21, 0x50, 0x31, 0x09, 0x30, 0x93, 0xCD, 0x00, 0x20, 0x93, + 0xCC, 0x00, 0xC0, 0x93, 0xCA, 0x00, 0x82, 0xE0, 0x80, 0x93, 0xC8, 0x00, 0x88, 0xE9, 0x80, 0x93, + 0xC9, 0x00, 0x5B, 0x98, 0x15, 0xC0, 0x92, 0x32, 0x99, 0xF4, 0x81, 0x32, 0x89, 0xF4, 0x80, 0x91, + 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x30, 0xD1, 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, + 0x06, 0xC0, 0x80, 0x91, 0x2A, 0x02, 0x80, 0xFF, 0x02, 0xC0, 0x5F, 0x98, 0x01, 0xC0, 0x5F, 0x9A, + 0xCF, 0x91, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, 0x0F, 0x92, 0x11, 0x24, 0x8F, 0x93, + 0x9F, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x90, 0x91, 0xCE, 0x00, 0x80, 0x91, 0xA0, 0x01, 0x81, 0x11, + 0x17, 0xC0, 0x8E, 0xB3, 0x84, 0x30, 0xA1, 0xF4, 0x80, 0x91, 0xA5, 0x01, 0x87, 0xFD, 0x10, 0xC0, + 0x80, 0x91, 0xA3, 0x01, 0xE8, 0x2F, 0xF0, 0xE0, 0xEA, 0x55, 0xFE, 0x4F, 0x90, 0x83, 0x8F, 0x5F, + 0x8F, 0x77, 0x80, 0x93, 0xA3, 0x01, 0x80, 0x91, 0xA5, 0x01, 0x8F, 0x5F, 0x80, 0x93, 0xA5, 0x01, + 0xFF, 0x91, 0xEF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, + 0x18, 0x95, 0x29, 0x2F, 0x30, 0xE0, 0x22, 0x30, 0x31, 0x05, 0x59, 0xF0, 0x23, 0x30, 0x31, 0x05, + 0x69, 0xF0, 0x21, 0x30, 0x31, 0x05, 0xF9, 0xF4, 0x82, 0xE1, 0x90, 0xE0, 0x22, 0xE8, 0x31, 0xE0, + 0x1E, 0xC0, 0x8E, 0xE3, 0x90, 0xE0, 0x24, 0xE4, 0x31, 0xE0, 0x19, 0xC0, 0x88, 0x23, 0x49, 0xF0, + 0x81, 0x30, 0x61, 0xF0, 0x82, 0x30, 0x79, 0xF4, 0x82, 0xE2, 0x90, 0xE0, 0x28, 0xE0, 0x31, 0xE0, + 0x0E, 0xC0, 0x84, 0xE0, 0x90, 0xE0, 0x20, 0xE4, 0x31, 0xE0, 0x09, 0xC0, 0x82, 0xE1, 0x90, 0xE0, + 0x2C, 0xE2, 0x31, 0xE0, 0x04, 0xC0, 0x80, 0xE0, 0x90, 0xE0, 0x20, 0xE0, 0x30, 0xE0, 0xFA, 0x01, + 0x31, 0x83, 0x20, 0x83, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, + 0x23, 0xE0, 0xFB, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, 0x00, 0xFC, 0xFD, 0xCF, + 0xF9, 0x99, 0xFE, 0xCF, 0x25, 0xE0, 0xFB, 0x01, 0x20, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0x81, 0xE1, 0x80, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, 0x21, 0xE0, 0xFB, 0x01, 0x0A, 0x01, 0x20, 0x93, + 0x57, 0x00, 0xE8, 0x95, 0x11, 0x24, 0x08, 0x95, 0x21, 0xE2, 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, + 0x84, 0x91, 0x08, 0x95, 0x29, 0xE0, 0xFC, 0x01, 0x20, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, + 0xE1, 0xE0, 0xF0, 0xE0, 0x89, 0xE0, 0x80, 0x93, 0x57, 0x00, 0x84, 0x91, 0x08, 0x95, 0x07, 0xB6, + 0x00, 0xFC, 0xFD, 0xCF, 0xF9, 0x99, 0xFE, 0xCF, 0x80, 0x95, 0x99, 0xE0, 0xE1, 0xE0, 0xF0, 0xE0, + 0x08, 0x2E, 0x90, 0x93, 0x57, 0x00, 0xE8, 0x95, 0x08, 0x95, 0x20, 0x91, 0x2E, 0x02, 0x30, 0x91, + 0x2F, 0x02, 0x26, 0x17, 0x37, 0x07, 0x48, 0xF0, 0x61, 0x15, 0x71, 0x05, 0x39, 0xF4, 0x20, 0x91, + 0xE8, 0x00, 0x2E, 0x77, 0x20, 0x93, 0xE8, 0x00, 0x01, 0xC0, 0xB9, 0x01, 0x40, 0xE0, 0x61, 0x15, + 0x71, 0x05, 0x79, 0xF1, 0x2E, 0xB3, 0x22, 0x23, 0xF1, 0xF1, 0x25, 0x30, 0xF1, 0xF1, 0x20, 0x91, + 0xE8, 0x00, 0x23, 0xFD, 0x3C, 0xC0, 0x20, 0x91, 0xE8, 0x00, 0x22, 0xFD, 0x2E, 0xC0, 0x20, 0x91, + 0xE8, 0x00, 0x20, 0xFF, 0xEC, 0xCF, 0x20, 0x91, 0xF2, 0x00, 0x30, 0xE0, 0xFC, 0x01, 0xCF, 0x01, + 0x61, 0x15, 0x71, 0x05, 0x59, 0xF0, 0x28, 0x30, 0x31, 0x05, 0x40, 0xF4, 0x81, 0x91, 0x80, 0x93, + 0xF1, 0x00, 0x61, 0x50, 0x71, 0x09, 0x2F, 0x5F, 0x3F, 0x4F, 0xF1, 0xCF, 0x41, 0xE0, 0x28, 0x30, + 0x31, 0x05, 0x09, 0xF0, 0x40, 0xE0, 0x20, 0x91, 0xE8, 0x00, 0x2E, 0x77, 0x20, 0x93, 0xE8, 0x00, + 0xCE, 0xCF, 0x41, 0x11, 0xCF, 0xCF, 0x09, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x61, 0xF0, 0x85, 0x30, + 0x61, 0xF0, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFD, 0x0A, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFF, + 0xF3, 0xCF, 0x80, 0xE0, 0x08, 0x95, 0x82, 0xE0, 0x08, 0x95, 0x83, 0xE0, 0x08, 0x95, 0x81, 0xE0, + 0x08, 0x95, 0x8F, 0x70, 0x80, 0x93, 0xE9, 0x00, 0xEB, 0xEE, 0xF0, 0xE0, 0x80, 0x81, 0x81, 0x60, + 0x80, 0x83, 0xED, 0xEE, 0xF0, 0xE0, 0x10, 0x82, 0x60, 0x93, 0xEC, 0x00, 0x40, 0x83, 0x80, 0x91, + 0xEE, 0x00, 0x88, 0x1F, 0x88, 0x27, 0x88, 0x1F, 0x08, 0x95, 0x80, 0x91, 0x28, 0x02, 0x87, 0xFF, + 0x0F, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFD, 0x04, 0xC0, 0x8E, 0xB3, 0x81, 0x11, 0xF9, 0xCF, + 0x10, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x0A, 0xC0, 0x8E, 0xB3, 0x88, 0x23, 0x49, 0xF0, + 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xF9, 0xCF, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x08, 0x95, 0x3C, 0xD0, 0x3E, 0xD0, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x77, 0x80, 0x93, + 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, 0x80, 0x68, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xD8, 0x00, + 0x8F, 0x7D, 0x80, 0x93, 0xD8, 0x00, 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, 0x89, 0xBD, 0x09, 0xB4, + 0x00, 0xFE, 0xFD, 0xCF, 0x1E, 0xBA, 0x10, 0x92, 0x26, 0x02, 0x42, 0xE0, 0x60, 0xE0, 0x80, 0xE0, + 0xB0, 0xDF, 0x80, 0x91, 0xE1, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, + 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x88, 0x60, 0x80, 0x93, 0xE2, 0x00, + 0x80, 0x91, 0xE0, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE0, 0x00, 0x08, 0x95, 0xE3, 0xE6, 0xF0, 0xE0, + 0x80, 0x81, 0x8E, 0x7F, 0x80, 0x83, 0x81, 0xE0, 0x80, 0x93, 0x27, 0x02, 0xC3, 0xCF, 0x10, 0x92, + 0xE2, 0x00, 0x08, 0x95, 0x10, 0x92, 0xE1, 0x00, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, + 0x0F, 0x92, 0x11, 0x24, 0x2F, 0x93, 0x3F, 0x93, 0x4F, 0x93, 0x5F, 0x93, 0x6F, 0x93, 0x7F, 0x93, + 0x8F, 0x93, 0x9F, 0x93, 0xAF, 0x93, 0xBF, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x80, 0x91, 0xE1, 0x00, + 0x80, 0xFF, 0x16, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x80, 0xFF, 0x12, 0xC0, 0x80, 0x91, 0xE2, 0x00, + 0x8E, 0x7F, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, 0x80, 0x93, 0xE2, 0x00, + 0x80, 0x91, 0xD8, 0x00, 0x80, 0x62, 0x80, 0x93, 0xD8, 0x00, 0x19, 0xBC, 0x1E, 0xBA, 0x6B, 0xD1, + 0x80, 0x91, 0xE1, 0x00, 0x84, 0xFF, 0x2E, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x84, 0xFF, 0x2A, 0xC0, + 0x84, 0xE0, 0x89, 0xBD, 0x86, 0xE0, 0x89, 0xBD, 0x09, 0xB4, 0x00, 0xFE, 0xFD, 0xCF, 0x80, 0x91, + 0xD8, 0x00, 0x8F, 0x7D, 0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xE1, 0x00, 0x8F, 0x7E, 0x80, 0x93, + 0xE1, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x8F, 0x7E, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, + 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0x26, 0x02, 0x88, 0x23, 0x11, 0xF0, 0x84, 0xE0, + 0x07, 0xC0, 0x80, 0x91, 0xE3, 0x00, 0x87, 0xFD, 0x02, 0xC0, 0x81, 0xE0, 0x01, 0xC0, 0x83, 0xE0, + 0x8E, 0xBB, 0x39, 0xD1, 0x80, 0x91, 0xE1, 0x00, 0x83, 0xFF, 0x21, 0xC0, 0x80, 0x91, 0xE2, 0x00, + 0x83, 0xFF, 0x1D, 0xC0, 0x80, 0x91, 0xE1, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE1, 0x00, 0x82, 0xE0, + 0x8E, 0xBB, 0x10, 0x92, 0x26, 0x02, 0x80, 0x91, 0xE1, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE1, 0x00, + 0x80, 0x91, 0xE2, 0x00, 0x8E, 0x7F, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE2, 0x00, 0x80, 0x61, + 0x80, 0x93, 0xE2, 0x00, 0x42, 0xE0, 0x60, 0xE0, 0x80, 0xE0, 0x0B, 0xDF, 0x14, 0xD1, 0xFF, 0x91, + 0xEF, 0x91, 0xBF, 0x91, 0xAF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x7F, 0x91, 0x6F, 0x91, 0x5F, 0x91, + 0x4F, 0x91, 0x3F, 0x91, 0x2F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, 0x18, 0x95, + 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0xCD, 0xB7, 0xDE, 0xB7, 0xE8, 0xE2, 0xF2, 0xE0, + 0x88, 0xE0, 0x8E, 0x0F, 0x90, 0x91, 0xF1, 0x00, 0x91, 0x93, 0x8E, 0x13, 0xFB, 0xCF, 0x0F, 0xDD, + 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFF, 0xDB, 0xC0, 0x80, 0x91, 0x28, 0x02, 0x90, 0x91, 0x29, 0x02, + 0x95, 0x30, 0x09, 0xF4, 0x66, 0xC0, 0x30, 0xF4, 0x91, 0x30, 0x59, 0xF1, 0x68, 0xF0, 0x93, 0x30, + 0x41, 0xF1, 0xCD, 0xC0, 0x98, 0x30, 0x09, 0xF4, 0x9D, 0xC0, 0x99, 0x30, 0x09, 0xF4, 0xAC, 0xC0, + 0x96, 0x30, 0x09, 0xF0, 0xC4, 0xC0, 0x76, 0xC0, 0x80, 0x38, 0x81, 0xF0, 0x82, 0x38, 0x09, 0xF0, + 0xBE, 0xC0, 0x80, 0x91, 0x2C, 0x02, 0x8F, 0x70, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, 0xEB, 0x00, + 0x85, 0xFB, 0x88, 0x27, 0x80, 0xF9, 0x10, 0x92, 0xE9, 0x00, 0x01, 0xC0, 0x80, 0xE0, 0x90, 0x91, + 0xE8, 0x00, 0x97, 0x7F, 0x90, 0x93, 0xE8, 0x00, 0x80, 0x93, 0xF1, 0x00, 0x10, 0x92, 0xF1, 0x00, + 0x84, 0xC0, 0x28, 0x2F, 0x2D, 0x7F, 0x09, 0xF0, 0xA2, 0xC0, 0x82, 0x30, 0x09, 0xF0, 0x9F, 0xC0, + 0x80, 0x91, 0x2A, 0x02, 0x81, 0x11, 0x27, 0xC0, 0x80, 0x91, 0x2C, 0x02, 0x8F, 0x70, 0x09, 0xF4, + 0x96, 0xC0, 0x80, 0x93, 0xE9, 0x00, 0x20, 0x91, 0xEB, 0x00, 0x20, 0xFF, 0x1C, 0xC0, 0x93, 0x30, + 0x21, 0xF4, 0x80, 0x91, 0xEB, 0x00, 0x80, 0x62, 0x14, 0xC0, 0x90, 0x91, 0xEB, 0x00, 0x90, 0x61, + 0x90, 0x93, 0xEB, 0x00, 0x21, 0xE0, 0x30, 0xE0, 0xA9, 0x01, 0x02, 0xC0, 0x44, 0x0F, 0x55, 0x1F, + 0x8A, 0x95, 0xE2, 0xF7, 0x40, 0x93, 0xEA, 0x00, 0x10, 0x92, 0xEA, 0x00, 0x80, 0x91, 0xEB, 0x00, + 0x88, 0x60, 0x80, 0x93, 0xEB, 0x00, 0x10, 0x92, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, + 0x4F, 0xC0, 0x81, 0x11, 0x6C, 0xC0, 0x10, 0x91, 0x2A, 0x02, 0x1F, 0x77, 0x80, 0x91, 0xE3, 0x00, + 0x80, 0x78, 0x81, 0x2B, 0x80, 0x93, 0xE3, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0x7B, 0xDE, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xFC, 0xCF, 0x80, 0x91, 0xE3, 0x00, + 0x80, 0x68, 0x80, 0x93, 0xE3, 0x00, 0x11, 0x11, 0x02, 0xC0, 0x82, 0xE0, 0x01, 0xC0, 0x83, 0xE0, + 0x8E, 0xBB, 0x4D, 0xC0, 0x80, 0x58, 0x82, 0x30, 0x08, 0xF0, 0x49, 0xC0, 0xAE, 0x01, 0x4F, 0x5F, + 0x5F, 0x4F, 0x60, 0x91, 0x2C, 0x02, 0x80, 0x91, 0x2A, 0x02, 0x90, 0x91, 0x2B, 0x02, 0x69, 0xDD, + 0xBC, 0x01, 0x00, 0x97, 0x09, 0xF4, 0x3B, 0xC0, 0x90, 0x91, 0xE8, 0x00, 0x97, 0x7F, 0x90, 0x93, + 0xE8, 0x00, 0x89, 0x81, 0x9A, 0x81, 0xE1, 0xDD, 0x80, 0x91, 0xE8, 0x00, 0x8B, 0x77, 0x80, 0x93, + 0xE8, 0x00, 0x2D, 0xC0, 0x80, 0x38, 0x59, 0xF5, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, + 0xE8, 0x00, 0x80, 0x91, 0x26, 0x02, 0x80, 0x93, 0xF1, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x8E, 0x77, + 0x80, 0x93, 0xE8, 0x00, 0x3A, 0xDE, 0x1B, 0xC0, 0x81, 0x11, 0x19, 0xC0, 0x90, 0x91, 0x2A, 0x02, + 0x92, 0x30, 0xA8, 0xF4, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, 0x90, 0x93, + 0x26, 0x02, 0x2B, 0xDE, 0x80, 0x91, 0x26, 0x02, 0x81, 0x11, 0x06, 0xC0, 0x80, 0x91, 0xE3, 0x00, + 0x87, 0xFD, 0x02, 0xC0, 0x81, 0xE0, 0x01, 0xC0, 0x84, 0xE0, 0x8E, 0xBB, 0x24, 0xDC, 0x80, 0x91, + 0xE8, 0x00, 0x83, 0xFF, 0x0A, 0xC0, 0x80, 0x91, 0xE8, 0x00, 0x87, 0x7F, 0x80, 0x93, 0xE8, 0x00, + 0x80, 0x91, 0xEB, 0x00, 0x80, 0x62, 0x80, 0x93, 0xEB, 0x00, 0x0F, 0x90, 0x0F, 0x90, 0xDF, 0x91, + 0xCF, 0x91, 0x1F, 0x91, 0x08, 0x95, 0x08, 0x95, 0xCF, 0x93, 0x8E, 0xB3, 0x88, 0x23, 0x99, 0xF0, + 0xC0, 0x91, 0xE9, 0x00, 0xCF, 0x70, 0x90, 0x91, 0xEC, 0x00, 0x89, 0x2F, 0x81, 0x70, 0x90, 0xFD, + 0x80, 0xE8, 0xC8, 0x2B, 0x10, 0x92, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFD, 0xE8, 0xDE, + 0xCF, 0x70, 0xC0, 0x93, 0xE9, 0x00, 0xCF, 0x91, 0x08, 0x95, 0xA1, 0xE2, 0x1A, 0x2E, 0xAA, 0x1B, + 0xBB, 0x1B, 0xFD, 0x01, 0x0D, 0xC0, 0xAA, 0x1F, 0xBB, 0x1F, 0xEE, 0x1F, 0xFF, 0x1F, 0xA2, 0x17, + 0xB3, 0x07, 0xE4, 0x07, 0xF5, 0x07, 0x20, 0xF0, 0xA2, 0x1B, 0xB3, 0x0B, 0xE4, 0x0B, 0xF5, 0x0B, + 0x66, 0x1F, 0x77, 0x1F, 0x88, 0x1F, 0x99, 0x1F, 0x1A, 0x94, 0x69, 0xF7, 0x60, 0x95, 0x70, 0x95, + 0x80, 0x95, 0x90, 0x95, 0x9B, 0x01, 0xAC, 0x01, 0xBD, 0x01, 0xCF, 0x01, 0x08, 0x95, 0xF9, 0x99, + 0xFE, 0xCF, 0x92, 0xBD, 0x81, 0xBD, 0xF8, 0x9A, 0x99, 0x27, 0x80, 0xB5, 0x08, 0x95, 0x26, 0x2F, + 0xF9, 0x99, 0xFE, 0xCF, 0x1F, 0xBA, 0x92, 0xBD, 0x81, 0xBD, 0x20, 0xBD, 0x0F, 0xB6, 0xF8, 0x94, + 0xFA, 0x9A, 0xF9, 0x9A, 0x0F, 0xBE, 0x01, 0x96, 0x08, 0x95, 0xF8, 0x94, 0xFF, 0xCF, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x22, 0x03, 0x48, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, + 0x4C, 0x00, 0x6F, 0x00, 0x61, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x32, 0x00, 0x20, 0x00, + 0x4D, 0x00, 0x65, 0x00, 0x67, 0x00, 0x61, 0x00, 0x00, 0x00, 0x12, 0x03, 0x4E, 0x00, 0x69, 0x00, + 0x63, 0x00, 0x6F, 0x00, 0x48, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x00, 0x00, 0x04, 0x03, + 0x09, 0x04, 0x09, 0x02, 0x3E, 0x00, 0x02, 0x01, 0x00, 0x80, 0x32, 0x09, 0x04, 0x00, 0x00, 0x01, + 0x02, 0x02, 0x01, 0x00, 0x05, 0x24, 0x00, 0x10, 0x01, 0x04, 0x24, 0x02, 0x02, 0x05, 0x24, 0x06, + 0x00, 0x01, 0x07, 0x05, 0x82, 0x03, 0x08, 0x00, 0xFF, 0x09, 0x04, 0x01, 0x00, 0x02, 0x0A, 0x00, + 0x00, 0x00, 0x07, 0x05, 0x04, 0x02, 0x40, 0x00, 0x05, 0x07, 0x05, 0x83, 0x02, 0x40, 0x00, 0x05, + 0x12, 0x01, 0x10, 0x01, 0x02, 0x00, 0x00, 0x08, 0x41, 0x23, 0x42, 0x00, 0x04, 0x02, 0x01, 0x02, + 0x00, 0x01, 0x48, 0x4C, 0x32, 0x2E, 0x30, 0x2E, 0x34, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x6A, 0xCC, 0x7B, 0xCC, 0x8C, 0xCC, 0x98, 0xCC, 0x9D, 0xCC, 0xA2, 0xCC, 0xA8, 0xCC, 0x08, 0x95, + 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0x08, 0x95, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, + 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0xDF, 0xCF, 0x00, 0x10, 0x00, 0x00, 0x00, 0xDF, 0xFB, 0xDC, +}; // end of HoodLoader2_0_4_Mega_8u2_hex \ No newline at end of file diff --git a/tools/Atmega_Board_Programmer/bootloader_converter.lua b/tools/HoodLoader2_Installation_Sketch/bootloader_converter.lua similarity index 99% rename from tools/Atmega_Board_Programmer/bootloader_converter.lua rename to tools/HoodLoader2_Installation_Sketch/bootloader_converter.lua index 5791ce4..d5a44c5 100644 --- a/tools/Atmega_Board_Programmer/bootloader_converter.lua +++ b/tools/HoodLoader2_Installation_Sketch/bootloader_converter.lua @@ -62,6 +62,7 @@ adder = 0 -- given a start address, deduce where the bootloader ends end_addresses = { [0x0000] = 0x4000, + [0x1000] = 0x2000, [0x1C00] = 0x2000, [0x1D00] = 0x2000, [0x1E00] = 0x2000, diff --git a/tools/Atmega_Board_Programmer/gpl.txt b/tools/HoodLoader2_Installation_Sketch/gpl.txt similarity index 100% rename from tools/Atmega_Board_Programmer/gpl.txt rename to tools/HoodLoader2_Installation_Sketch/gpl.txt diff --git a/tools/Atmega_Board_Programmer/md5.c b/tools/HoodLoader2_Installation_Sketch/md5.c similarity index 100% rename from tools/Atmega_Board_Programmer/md5.c rename to tools/HoodLoader2_Installation_Sketch/md5.c diff --git a/tools/Atmega_Board_Programmer/md5.h b/tools/HoodLoader2_Installation_Sketch/md5.h similarity index 100% rename from tools/Atmega_Board_Programmer/md5.h rename to tools/HoodLoader2_Installation_Sketch/md5.h diff --git a/lufa-LUFA-140928/.gitignore b/tools/lufa-LUFA-140928/.gitignore similarity index 100% rename from lufa-LUFA-140928/.gitignore rename to tools/lufa-LUFA-140928/.gitignore diff --git a/lufa-LUFA-140928/LUFA/Build/HID_EEPROM_Loader/HID_EEPROM_Loader.c b/tools/lufa-LUFA-140928/LUFA/Build/HID_EEPROM_Loader/HID_EEPROM_Loader.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Build/HID_EEPROM_Loader/HID_EEPROM_Loader.c rename to tools/lufa-LUFA-140928/LUFA/Build/HID_EEPROM_Loader/HID_EEPROM_Loader.c diff --git a/lufa-LUFA-140928/LUFA/Build/HID_EEPROM_Loader/makefile b/tools/lufa-LUFA-140928/LUFA/Build/HID_EEPROM_Loader/makefile similarity index 100% rename from lufa-LUFA-140928/LUFA/Build/HID_EEPROM_Loader/makefile rename to tools/lufa-LUFA-140928/LUFA/Build/HID_EEPROM_Loader/makefile diff --git a/lufa-LUFA-140928/LUFA/Build/lufa_atprogram.mk b/tools/lufa-LUFA-140928/LUFA/Build/lufa_atprogram.mk similarity index 100% rename from lufa-LUFA-140928/LUFA/Build/lufa_atprogram.mk rename to tools/lufa-LUFA-140928/LUFA/Build/lufa_atprogram.mk diff --git a/lufa-LUFA-140928/LUFA/Build/lufa_avrdude.mk b/tools/lufa-LUFA-140928/LUFA/Build/lufa_avrdude.mk similarity index 100% rename from lufa-LUFA-140928/LUFA/Build/lufa_avrdude.mk rename to tools/lufa-LUFA-140928/LUFA/Build/lufa_avrdude.mk diff --git a/lufa-LUFA-140928/LUFA/Build/lufa_build.mk b/tools/lufa-LUFA-140928/LUFA/Build/lufa_build.mk similarity index 100% rename from lufa-LUFA-140928/LUFA/Build/lufa_build.mk rename to tools/lufa-LUFA-140928/LUFA/Build/lufa_build.mk diff --git a/lufa-LUFA-140928/LUFA/Build/lufa_core.mk b/tools/lufa-LUFA-140928/LUFA/Build/lufa_core.mk similarity index 100% rename from lufa-LUFA-140928/LUFA/Build/lufa_core.mk rename to tools/lufa-LUFA-140928/LUFA/Build/lufa_core.mk diff --git a/lufa-LUFA-140928/LUFA/Build/lufa_cppcheck.mk b/tools/lufa-LUFA-140928/LUFA/Build/lufa_cppcheck.mk similarity index 100% rename from lufa-LUFA-140928/LUFA/Build/lufa_cppcheck.mk rename to tools/lufa-LUFA-140928/LUFA/Build/lufa_cppcheck.mk diff --git a/lufa-LUFA-140928/LUFA/Build/lufa_dfu.mk b/tools/lufa-LUFA-140928/LUFA/Build/lufa_dfu.mk similarity index 100% rename from lufa-LUFA-140928/LUFA/Build/lufa_dfu.mk rename to tools/lufa-LUFA-140928/LUFA/Build/lufa_dfu.mk diff --git a/lufa-LUFA-140928/LUFA/Build/lufa_doxygen.mk b/tools/lufa-LUFA-140928/LUFA/Build/lufa_doxygen.mk similarity index 100% rename from lufa-LUFA-140928/LUFA/Build/lufa_doxygen.mk rename to tools/lufa-LUFA-140928/LUFA/Build/lufa_doxygen.mk diff --git a/lufa-LUFA-140928/LUFA/Build/lufa_hid.mk b/tools/lufa-LUFA-140928/LUFA/Build/lufa_hid.mk similarity index 100% rename from lufa-LUFA-140928/LUFA/Build/lufa_hid.mk rename to tools/lufa-LUFA-140928/LUFA/Build/lufa_hid.mk diff --git a/lufa-LUFA-140928/LUFA/Build/lufa_sources.mk b/tools/lufa-LUFA-140928/LUFA/Build/lufa_sources.mk similarity index 100% rename from lufa-LUFA-140928/LUFA/Build/lufa_sources.mk rename to tools/lufa-LUFA-140928/LUFA/Build/lufa_sources.mk diff --git a/lufa-LUFA-140928/LUFA/CodeTemplates/DeviceTemplate/Descriptors.c b/tools/lufa-LUFA-140928/LUFA/CodeTemplates/DeviceTemplate/Descriptors.c similarity index 100% rename from lufa-LUFA-140928/LUFA/CodeTemplates/DeviceTemplate/Descriptors.c rename to tools/lufa-LUFA-140928/LUFA/CodeTemplates/DeviceTemplate/Descriptors.c diff --git a/lufa-LUFA-140928/LUFA/CodeTemplates/DeviceTemplate/Descriptors.h b/tools/lufa-LUFA-140928/LUFA/CodeTemplates/DeviceTemplate/Descriptors.h similarity index 100% rename from lufa-LUFA-140928/LUFA/CodeTemplates/DeviceTemplate/Descriptors.h rename to tools/lufa-LUFA-140928/LUFA/CodeTemplates/DeviceTemplate/Descriptors.h diff --git a/lufa-LUFA-140928/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.c b/tools/lufa-LUFA-140928/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.c similarity index 100% rename from lufa-LUFA-140928/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.c rename to tools/lufa-LUFA-140928/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.c diff --git a/lufa-LUFA-140928/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.h b/tools/lufa-LUFA-140928/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.h similarity index 100% rename from lufa-LUFA-140928/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.h rename to tools/lufa-LUFA-140928/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.h diff --git a/lufa-LUFA-140928/LUFA/CodeTemplates/DeviceTemplate/asf.xml b/tools/lufa-LUFA-140928/LUFA/CodeTemplates/DeviceTemplate/asf.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/CodeTemplates/DeviceTemplate/asf.xml rename to tools/lufa-LUFA-140928/LUFA/CodeTemplates/DeviceTemplate/asf.xml diff --git a/lufa-LUFA-140928/LUFA/CodeTemplates/DriverStubs/Board.h b/tools/lufa-LUFA-140928/LUFA/CodeTemplates/DriverStubs/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/CodeTemplates/DriverStubs/Board.h rename to tools/lufa-LUFA-140928/LUFA/CodeTemplates/DriverStubs/Board.h diff --git a/lufa-LUFA-140928/LUFA/CodeTemplates/DriverStubs/Buttons.h b/tools/lufa-LUFA-140928/LUFA/CodeTemplates/DriverStubs/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/CodeTemplates/DriverStubs/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/CodeTemplates/DriverStubs/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/CodeTemplates/DriverStubs/Dataflash.h b/tools/lufa-LUFA-140928/LUFA/CodeTemplates/DriverStubs/Dataflash.h similarity index 100% rename from lufa-LUFA-140928/LUFA/CodeTemplates/DriverStubs/Dataflash.h rename to tools/lufa-LUFA-140928/LUFA/CodeTemplates/DriverStubs/Dataflash.h diff --git a/lufa-LUFA-140928/LUFA/CodeTemplates/DriverStubs/Joystick.h b/tools/lufa-LUFA-140928/LUFA/CodeTemplates/DriverStubs/Joystick.h similarity index 100% rename from lufa-LUFA-140928/LUFA/CodeTemplates/DriverStubs/Joystick.h rename to tools/lufa-LUFA-140928/LUFA/CodeTemplates/DriverStubs/Joystick.h diff --git a/lufa-LUFA-140928/LUFA/CodeTemplates/DriverStubs/LEDs.h b/tools/lufa-LUFA-140928/LUFA/CodeTemplates/DriverStubs/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/CodeTemplates/DriverStubs/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/CodeTemplates/DriverStubs/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/CodeTemplates/HostTemplate/HostApplication.c b/tools/lufa-LUFA-140928/LUFA/CodeTemplates/HostTemplate/HostApplication.c similarity index 100% rename from lufa-LUFA-140928/LUFA/CodeTemplates/HostTemplate/HostApplication.c rename to tools/lufa-LUFA-140928/LUFA/CodeTemplates/HostTemplate/HostApplication.c diff --git a/lufa-LUFA-140928/LUFA/CodeTemplates/HostTemplate/HostApplication.h b/tools/lufa-LUFA-140928/LUFA/CodeTemplates/HostTemplate/HostApplication.h similarity index 100% rename from lufa-LUFA-140928/LUFA/CodeTemplates/HostTemplate/HostApplication.h rename to tools/lufa-LUFA-140928/LUFA/CodeTemplates/HostTemplate/HostApplication.h diff --git a/lufa-LUFA-140928/LUFA/CodeTemplates/HostTemplate/asf.xml b/tools/lufa-LUFA-140928/LUFA/CodeTemplates/HostTemplate/asf.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/CodeTemplates/HostTemplate/asf.xml rename to tools/lufa-LUFA-140928/LUFA/CodeTemplates/HostTemplate/asf.xml diff --git a/lufa-LUFA-140928/LUFA/CodeTemplates/LUFAConfig.h b/tools/lufa-LUFA-140928/LUFA/CodeTemplates/LUFAConfig.h similarity index 100% rename from lufa-LUFA-140928/LUFA/CodeTemplates/LUFAConfig.h rename to tools/lufa-LUFA-140928/LUFA/CodeTemplates/LUFAConfig.h diff --git a/lufa-LUFA-140928/LUFA/CodeTemplates/WindowsINF/LUFA CDC-ACM.inf b/tools/lufa-LUFA-140928/LUFA/CodeTemplates/WindowsINF/LUFA CDC-ACM.inf similarity index 100% rename from lufa-LUFA-140928/LUFA/CodeTemplates/WindowsINF/LUFA CDC-ACM.inf rename to tools/lufa-LUFA-140928/LUFA/CodeTemplates/WindowsINF/LUFA CDC-ACM.inf diff --git a/lufa-LUFA-140928/LUFA/CodeTemplates/WindowsINF/LUFA RNDIS.inf b/tools/lufa-LUFA-140928/LUFA/CodeTemplates/WindowsINF/LUFA RNDIS.inf similarity index 100% rename from lufa-LUFA-140928/LUFA/CodeTemplates/WindowsINF/LUFA RNDIS.inf rename to tools/lufa-LUFA-140928/LUFA/CodeTemplates/WindowsINF/LUFA RNDIS.inf diff --git a/lufa-LUFA-140928/LUFA/CodeTemplates/makefile_template b/tools/lufa-LUFA-140928/LUFA/CodeTemplates/makefile_template similarity index 100% rename from lufa-LUFA-140928/LUFA/CodeTemplates/makefile_template rename to tools/lufa-LUFA-140928/LUFA/CodeTemplates/makefile_template diff --git a/lufa-LUFA-140928/LUFA/Common/ArchitectureSpecific.h b/tools/lufa-LUFA-140928/LUFA/Common/ArchitectureSpecific.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Common/ArchitectureSpecific.h rename to tools/lufa-LUFA-140928/LUFA/Common/ArchitectureSpecific.h diff --git a/lufa-LUFA-140928/LUFA/Common/Architectures.h b/tools/lufa-LUFA-140928/LUFA/Common/Architectures.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Common/Architectures.h rename to tools/lufa-LUFA-140928/LUFA/Common/Architectures.h diff --git a/lufa-LUFA-140928/LUFA/Common/Attributes.h b/tools/lufa-LUFA-140928/LUFA/Common/Attributes.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Common/Attributes.h rename to tools/lufa-LUFA-140928/LUFA/Common/Attributes.h diff --git a/lufa-LUFA-140928/LUFA/Common/BoardTypes.h b/tools/lufa-LUFA-140928/LUFA/Common/BoardTypes.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Common/BoardTypes.h rename to tools/lufa-LUFA-140928/LUFA/Common/BoardTypes.h diff --git a/lufa-LUFA-140928/LUFA/Common/Common.h b/tools/lufa-LUFA-140928/LUFA/Common/Common.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Common/Common.h rename to tools/lufa-LUFA-140928/LUFA/Common/Common.h diff --git a/lufa-LUFA-140928/LUFA/Common/CompilerSpecific.h b/tools/lufa-LUFA-140928/LUFA/Common/CompilerSpecific.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Common/CompilerSpecific.h rename to tools/lufa-LUFA-140928/LUFA/Common/CompilerSpecific.h diff --git a/lufa-LUFA-140928/LUFA/Common/Endianness.h b/tools/lufa-LUFA-140928/LUFA/Common/Endianness.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Common/Endianness.h rename to tools/lufa-LUFA-140928/LUFA/Common/Endianness.h diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/BuildSystem.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/BuildSystem.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/BuildSystem.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/BuildSystem.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/BuildingLinkableLibraries.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/BuildingLinkableLibraries.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/BuildingLinkableLibraries.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/BuildingLinkableLibraries.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/ChangeLog.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/ChangeLog.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/ChangeLog.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/ChangeLog.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/CompileTimeTokens.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/CompileTimeTokens.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/CompileTimeTokens.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/CompileTimeTokens.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/CompilingApps.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/CompilingApps.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/CompilingApps.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/CompilingApps.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/ConfiguringApps.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/ConfiguringApps.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/ConfiguringApps.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/ConfiguringApps.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/DevelopingWithLUFA.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/DevelopingWithLUFA.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/DevelopingWithLUFA.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/DevelopingWithLUFA.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/DeviceSupport.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/DeviceSupport.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/DeviceSupport.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/DeviceSupport.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/DirectorySummaries.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/DirectorySummaries.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/DirectorySummaries.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/DirectorySummaries.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/Donating.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/Donating.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/Donating.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/Donating.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/ExportingLibrary.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/ExportingLibrary.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/ExportingLibrary.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/ExportingLibrary.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/FutureChanges.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/FutureChanges.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/FutureChanges.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/FutureChanges.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/GettingStarted.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/GettingStarted.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/GettingStarted.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/GettingStarted.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/Groups.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/Groups.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/Groups.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/Groups.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step1.png b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step1.png similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step1.png rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step1.png diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step2.png b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step2.png similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step2.png rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step2.png diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step3.png b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step3.png similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step3.png rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step3.png diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step4.png b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step4.png similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step4.png rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step4.png diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_1.png b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_1.png similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_1.png rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_1.png diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_2.png b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_2.png similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_2.png rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_2.png diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_3.png b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_3.png similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_3.png rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_3.png diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/Images/Author.jpg b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/Images/Author.jpg similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/Images/Author.jpg rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/Images/Author.jpg diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/Images/LUFA.png b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/Images/LUFA.png similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/Images/LUFA.png rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/Images/LUFA.png diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/Images/LUFA_thumb.png b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/Images/LUFA_thumb.png similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/Images/LUFA_thumb.png rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/Images/LUFA_thumb.png diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/KnownIssues.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/KnownIssues.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/KnownIssues.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/KnownIssues.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/LUFAPoweredProjects.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/LUFAPoweredProjects.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/LUFAPoweredProjects.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/LUFAPoweredProjects.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/LibraryResources.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/LibraryResources.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/LibraryResources.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/LibraryResources.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/LicenseInfo.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/LicenseInfo.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/LicenseInfo.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/LicenseInfo.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/MainPage.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/MainPage.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/MainPage.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/MainPage.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/MigrationInformation.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/MigrationInformation.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/MigrationInformation.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/MigrationInformation.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/OSDrivers.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/OSDrivers.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/OSDrivers.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/OSDrivers.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/ProgrammingApps.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/ProgrammingApps.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/ProgrammingApps.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/ProgrammingApps.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/SoftwareBootloaderJump.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/SoftwareBootloaderJump.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/SoftwareBootloaderJump.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/SoftwareBootloaderJump.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/Style/Footer.htm b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/Style/Footer.htm similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/Style/Footer.htm rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/Style/Footer.htm diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/Style/Style.css b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/Style/Style.css similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/Style/Style.css rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/Style/Style.css diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/VIDAndPIDValues.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/VIDAndPIDValues.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/VIDAndPIDValues.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/VIDAndPIDValues.txt diff --git a/lufa-LUFA-140928/LUFA/DoxygenPages/WritingBoardDrivers.txt b/tools/lufa-LUFA-140928/LUFA/DoxygenPages/WritingBoardDrivers.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/DoxygenPages/WritingBoardDrivers.txt rename to tools/lufa-LUFA-140928/LUFA/DoxygenPages/WritingBoardDrivers.txt diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/ADAFRUITU4/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/ADAFRUITU4/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/ADAFRUITU4/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/ADAFRUITU4/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/ADAFRUITU4/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/ADAFRUITU4/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/ADAFRUITU4/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/ADAFRUITU4/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BENITO/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BENITO/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BENITO/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BENITO/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BENITO/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BENITO/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BENITO/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BENITO/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BENITO/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BENITO/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BENITO/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BENITO/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BIGMULTIO/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BIGMULTIO/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BIGMULTIO/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BIGMULTIO/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BIGMULTIO/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BIGMULTIO/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BIGMULTIO/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BIGMULTIO/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BLACKCAT/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BLACKCAT/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BLACKCAT/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BLACKCAT/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BLACKCAT/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BLACKCAT/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BLACKCAT/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BLACKCAT/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUI/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUI/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUI/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUI/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUI/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUI/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUI/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUI/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUMBLEB/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUMBLEB/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUMBLEB/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUMBLEB/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUMBLEB/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUMBLEB/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUMBLEB/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUMBLEB/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUMBLEB/Joystick.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUMBLEB/Joystick.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUMBLEB/Joystick.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUMBLEB/Joystick.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUMBLEB/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUMBLEB/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUMBLEB/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/BUMBLEB/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/CULV3/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/CULV3/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/CULV3/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/CULV3/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/CULV3/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/CULV3/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/CULV3/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/CULV3/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/CULV3/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/CULV3/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/CULV3/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/CULV3/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/DUCE/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/DUCE/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/DUCE/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/DUCE/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/DUCE/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/DUCE/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/DUCE/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/DUCE/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/EVK527/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/EVK527/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/EVK527/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/EVK527/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/EVK527/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/EVK527/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/EVK527/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/EVK527/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/EVK527/Dataflash.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/EVK527/Dataflash.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/EVK527/Dataflash.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/EVK527/Dataflash.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/EVK527/Joystick.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/EVK527/Joystick.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/EVK527/Joystick.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/EVK527/Joystick.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/EVK527/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/EVK527/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/EVK527/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/EVK527/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/JMDBU2/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/JMDBU2/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/JMDBU2/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/JMDBU2/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/JMDBU2/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/JMDBU2/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/JMDBU2/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/JMDBU2/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/JMDBU2/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/JMDBU2/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/JMDBU2/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/JMDBU2/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/LEONARDO/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/LEONARDO/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/LEONARDO/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/LEONARDO/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/LEONARDO/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/LEONARDO/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/LEONARDO/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/LEONARDO/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MAXIMUS/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MAXIMUS/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MAXIMUS/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MAXIMUS/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MAXIMUS/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MAXIMUS/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MAXIMUS/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MAXIMUS/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICRO/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICRO/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICRO/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICRO/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICRO/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICRO/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICRO/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICRO/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROPENDOUS/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROPENDOUS/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROPENDOUS/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROPENDOUS/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROSIN162/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROSIN162/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROSIN162/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROSIN162/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROSIN162/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROSIN162/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROSIN162/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROSIN162/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROSIN162/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROSIN162/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROSIN162/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MICROSIN162/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MINIMUS/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MINIMUS/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MINIMUS/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MINIMUS/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MINIMUS/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MINIMUS/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MINIMUS/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MINIMUS/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MINIMUS/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MINIMUS/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MINIMUS/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MINIMUS/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MULTIO/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MULTIO/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MULTIO/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MULTIO/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MULTIO/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MULTIO/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MULTIO/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/MULTIO/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX162/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX162/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX162/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX162/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX162/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX162/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX162/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX162/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX162/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX162/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX162/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX162/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX32U4/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX32U4/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX32U4/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX32U4/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX32U4/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX32U4/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX32U4/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX32U4/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX32U4/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX32U4/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX32U4/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEX32U4/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/RZUSBSTICK/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/RZUSBSTICK/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/RZUSBSTICK/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/RZUSBSTICK/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/RZUSBSTICK/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/RZUSBSTICK/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/RZUSBSTICK/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/RZUSBSTICK/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/SPARKFUN8U2/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/SPARKFUN8U2/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/SPARKFUN8U2/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/SPARKFUN8U2/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/SPARKFUN8U2/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/SPARKFUN8U2/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/SPARKFUN8U2/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/SPARKFUN8U2/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STANGE_ISP/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STANGE_ISP/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STANGE_ISP/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STANGE_ISP/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STANGE_ISP/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STANGE_ISP/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STANGE_ISP/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STANGE_ISP/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STANGE_ISP/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STANGE_ISP/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STANGE_ISP/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STANGE_ISP/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK525/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK525/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK525/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK525/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK525/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK525/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK525/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK525/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK525/Dataflash.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK525/Dataflash.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK525/Dataflash.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK525/Dataflash.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK525/Joystick.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK525/Joystick.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK525/Joystick.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK525/Joystick.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK525/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK525/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK525/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK525/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK526/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK526/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK526/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK526/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK526/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK526/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK526/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK526/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK526/Dataflash.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK526/Dataflash.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK526/Dataflash.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK526/Dataflash.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK526/Joystick.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK526/Joystick.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK526/Joystick.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK526/Joystick.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK526/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK526/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK526/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/STK526/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/TEENSY/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/TEENSY/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/TEENSY/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/TEENSY/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/TEENSY/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/TEENSY/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/TEENSY/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/TEENSY/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/TUL/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/TUL/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/TUL/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/TUL/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/TUL/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/TUL/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/TUL/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/TUL/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/TUL/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/TUL/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/TUL/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/TUL/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/U2S/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/U2S/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/U2S/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/U2S/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/U2S/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/U2S/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/U2S/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/U2S/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/U2S/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/U2S/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/U2S/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/U2S/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UDIP/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UDIP/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UDIP/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UDIP/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UDIP/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UDIP/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UDIP/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UDIP/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UDIP/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UDIP/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UDIP/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UDIP/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UNO/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UNO/Board.h similarity index 92% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UNO/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UNO/Board.h index b23f8d0..38e2cb0 100644 --- a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UNO/Board.h +++ b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UNO/Board.h @@ -66,6 +66,12 @@ /* Macros: */ /** Indicates the board has hardware LEDs mounted. */ #define BOARD_HAS_LEDS + + /** Pin that can reset the main MCU. */ + #define AVR_RESET_LINE_PORT PORTD + #define AVR_RESET_LINE_DDR DDRD + #define AVR_RESET_LINE_PIN PIND + #define AVR_RESET_LINE_MASK (1 << PD7) /* Disable C linkage for C++ Compilers: */ #if defined(__cplusplus) diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UNO/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UNO/LEDs.h similarity index 92% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UNO/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UNO/LEDs.h index 006c3a5..28c0747 100644 --- a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UNO/LEDs.h +++ b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/UNO/LEDs.h @@ -44,8 +44,8 @@ * * * - * - * + * + * *
NameColorInfoActive LevelPort Pin
LEDS_LED1YellowRXLowPORTD.4
LEDS_LED2YellowTXLowPORTD.5
LEDS_LED1YellowRXLowPORTD.5
LEDS_LED2YellowTXLowPORTD.4
* * @{ @@ -70,16 +70,22 @@ /* Public Interface - May be used in end-application: */ /* Macros: */ /** LED mask for the first LED on the board. */ - #define LEDS_LED1 (1 << 4) + #define LEDS_LED1 (1 << 5) /** LED mask for the second LED on the board. */ - #define LEDS_LED2 (1 << 5) + #define LEDS_LED2 (1 << 4) /** LED mask for all the LEDs on the board. */ #define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2) /** LED mask for none of the board LEDs. */ #define LEDS_NO_LEDS 0 + + /** LED mask for the library LED driver, to indicate TX activity. */ + #define LEDMASK_TX LEDS_LED1 + + /** LED mask for the library LED driver, to indicate RX activity. */ + #define LEDMASK_RX LEDS_LED2 /* Inline Functions: */ #if !defined(__DOXYGEN__) @@ -92,7 +98,7 @@ static inline void LEDs_Disable(void) { DDRD &= ~LEDS_ALL_LEDS; - PORTD &= ~LEDS_ALL_LEDS; + PORTD |= LEDS_ALL_LEDS; } static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask) diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USB2AX/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USB2AX/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USB2AX/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USB2AX/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USB2AX/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USB2AX/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USB2AX/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USB2AX/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USB2AX/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USB2AX/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USB2AX/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USB2AX/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBFOO/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBFOO/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBFOO/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBFOO/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBFOO/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBFOO/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBFOO/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBFOO/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBFOO/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBFOO/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBFOO/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBFOO/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBKEY/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBKEY/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBKEY/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBKEY/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBKEY/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBKEY/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBKEY/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBKEY/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBKEY/Dataflash.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBKEY/Dataflash.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBKEY/Dataflash.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBKEY/Dataflash.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBKEY/Joystick.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBKEY/Joystick.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBKEY/Joystick.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBKEY/Joystick.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBKEY/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBKEY/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBKEY/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBKEY/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBTINYMKII/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBTINYMKII/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBTINYMKII/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBTINYMKII/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBTINYMKII/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBTINYMKII/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBTINYMKII/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBTINYMKII/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBTINYMKII/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBTINYMKII/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBTINYMKII/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/USBTINYMKII/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/XPLAIN/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/XPLAIN/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/XPLAIN/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/XPLAIN/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/XPLAIN/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/XPLAIN/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/XPLAIN/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/XPLAIN/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/YUN/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/YUN/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/YUN/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/YUN/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/YUN/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/YUN/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/YUN/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/AVR8/YUN/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/Dataflash.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/Dataflash.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/Dataflash.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/Dataflash.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/Joystick.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/Joystick.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/Joystick.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/Joystick.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/Temperature.c b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/Temperature.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/Temperature.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/Temperature.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/Temperature.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/Temperature.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/Temperature.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/Temperature.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1100/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1100/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1100/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1100/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1100/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1100/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1100/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1100/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1100/Joystick.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1100/Joystick.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1100/Joystick.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1100/Joystick.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1100/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1100/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1100/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1100/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1101/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1101/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1101/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1101/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1101/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1101/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1101/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1101/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1101/Joystick.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1101/Joystick.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1101/Joystick.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1101/Joystick.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1101/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1101/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1101/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1101/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1104/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1104/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1104/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1104/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1104/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1104/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1104/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1104/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1104/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1104/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1104/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/EVK1104/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Dataflash.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Dataflash.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Dataflash.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Dataflash.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/Board.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/Board.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/Board.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/Board.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/Buttons.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/Buttons.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/Buttons.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/Buttons.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/LEDs.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/LEDs.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/LEDs.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/LEDs.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Misc/AT45DB321C.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Misc/AT45DB321C.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Misc/AT45DB321C.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Misc/AT45DB321C.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Misc/AT45DB642D.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Misc/AT45DB642D.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Misc/AT45DB642D.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Misc/AT45DB642D.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Misc/RingBuffer.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Misc/RingBuffer.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Misc/RingBuffer.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Misc/RingBuffer.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Misc/TerminalCodes.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Misc/TerminalCodes.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Misc/TerminalCodes.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Misc/TerminalCodes.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Peripheral/ADC.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/ADC.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Peripheral/ADC.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/ADC.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/ADC_AVR8.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/ADC_AVR8.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/ADC_AVR8.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/ADC_AVR8.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/SPI_AVR8.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/SPI_AVR8.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/SPI_AVR8.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/SPI_AVR8.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/SerialSPI_AVR8.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/SerialSPI_AVR8.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/SerialSPI_AVR8.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/SerialSPI_AVR8.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.c b/tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.c b/tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Peripheral/SPI.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/SPI.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Peripheral/SPI.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/SPI.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Peripheral/Serial.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/Serial.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Peripheral/Serial.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/Serial.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Peripheral/SerialSPI.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/SerialSPI.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Peripheral/SerialSPI.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/SerialSPI.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Peripheral/TWI.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/TWI.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Peripheral/TWI.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/TWI.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/SPI_XMEGA.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/SPI_XMEGA.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/SPI_XMEGA.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/SPI_XMEGA.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/SerialSPI_XMEGA.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/SerialSPI_XMEGA.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/SerialSPI_XMEGA.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/SerialSPI_XMEGA.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.c b/tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/TWI_XMEGA.c b/tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/TWI_XMEGA.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/TWI_XMEGA.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/TWI_XMEGA.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/TWI_XMEGA.h b/tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/TWI_XMEGA.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/TWI_XMEGA.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/Peripheral/XMEGA/TWI_XMEGA.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/AndroidAccessoryClass.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/AndroidAccessoryClass.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/AndroidAccessoryClass.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/AndroidAccessoryClass.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/AudioClass.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/AudioClass.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/AudioClass.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/AudioClass.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/CDCClass.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/CDCClass.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/CDCClass.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/CDCClass.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/AndroidAccessoryClassCommon.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/AndroidAccessoryClassCommon.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/AndroidAccessoryClassCommon.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/AndroidAccessoryClassCommon.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/AudioClassCommon.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/AudioClassCommon.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/AudioClassCommon.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/AudioClassCommon.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/CDCClassCommon.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/CDCClassCommon.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/CDCClassCommon.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/CDCClassCommon.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/HIDClassCommon.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/HIDClassCommon.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/HIDClassCommon.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/HIDClassCommon.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/HIDParser.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/HIDParser.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/HIDParser.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/HIDParser.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/HIDParser.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/HIDParser.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/HIDParser.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/HIDParser.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/HIDReportData.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/HIDReportData.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/HIDReportData.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/HIDReportData.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/MIDIClassCommon.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/MIDIClassCommon.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/MIDIClassCommon.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/MIDIClassCommon.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/MassStorageClassCommon.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/MassStorageClassCommon.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/MassStorageClassCommon.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/MassStorageClassCommon.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/PrinterClassCommon.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/PrinterClassCommon.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/PrinterClassCommon.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/PrinterClassCommon.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/RNDISClassCommon.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/RNDISClassCommon.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/RNDISClassCommon.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/RNDISClassCommon.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/StillImageClassCommon.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/StillImageClassCommon.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/StillImageClassCommon.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Common/StillImageClassCommon.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/AudioClassDevice.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/AudioClassDevice.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/AudioClassDevice.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/AudioClassDevice.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/AudioClassDevice.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/AudioClassDevice.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/AudioClassDevice.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/AudioClassDevice.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/CDCClassDevice.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/CDCClassDevice.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/CDCClassDevice.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/CDCClassDevice.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/CDCClassDevice.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/CDCClassDevice.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/CDCClassDevice.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/CDCClassDevice.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/HIDClassDevice.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/HIDClassDevice.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/HIDClassDevice.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/HIDClassDevice.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/HIDClassDevice.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/HIDClassDevice.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/HIDClassDevice.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/HIDClassDevice.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/HIDClass.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/HIDClass.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/HIDClass.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/HIDClass.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/AudioClassHost.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/AudioClassHost.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/AudioClassHost.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/AudioClassHost.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/AudioClassHost.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/AudioClassHost.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/AudioClassHost.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/AudioClassHost.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/CDCClassHost.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/CDCClassHost.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/CDCClassHost.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/CDCClassHost.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/CDCClassHost.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/CDCClassHost.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/CDCClassHost.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/CDCClassHost.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/HIDClassHost.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/HIDClassHost.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/HIDClassHost.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/HIDClassHost.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/HIDClassHost.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/HIDClassHost.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/HIDClassHost.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/HIDClassHost.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/MIDIClassHost.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/MIDIClassHost.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/MIDIClassHost.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/MIDIClassHost.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/MIDIClassHost.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/MIDIClassHost.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/MIDIClassHost.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/MIDIClassHost.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/PrinterClassHost.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/PrinterClassHost.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/PrinterClassHost.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/PrinterClassHost.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/PrinterClassHost.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/PrinterClassHost.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/PrinterClassHost.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/PrinterClassHost.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/RNDISClassHost.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/RNDISClassHost.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/RNDISClassHost.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/RNDISClassHost.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/RNDISClassHost.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/RNDISClassHost.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/RNDISClassHost.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/RNDISClassHost.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/StillImageClassHost.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/StillImageClassHost.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/StillImageClassHost.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/StillImageClassHost.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/StillImageClassHost.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/StillImageClassHost.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/StillImageClassHost.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/Host/StillImageClassHost.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/MIDIClass.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/MIDIClass.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/MIDIClass.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/MIDIClass.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/MassStorageClass.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/MassStorageClass.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/MassStorageClass.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/MassStorageClass.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/PrinterClass.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/PrinterClass.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/PrinterClass.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/PrinterClass.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/RNDISClass.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/RNDISClass.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/RNDISClass.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/RNDISClass.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Class/StillImageClass.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/StillImageClass.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Class/StillImageClass.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Class/StillImageClass.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/OTG_AVR8.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/OTG_AVR8.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/OTG_AVR8.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/OTG_AVR8.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/ConfigDescriptors.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/ConfigDescriptors.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/ConfigDescriptors.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/ConfigDescriptors.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/ConfigDescriptors.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/ConfigDescriptors.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/ConfigDescriptors.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/ConfigDescriptors.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/Device.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/Device.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/Device.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/Device.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/DeviceStandardReq.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/DeviceStandardReq.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/DeviceStandardReq.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/DeviceStandardReq.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/DeviceStandardReq.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/DeviceStandardReq.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/DeviceStandardReq.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/DeviceStandardReq.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/Endpoint.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/Endpoint.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/Endpoint.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/Endpoint.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/EndpointStream.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/EndpointStream.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/EndpointStream.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/EndpointStream.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/Events.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/Events.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/Events.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/Events.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/Events.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/Events.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/Events.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/Events.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/Host.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/Host.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/Host.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/Host.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/HostStandardReq.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/HostStandardReq.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/HostStandardReq.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/HostStandardReq.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/HostStandardReq.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/HostStandardReq.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/HostStandardReq.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/HostStandardReq.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/OTG.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/OTG.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/OTG.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/OTG.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/Pipe.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/Pipe.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/Pipe.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/Pipe.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/PipeStream.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/PipeStream.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/PipeStream.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/PipeStream.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/StdDescriptors.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/StdDescriptors.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/StdDescriptors.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/StdDescriptors.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/StdRequestType.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/StdRequestType.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/StdRequestType.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/StdRequestType.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Device_UC3.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Device_UC3.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Device_UC3.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Device_UC3.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Device_UC3.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Device_UC3.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Device_UC3.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Device_UC3.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Host_UC3.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Host_UC3.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Host_UC3.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Host_UC3.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Host_UC3.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Host_UC3.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Host_UC3.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Host_UC3.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/USBController_UC3.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/USBController_UC3.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/USBController_UC3.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/USBController_UC3.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/USBController_UC3.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/USBController_UC3.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/USBController_UC3.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/USBController_UC3.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/USBController.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/USBController.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/USBController.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/USBController.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/USBInterrupt.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/USBInterrupt.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/USBInterrupt.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/USBInterrupt.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/USBMode.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/USBMode.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/USBMode.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/USBMode.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/USBTask.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/USBTask.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/USBTask.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/USBTask.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/USBTask.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/USBTask.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/USBTask.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/USBTask.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Host_XMEGA.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Host_XMEGA.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Host_XMEGA.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Host_XMEGA.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/PipeStream_XMEGA.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/PipeStream_XMEGA.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/PipeStream_XMEGA.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/PipeStream_XMEGA.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Pipe_XMEGA.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Pipe_XMEGA.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Pipe_XMEGA.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Pipe_XMEGA.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h diff --git a/lufa-LUFA-140928/LUFA/Drivers/USB/USB.h b/tools/lufa-LUFA-140928/LUFA/Drivers/USB/USB.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Drivers/USB/USB.h rename to tools/lufa-LUFA-140928/LUFA/Drivers/USB/USB.h diff --git a/lufa-LUFA-140928/LUFA/License.txt b/tools/lufa-LUFA-140928/LUFA/License.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/License.txt rename to tools/lufa-LUFA-140928/LUFA/License.txt diff --git a/lufa-LUFA-140928/LUFA/Platform/Platform.h b/tools/lufa-LUFA-140928/LUFA/Platform/Platform.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Platform/Platform.h rename to tools/lufa-LUFA-140928/LUFA/Platform/Platform.h diff --git a/lufa-LUFA-140928/LUFA/Platform/UC3/ClockManagement.h b/tools/lufa-LUFA-140928/LUFA/Platform/UC3/ClockManagement.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Platform/UC3/ClockManagement.h rename to tools/lufa-LUFA-140928/LUFA/Platform/UC3/ClockManagement.h diff --git a/lufa-LUFA-140928/LUFA/Platform/UC3/Exception.S b/tools/lufa-LUFA-140928/LUFA/Platform/UC3/Exception.S similarity index 100% rename from lufa-LUFA-140928/LUFA/Platform/UC3/Exception.S rename to tools/lufa-LUFA-140928/LUFA/Platform/UC3/Exception.S diff --git a/lufa-LUFA-140928/LUFA/Platform/UC3/InterruptManagement.c b/tools/lufa-LUFA-140928/LUFA/Platform/UC3/InterruptManagement.c similarity index 100% rename from lufa-LUFA-140928/LUFA/Platform/UC3/InterruptManagement.c rename to tools/lufa-LUFA-140928/LUFA/Platform/UC3/InterruptManagement.c diff --git a/lufa-LUFA-140928/LUFA/Platform/UC3/InterruptManagement.h b/tools/lufa-LUFA-140928/LUFA/Platform/UC3/InterruptManagement.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Platform/UC3/InterruptManagement.h rename to tools/lufa-LUFA-140928/LUFA/Platform/UC3/InterruptManagement.h diff --git a/lufa-LUFA-140928/LUFA/Platform/UC3/UC3ExperimentalInfo.txt b/tools/lufa-LUFA-140928/LUFA/Platform/UC3/UC3ExperimentalInfo.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/Platform/UC3/UC3ExperimentalInfo.txt rename to tools/lufa-LUFA-140928/LUFA/Platform/UC3/UC3ExperimentalInfo.txt diff --git a/lufa-LUFA-140928/LUFA/Platform/XMEGA/ClockManagement.h b/tools/lufa-LUFA-140928/LUFA/Platform/XMEGA/ClockManagement.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Platform/XMEGA/ClockManagement.h rename to tools/lufa-LUFA-140928/LUFA/Platform/XMEGA/ClockManagement.h diff --git a/lufa-LUFA-140928/LUFA/Platform/XMEGA/XMEGAExperimentalInfo.txt b/tools/lufa-LUFA-140928/LUFA/Platform/XMEGA/XMEGAExperimentalInfo.txt similarity index 100% rename from lufa-LUFA-140928/LUFA/Platform/XMEGA/XMEGAExperimentalInfo.txt rename to tools/lufa-LUFA-140928/LUFA/Platform/XMEGA/XMEGAExperimentalInfo.txt diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/HV1/helpcontentsetup.msha b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/HV1/helpcontentsetup.msha similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/HV1/helpcontentsetup.msha rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/HV1/helpcontentsetup.msha diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/HV1/lufa_docbook_transform.xslt b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/HV1/lufa_docbook_transform.xslt similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/HV1/lufa_docbook_transform.xslt rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/HV1/lufa_docbook_transform.xslt diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/HV1/lufa_helpcontentsetup_transform.xslt b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/HV1/lufa_helpcontentsetup_transform.xslt similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/HV1/lufa_helpcontentsetup_transform.xslt rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/HV1/lufa_helpcontentsetup_transform.xslt diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/LUFA.dll b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/LUFA.dll similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/LUFA.dll rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/LUFA.dll diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/LUFA.pkgdef b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/LUFA.pkgdef similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/LUFA.pkgdef rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/LUFA.pkgdef diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/[Content_Types].xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/[Content_Types].xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/[Content_Types].xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/[Content_Types].xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/asf-manifest.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/asf-manifest.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/asf-manifest.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/asf-manifest.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/extension.vsixmanifest b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/extension.vsixmanifest similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/extension.vsixmanifest rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/extension.vsixmanifest diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/generate_caches.py b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/generate_caches.py similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/generate_caches.py rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/generate_caches.py diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/lufa_asfmanifest_transform.xslt b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/lufa_asfmanifest_transform.xslt similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/lufa_asfmanifest_transform.xslt rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/lufa_asfmanifest_transform.xslt diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/lufa_vsmanifest_transform.xslt b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/lufa_vsmanifest_transform.xslt similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/lufa_vsmanifest_transform.xslt rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/VSIX/lufa_vsmanifest_transform.xslt diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/XDK/lufa_extension_transform.xslt b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/XDK/lufa_extension_transform.xslt similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/XDK/lufa_extension_transform.xslt rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/XDK/lufa_extension_transform.xslt diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/XDK/lufa_filelist_transform.xslt b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/XDK/lufa_filelist_transform.xslt similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/XDK/lufa_filelist_transform.xslt rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/XDK/lufa_filelist_transform.xslt diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/XDK/lufa_indent_transform.xslt b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/XDK/lufa_indent_transform.xslt similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/XDK/lufa_indent_transform.xslt rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/XDK/lufa_indent_transform.xslt diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/XDK/lufa_module_transform.xslt b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/XDK/lufa_module_transform.xslt similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/XDK/lufa_module_transform.xslt rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/XDK/lufa_module_transform.xslt diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_common.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_common.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_common.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_common.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_board.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_board.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_board.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_board.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_board_names.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_board_names.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_board_names.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_board_names.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_misc.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_misc.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_misc.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_misc.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_peripheral.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_peripheral.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_peripheral.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_peripheral.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_android.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_android.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_android.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_android.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_audio.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_audio.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_audio.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_audio.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_cdc.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_cdc.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_cdc.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_cdc.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_hid.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_hid.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_hid.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_hid.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_midi.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_midi.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_midi.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_midi.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_ms.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_ms.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_ms.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_ms.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_printer.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_printer.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_printer.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_printer.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_rndis.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_rndis.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_rndis.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_rndis.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_si.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_si.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_si.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_class_si.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_core.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_core.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_core.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_core.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_core_avr8.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_core_avr8.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_core_avr8.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_core_avr8.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_core_uc3.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_core_uc3.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_core_uc3.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_core_uc3.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_core_xmega.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_core_xmega.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_core_xmega.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_drivers_usb_core_xmega.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_platform.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_platform.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_platform.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_platform.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_platform_uc3.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_platform_uc3.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_platform_uc3.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_platform_uc3.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_platform_xmega.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_platform_xmega.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_platform_xmega.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_platform_xmega.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_toolchain.xml b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_toolchain.xml similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/lufa_toolchain.xml rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/lufa_toolchain.xml diff --git a/lufa-LUFA-140928/LUFA/StudioIntegration/makefile b/tools/lufa-LUFA-140928/LUFA/StudioIntegration/makefile similarity index 100% rename from lufa-LUFA-140928/LUFA/StudioIntegration/makefile rename to tools/lufa-LUFA-140928/LUFA/StudioIntegration/makefile diff --git a/lufa-LUFA-140928/LUFA/Version.h b/tools/lufa-LUFA-140928/LUFA/Version.h similarity index 100% rename from lufa-LUFA-140928/LUFA/Version.h rename to tools/lufa-LUFA-140928/LUFA/Version.h diff --git a/lufa-LUFA-140928/LUFA/doxyfile b/tools/lufa-LUFA-140928/LUFA/doxyfile similarity index 100% rename from lufa-LUFA-140928/LUFA/doxyfile rename to tools/lufa-LUFA-140928/LUFA/doxyfile diff --git a/lufa-LUFA-140928/LUFA/makefile b/tools/lufa-LUFA-140928/LUFA/makefile similarity index 100% rename from lufa-LUFA-140928/LUFA/makefile rename to tools/lufa-LUFA-140928/LUFA/makefile diff --git a/lufa-LUFA-140928/README.txt b/tools/lufa-LUFA-140928/README.txt similarity index 100% rename from lufa-LUFA-140928/README.txt rename to tools/lufa-LUFA-140928/README.txt diff --git a/lufa-LUFA-140928/makefile b/tools/lufa-LUFA-140928/makefile similarity index 100% rename from lufa-LUFA-140928/makefile rename to tools/lufa-LUFA-140928/makefile