aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Woodhouse <dwmw2@infradead.org>2008-05-29 17:17:17 +0300
committerDavid Woodhouse <David.Woodhouse@intel.com>2008-07-10 14:47:51 +0100
commit79682499d9f3eaea4e6a970d8aa0b9bc1ac2a97f (patch)
tree16dd99c5e220af63e651f983a48b0ae49089695d
parent0f805b86c9492c294c710de8539a8be68b521a86 (diff)
downloadkernel_samsung_espresso10-79682499d9f3eaea4e6a970d8aa0b9bc1ac2a97f.zip
kernel_samsung_espresso10-79682499d9f3eaea4e6a970d8aa0b9bc1ac2a97f.tar.gz
kernel_samsung_espresso10-79682499d9f3eaea4e6a970d8aa0b9bc1ac2a97f.tar.bz2
kaweth: use request_firmware()
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
-rw-r--r--drivers/net/usb/kaweth.c43
-rw-r--r--drivers/net/usb/kawethfw.h557
-rw-r--r--firmware/Makefile3
-rw-r--r--firmware/WHENCE13
-rw-r--r--firmware/kaweth/new_code.bin.ihex206
-rw-r--r--firmware/kaweth/new_code_fix.bin.ihex40
-rw-r--r--firmware/kaweth/trigger_code.bin.ihex13
-rw-r--r--firmware/kaweth/trigger_code_fix.bin.ihex3
8 files changed, 304 insertions, 574 deletions
diff --git a/drivers/net/usb/kaweth.c b/drivers/net/usb/kaweth.c
index 7c66b05..d6829db 100644
--- a/drivers/net/usb/kaweth.c
+++ b/drivers/net/usb/kaweth.c
@@ -57,13 +57,12 @@
#include <linux/ethtool.h>
#include <linux/dma-mapping.h>
#include <linux/wait.h>
+#include <linux/firmware.h>
#include <asm/uaccess.h>
#include <asm/byteorder.h>
#undef DEBUG
-#include "kawethfw.h"
-
#define KAWETH_MTU 1514
#define KAWETH_BUF_SIZE 1664
#define KAWETH_TX_TIMEOUT (5 * HZ)
@@ -108,6 +107,10 @@
MODULE_AUTHOR("Michael Zappe <zapman@interlan.net>, Stephane Alnet <stephane@u-picardie.fr>, Brad Hards <bhards@bigpond.net.au> and Oliver Neukum <oliver@neukum.org>");
MODULE_DESCRIPTION("KL5USB101 USB Ethernet driver");
MODULE_LICENSE("GPL");
+MODULE_FIRMWARE("kaweth/new_code.bin");
+MODULE_FIRMWARE("kaweth/new_code_fix.bin");
+MODULE_FIRMWARE("kaweth/trigger_code.bin");
+MODULE_FIRMWARE("kaweth/trigger_code_fix.bin");
static const char driver_name[] = "kaweth";
@@ -385,17 +388,28 @@ static int kaweth_set_receive_filter(struct kaweth_device *kaweth,
* kaweth_download_firmware
****************************************************************/
static int kaweth_download_firmware(struct kaweth_device *kaweth,
- __u8 *data,
- __u16 data_len,
+ const char *fwname,
__u8 interrupt,
__u8 type)
{
- if(data_len > KAWETH_FIRMWARE_BUF_SIZE) {
- err("Firmware too big: %d", data_len);
+ const struct firmware *fw;
+ int data_len;
+ int ret;
+
+ ret = request_firmware(&fw, fwname, &kaweth->dev->dev);
+ if (ret) {
+ err("Firmware request failed\n");
+ return ret;
+ }
+
+ if (fw->size > KAWETH_FIRMWARE_BUF_SIZE) {
+ err("Firmware too big: %zu", fw->size);
return -ENOSPC;
}
+ data_len = fw->size;
+ memcpy(kaweth->firmware_buf, fw->data, fw->size);
- memcpy(kaweth->firmware_buf, data, data_len);
+ release_firmware(fw);
kaweth->firmware_buf[2] = (data_len & 0xFF) - 7;
kaweth->firmware_buf[3] = data_len >> 8;
@@ -406,8 +420,7 @@ static int kaweth_download_firmware(struct kaweth_device *kaweth,
kaweth->firmware_buf[2]);
dbg("Downloading firmware at %p to kaweth device at %p",
- data,
- kaweth);
+ fw->data, kaweth);
dbg("Firmware length: %d", data_len);
return kaweth_control(kaweth,
@@ -1009,8 +1022,7 @@ static int kaweth_probe(
info("Downloading firmware...");
kaweth->firmware_buf = (__u8 *)__get_free_page(GFP_KERNEL);
if ((result = kaweth_download_firmware(kaweth,
- kaweth_new_code,
- len_kaweth_new_code,
+ "kaweth/new_code.bin",
100,
2)) < 0) {
err("Error downloading firmware (%d)", result);
@@ -1018,8 +1030,7 @@ static int kaweth_probe(
}
if ((result = kaweth_download_firmware(kaweth,
- kaweth_new_code_fix,
- len_kaweth_new_code_fix,
+ "kaweth/new_code_fix.bin",
100,
3)) < 0) {
err("Error downloading firmware fix (%d)", result);
@@ -1027,8 +1038,7 @@ static int kaweth_probe(
}
if ((result = kaweth_download_firmware(kaweth,
- kaweth_trigger_code,
- len_kaweth_trigger_code,
+ "kaweth/trigger_code.bin",
126,
2)) < 0) {
err("Error downloading trigger code (%d)", result);
@@ -1037,8 +1047,7 @@ static int kaweth_probe(
}
if ((result = kaweth_download_firmware(kaweth,
- kaweth_trigger_code_fix,
- len_kaweth_trigger_code_fix,
+ "kaweth/trigger_code_fix.bin",
126,
3)) < 0) {
err("Error downloading trigger code fix (%d)", result);
diff --git a/drivers/net/usb/kawethfw.h b/drivers/net/usb/kawethfw.h
deleted file mode 100644
index cf85fcb..0000000
--- a/drivers/net/usb/kawethfw.h
+++ /dev/null
@@ -1,557 +0,0 @@
-/******************************************/
-/* NOTE: B6/C3 is data header signature */
-/* 0xAA/0xBB is data length = total */
-/* bytes - 7, 0xCC is type, 0xDD is */
-/* interrupt to use. */
-/******************************************/
-
-/****************************************************************
- * kaweth_trigger_code
- ****************************************************************/
-static __u8 kaweth_trigger_code[] =
-{
- 0xB6, 0xC3, 0xAA, 0xBB, 0xCC, 0xDD,
- 0xc8, 0x07, 0xa0, 0x00, 0xf0, 0x07, 0x5e, 0x00,
- 0x06, 0x00, 0xf0, 0x07, 0x0a, 0x00, 0x08, 0x00,
- 0xf0, 0x09, 0x00, 0x00, 0x02, 0x00, 0xe7, 0x07,
- 0x36, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00,
- 0x04, 0x00, 0xe7, 0x07, 0x50, 0xc3, 0x10, 0xc0,
- 0xf0, 0x09, 0x0e, 0xc0, 0x00, 0x00, 0xe7, 0x87,
- 0x01, 0x00, 0x0e, 0xc0, 0x97, 0xcf, 0xd7, 0x09,
- 0x00, 0xc0, 0x17, 0x02, 0xc8, 0x07, 0xa0, 0x00,
- 0xe7, 0x17, 0x50, 0xc3, 0x10, 0xc0, 0x30, 0xd8,
- 0x04, 0x00, 0x30, 0x5c, 0x08, 0x00, 0x04, 0x00,
- 0xb0, 0xc0, 0x06, 0x00, 0xc8, 0x05, 0xe7, 0x05,
- 0x00, 0xc0, 0xc0, 0xdf, 0x97, 0xcf, 0x49, 0xaf,
- 0xc0, 0x07, 0x00, 0x00, 0x60, 0xaf, 0x4a, 0xaf,
- 0x00, 0x0c, 0x0c, 0x00, 0x40, 0xd2, 0x00, 0x1c,
- 0x0c, 0x00, 0x40, 0xd2, 0x30, 0x00, 0x08, 0x00,
- 0xf0, 0x07, 0x00, 0x00, 0x04, 0x00, 0xf0, 0x07,
- 0x86, 0x00, 0x06, 0x00, 0x67, 0xcf, 0x27, 0x0c,
- 0x02, 0x00, 0x00, 0x00, 0x27, 0x0c, 0x00, 0x00,
- 0x0e, 0xc0, 0x49, 0xaf, 0x64, 0xaf, 0xc0, 0x07,
- 0x00, 0x00, 0x4b, 0xaf, 0x4a, 0xaf, 0x5a, 0xcf,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x94, 0x00, 0x05, 0x00,
- 0x00, 0x00
-};
-/****************************************************************
- * kaweth_trigger_code_fix
- ****************************************************************/
-static __u8 kaweth_trigger_code_fix[] =
-{
- 0xB6, 0xC3, 0xAA, 0xBB, 0xCC, 0xDD,
- 0x02, 0x00, 0x06, 0x00, 0x18, 0x00, 0x3e, 0x00,
- 0x80, 0x00, 0x98, 0x00, 0xaa, 0x00,
- 0x00, 0x00
-};
-
-/****************************************************************
- * kaweth_new_code
- ****************************************************************/
-static __u8 kaweth_new_code[] =
-{
- 0xB6, 0xC3, 0xAA, 0xBB, 0xCC, 0xDD,
- 0x9f, 0xcf, 0xde, 0x06, 0xe7, 0x57, 0x00, 0x00,
- 0xc4, 0x06, 0x97, 0xc1, 0xe7, 0x67, 0xff, 0x1f,
- 0x28, 0xc0, 0xe7, 0x87, 0x00, 0x04, 0x24, 0xc0,
- 0xe7, 0x67, 0xff, 0xf9, 0x22, 0xc0, 0x97, 0xcf,
- 0xd7, 0x09, 0x00, 0xc0, 0xe7, 0x09, 0xa2, 0xc0,
- 0xbe, 0x06, 0x9f, 0xaf, 0x36, 0x00, 0xe7, 0x05,
- 0x00, 0xc0, 0xa7, 0xcf, 0xbc, 0x06, 0x97, 0xcf,
- 0xe7, 0x57, 0x00, 0x00, 0xb8, 0x06, 0xa7, 0xa1,
- 0xb8, 0x06, 0x97, 0xcf, 0xe7, 0x57, 0x00, 0x00,
- 0x14, 0x08, 0x0a, 0xc0, 0xe7, 0x57, 0x00, 0x00,
- 0xa4, 0xc0, 0xa7, 0xc0, 0x7a, 0x06, 0x9f, 0xaf,
- 0x92, 0x07, 0xe7, 0x07, 0x00, 0x00, 0x14, 0x08,
- 0xe7, 0x57, 0xff, 0xff, 0xba, 0x06, 0x9f, 0xa0,
- 0x38, 0x00, 0xe7, 0x59, 0xba, 0x06, 0xbe, 0x06,
- 0x9f, 0xa0, 0x38, 0x00, 0xc8, 0x09, 0xca, 0x06,
- 0x08, 0x62, 0x9f, 0xa1, 0x36, 0x08, 0xc0, 0x09,
- 0x76, 0x06, 0x00, 0x60, 0xa7, 0xc0, 0x7a, 0x06,
- 0x9f, 0xaf, 0xcc, 0x02, 0xe7, 0x57, 0x00, 0x00,
- 0xb8, 0x06, 0xa7, 0xc1, 0x7a, 0x06, 0x9f, 0xaf,
- 0x04, 0x00, 0xe7, 0x57, 0x00, 0x00, 0x8e, 0x06,
- 0x0a, 0xc1, 0xe7, 0x09, 0x20, 0xc0, 0x10, 0x08,
- 0xe7, 0xd0, 0x10, 0x08, 0xe7, 0x67, 0x40, 0x00,
- 0x10, 0x08, 0x9f, 0xaf, 0x92, 0x0c, 0xc0, 0x09,
- 0xd0, 0x06, 0x00, 0x60, 0x05, 0xc4, 0xc0, 0x59,
- 0xbe, 0x06, 0x02, 0xc0, 0x9f, 0xaf, 0xec, 0x00,
- 0x9f, 0xaf, 0x34, 0x02, 0xe7, 0x57, 0x00, 0x00,
- 0xa6, 0x06, 0x9f, 0xa0, 0x7a, 0x02, 0xa7, 0xcf,
- 0x7a, 0x06, 0x48, 0x02, 0xe7, 0x09, 0xbe, 0x06,
- 0xd0, 0x06, 0xc8, 0x37, 0x04, 0x00, 0x9f, 0xaf,
- 0x08, 0x03, 0x97, 0xcf, 0xe7, 0x57, 0x00, 0x00,
- 0xce, 0x06, 0x97, 0xc0, 0xd7, 0x09, 0x00, 0xc0,
- 0xc1, 0xdf, 0xc8, 0x09, 0xc6, 0x06, 0x08, 0x62,
- 0x14, 0xc0, 0x27, 0x04, 0xc6, 0x06, 0x10, 0x94,
- 0xf0, 0x07, 0x10, 0x08, 0x02, 0x00, 0xc1, 0x07,
- 0x01, 0x00, 0x70, 0x00, 0x04, 0x00, 0xf0, 0x07,
- 0x30, 0x01, 0x06, 0x00, 0x50, 0xaf, 0xe7, 0x07,
- 0xff, 0xff, 0xd0, 0x06, 0xe7, 0x07, 0x00, 0x00,
- 0xce, 0x06, 0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf,
- 0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf, 0x48, 0x02,
- 0xd0, 0x09, 0xc6, 0x06, 0x27, 0x02, 0xc6, 0x06,
- 0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf, 0x48, 0x02,
- 0xc8, 0x37, 0x04, 0x00, 0x00, 0x0c, 0x0c, 0x00,
- 0x00, 0x60, 0x21, 0xc0, 0xc0, 0x37, 0x3e, 0x00,
- 0x23, 0xc9, 0xc0, 0x57, 0xb4, 0x05, 0x1b, 0xc8,
- 0xc0, 0x17, 0x3f, 0x00, 0xc0, 0x67, 0xc0, 0xff,
- 0x30, 0x00, 0x08, 0x00, 0xf0, 0x07, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x02, 0xc0, 0x17, 0x4c, 0x00,
- 0x30, 0x00, 0x06, 0x00, 0xf0, 0x07, 0xa0, 0x01,
- 0x0a, 0x00, 0x48, 0x02, 0xc1, 0x07, 0x02, 0x00,
- 0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf, 0x51, 0xaf,
- 0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf, 0x9f, 0xaf,
- 0x08, 0x03, 0x9f, 0xaf, 0x7a, 0x02, 0x97, 0xcf,
- 0x9f, 0xaf, 0x7a, 0x02, 0xc9, 0x37, 0x04, 0x00,
- 0xc1, 0xdf, 0xc8, 0x09, 0xa2, 0x06, 0x50, 0x02,
- 0x67, 0x02, 0xa2, 0x06, 0xd1, 0x07, 0x00, 0x00,
- 0x27, 0xd8, 0xaa, 0x06, 0xc0, 0xdf, 0x9f, 0xaf,
- 0xc4, 0x01, 0x97, 0xcf, 0xe7, 0x57, 0x00, 0x00,
- 0xd2, 0x06, 0x97, 0xc1, 0xe7, 0x57, 0x01, 0x00,
- 0xa8, 0x06, 0x97, 0xc0, 0xc8, 0x09, 0xa0, 0x06,
- 0x08, 0x62, 0x97, 0xc0, 0x00, 0x02, 0xc0, 0x17,
- 0x0e, 0x00, 0x27, 0x00, 0x34, 0x01, 0x27, 0x0c,
- 0x0c, 0x00, 0x36, 0x01, 0xe7, 0x07, 0x50, 0xc3,
- 0x12, 0xc0, 0xe7, 0x07, 0xcc, 0x0b, 0x02, 0x00,
- 0xe7, 0x07, 0x01, 0x00, 0xa8, 0x06, 0xe7, 0x07,
- 0x05, 0x00, 0x90, 0xc0, 0x97, 0xcf, 0xc8, 0x09,
- 0xa4, 0x06, 0x08, 0x62, 0x02, 0xc0, 0x10, 0x64,
- 0x07, 0xc1, 0xe7, 0x07, 0x00, 0x00, 0x9e, 0x06,
- 0xe7, 0x07, 0x72, 0x04, 0x24, 0x00, 0x97, 0xcf,
- 0x27, 0x04, 0xa4, 0x06, 0xc8, 0x17, 0x0e, 0x00,
- 0x27, 0x02, 0x9e, 0x06, 0xe7, 0x07, 0x80, 0x04,
- 0x24, 0x00, 0x97, 0xcf, 0xd7, 0x09, 0x00, 0xc0,
- 0xc1, 0xdf, 0xe7, 0x57, 0x00, 0x00, 0x90, 0x06,
- 0x13, 0xc1, 0x9f, 0xaf, 0x06, 0x02, 0xe7, 0x57,
- 0x00, 0x00, 0x9e, 0x06, 0x13, 0xc0, 0xe7, 0x09,
- 0x9e, 0x06, 0x30, 0x01, 0xe7, 0x07, 0xf2, 0x05,
- 0x32, 0x01, 0xe7, 0x07, 0x10, 0x00, 0x96, 0xc0,
- 0xe7, 0x09, 0x9e, 0x06, 0x90, 0x06, 0x04, 0xcf,
- 0xe7, 0x57, 0x00, 0x00, 0x9e, 0x06, 0x02, 0xc1,
- 0x9f, 0xaf, 0x06, 0x02, 0xe7, 0x05, 0x00, 0xc0,
- 0x97, 0xcf, 0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf,
- 0x08, 0x92, 0xe7, 0x57, 0x02, 0x00, 0xaa, 0x06,
- 0x02, 0xc3, 0xc8, 0x09, 0xa4, 0x06, 0x27, 0x02,
- 0xa6, 0x06, 0x08, 0x62, 0x03, 0xc1, 0xe7, 0x05,
- 0x00, 0xc0, 0x97, 0xcf, 0x27, 0x04, 0xa4, 0x06,
- 0xe7, 0x05, 0x00, 0xc0, 0xf0, 0x07, 0x40, 0x00,
- 0x08, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x04, 0x00,
- 0x00, 0x02, 0xc0, 0x17, 0x0c, 0x00, 0x30, 0x00,
- 0x06, 0x00, 0xf0, 0x07, 0x46, 0x01, 0x0a, 0x00,
- 0xc8, 0x17, 0x04, 0x00, 0xc1, 0x07, 0x02, 0x00,
- 0x51, 0xaf, 0x97, 0xcf, 0xe7, 0x57, 0x00, 0x00,
- 0x96, 0x06, 0x97, 0xc0, 0xc1, 0xdf, 0xc8, 0x09,
- 0x96, 0x06, 0x27, 0x04, 0x96, 0x06, 0x27, 0x52,
- 0x98, 0x06, 0x03, 0xc1, 0xe7, 0x07, 0x96, 0x06,
- 0x98, 0x06, 0xc0, 0xdf, 0x17, 0x02, 0xc8, 0x17,
- 0x0e, 0x00, 0x9f, 0xaf, 0xba, 0x03, 0xc8, 0x05,
- 0x00, 0x60, 0x03, 0xc0, 0x9f, 0xaf, 0x24, 0x03,
- 0x97, 0xcf, 0x9f, 0xaf, 0x08, 0x03, 0x97, 0xcf,
- 0x57, 0x02, 0xc9, 0x07, 0xa4, 0x06, 0xd7, 0x09,
- 0x00, 0xc0, 0xc1, 0xdf, 0x08, 0x62, 0x1b, 0xc0,
- 0x50, 0x04, 0x11, 0x02, 0xe7, 0x05, 0x00, 0xc0,
- 0xc9, 0x05, 0x97, 0xcf, 0x97, 0x02, 0xca, 0x09,
- 0xd6, 0x06, 0xf2, 0x17, 0x01, 0x00, 0x04, 0x00,
- 0xf2, 0x27, 0x00, 0x00, 0x06, 0x00, 0xca, 0x17,
- 0x2c, 0x00, 0xf8, 0x77, 0x01, 0x00, 0x0e, 0x00,
- 0x06, 0xc0, 0xca, 0xd9, 0xf8, 0x57, 0xff, 0x00,
- 0x0e, 0x00, 0x01, 0xc1, 0xca, 0xd9, 0x22, 0x1c,
- 0x0c, 0x00, 0xe2, 0x27, 0x00, 0x00, 0xe2, 0x17,
- 0x01, 0x00, 0xe2, 0x27, 0x00, 0x00, 0xca, 0x05,
- 0x00, 0x0c, 0x0c, 0x00, 0xc0, 0x17, 0x41, 0x00,
- 0xc0, 0x67, 0xc0, 0xff, 0x30, 0x00, 0x08, 0x00,
- 0x00, 0x02, 0xc0, 0x17, 0x0c, 0x00, 0x30, 0x00,
- 0x06, 0x00, 0xf0, 0x07, 0xda, 0x00, 0x0a, 0x00,
- 0xf0, 0x07, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0c,
- 0x08, 0x00, 0x40, 0xd1, 0x01, 0x00, 0xc0, 0x19,
- 0xce, 0x06, 0xc0, 0x59, 0xc2, 0x06, 0x04, 0xc9,
- 0x49, 0xaf, 0x9f, 0xaf, 0xec, 0x00, 0x4a, 0xaf,
- 0x67, 0x10, 0xce, 0x06, 0xc8, 0x17, 0x04, 0x00,
- 0xc1, 0x07, 0x01, 0x00, 0xd7, 0x09, 0x00, 0xc0,
- 0xc1, 0xdf, 0x50, 0xaf, 0xe7, 0x05, 0x00, 0xc0,
- 0x97, 0xcf, 0xc0, 0x07, 0x01, 0x00, 0xc1, 0x09,
- 0xac, 0x06, 0xc1, 0x77, 0x01, 0x00, 0x97, 0xc1,
- 0xd8, 0x77, 0x01, 0x00, 0x12, 0xc0, 0xc9, 0x07,
- 0x6a, 0x06, 0x9f, 0xaf, 0x08, 0x04, 0x04, 0xc1,
- 0xc1, 0x77, 0x08, 0x00, 0x13, 0xc0, 0x97, 0xcf,
- 0xc1, 0x77, 0x02, 0x00, 0x97, 0xc1, 0xc1, 0x77,
- 0x10, 0x00, 0x0c, 0xc0, 0x9f, 0xaf, 0x2c, 0x04,
- 0x97, 0xcf, 0xc1, 0x77, 0x04, 0x00, 0x06, 0xc0,
- 0xc9, 0x07, 0x70, 0x06, 0x9f, 0xaf, 0x08, 0x04,
- 0x97, 0xc0, 0x00, 0xcf, 0x00, 0x90, 0x97, 0xcf,
- 0x50, 0x54, 0x97, 0xc1, 0x70, 0x5c, 0x02, 0x00,
- 0x02, 0x00, 0x97, 0xc1, 0x70, 0x5c, 0x04, 0x00,
- 0x04, 0x00, 0x97, 0xcf, 0x80, 0x01, 0xc0, 0x00,
- 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0c, 0x00,
- 0x06, 0x00, 0x00, 0x00, 0xcb, 0x09, 0xb2, 0x06,
- 0xcc, 0x09, 0xb4, 0x06, 0x0b, 0x53, 0x11, 0xc0,
- 0xc9, 0x02, 0xca, 0x07, 0x1c, 0x04, 0x9f, 0xaf,
- 0x08, 0x04, 0x97, 0xc0, 0x0a, 0xc8, 0x82, 0x08,
- 0x0a, 0xcf, 0x82, 0x08, 0x9f, 0xaf, 0x08, 0x04,
- 0x97, 0xc0, 0x05, 0xc2, 0x89, 0x30, 0x82, 0x60,
- 0x78, 0xc1, 0x00, 0x90, 0x97, 0xcf, 0x89, 0x10,
- 0x09, 0x53, 0x79, 0xc2, 0x89, 0x30, 0x82, 0x08,
- 0x7a, 0xcf, 0xc0, 0xdf, 0x97, 0xcf, 0xc0, 0xdf,
- 0x97, 0xcf, 0xe7, 0x09, 0x96, 0xc0, 0x92, 0x06,
- 0xe7, 0x09, 0x98, 0xc0, 0x94, 0x06, 0x0f, 0xcf,
- 0xe7, 0x09, 0x96, 0xc0, 0x92, 0x06, 0xe7, 0x09,
- 0x98, 0xc0, 0x94, 0x06, 0xe7, 0x09, 0x9e, 0x06,
- 0x30, 0x01, 0xe7, 0x07, 0xf2, 0x05, 0x32, 0x01,
- 0xe7, 0x07, 0x10, 0x00, 0x96, 0xc0, 0xd7, 0x09,
- 0x00, 0xc0, 0x17, 0x02, 0xc8, 0x09, 0x90, 0x06,
- 0xc8, 0x37, 0x0e, 0x00, 0xe7, 0x77, 0x2a, 0x00,
- 0x92, 0x06, 0x30, 0xc0, 0x97, 0x02, 0xca, 0x09,
- 0xd6, 0x06, 0xe7, 0x77, 0x20, 0x00, 0x92, 0x06,
- 0x0e, 0xc0, 0xf2, 0x17, 0x01, 0x00, 0x10, 0x00,
- 0xf2, 0x27, 0x00, 0x00, 0x12, 0x00, 0xe7, 0x77,
- 0x0a, 0x00, 0x92, 0x06, 0xca, 0x05, 0x1e, 0xc0,
- 0x97, 0x02, 0xca, 0x09, 0xd6, 0x06, 0xf2, 0x17,
- 0x01, 0x00, 0x0c, 0x00, 0xf2, 0x27, 0x00, 0x00,
- 0x0e, 0x00, 0xe7, 0x77, 0x02, 0x00, 0x92, 0x06,
- 0x07, 0xc0, 0xf2, 0x17, 0x01, 0x00, 0x44, 0x00,
- 0xf2, 0x27, 0x00, 0x00, 0x46, 0x00, 0x06, 0xcf,
- 0xf2, 0x17, 0x01, 0x00, 0x60, 0x00, 0xf2, 0x27,
- 0x00, 0x00, 0x62, 0x00, 0xca, 0x05, 0x9f, 0xaf,
- 0x08, 0x03, 0x0f, 0xcf, 0x57, 0x02, 0x09, 0x02,
- 0xf1, 0x09, 0x94, 0x06, 0x0c, 0x00, 0xf1, 0xda,
- 0x0c, 0x00, 0xc8, 0x09, 0x98, 0x06, 0x50, 0x02,
- 0x67, 0x02, 0x98, 0x06, 0xd1, 0x07, 0x00, 0x00,
- 0xc9, 0x05, 0xe7, 0x09, 0x9e, 0x06, 0x90, 0x06,
- 0xe7, 0x57, 0x00, 0x00, 0x90, 0x06, 0x02, 0xc0,
- 0x9f, 0xaf, 0x06, 0x02, 0xc8, 0x05, 0xe7, 0x05,
- 0x00, 0xc0, 0xc0, 0xdf, 0x97, 0xcf, 0xd7, 0x09,
- 0x00, 0xc0, 0x17, 0x00, 0x17, 0x02, 0x97, 0x02,
- 0xc0, 0x09, 0x92, 0xc0, 0xe7, 0x07, 0x04, 0x00,
- 0x90, 0xc0, 0xca, 0x09, 0xd6, 0x06, 0xe7, 0x07,
- 0x00, 0x00, 0xa8, 0x06, 0xe7, 0x07, 0x6a, 0x04,
- 0x02, 0x00, 0xc0, 0x77, 0x02, 0x00, 0x08, 0xc0,
- 0xf2, 0x17, 0x01, 0x00, 0x50, 0x00, 0xf2, 0x27,
- 0x00, 0x00, 0x52, 0x00, 0x9f, 0xcf, 0x24, 0x06,
- 0xc0, 0x77, 0x10, 0x00, 0x06, 0xc0, 0xf2, 0x17,
- 0x01, 0x00, 0x58, 0x00, 0xf2, 0x27, 0x00, 0x00,
- 0x5a, 0x00, 0xc0, 0x77, 0x80, 0x00, 0x06, 0xc0,
- 0xf2, 0x17, 0x01, 0x00, 0x70, 0x00, 0xf2, 0x27,
- 0x00, 0x00, 0x72, 0x00, 0xc0, 0x77, 0x08, 0x00,
- 0x1d, 0xc1, 0xf2, 0x17, 0x01, 0x00, 0x08, 0x00,
- 0xf2, 0x27, 0x00, 0x00, 0x0a, 0x00, 0xc0, 0x77,
- 0x00, 0x02, 0x06, 0xc0, 0xf2, 0x17, 0x01, 0x00,
- 0x64, 0x00, 0xf2, 0x27, 0x00, 0x00, 0x66, 0x00,
- 0xc0, 0x77, 0x40, 0x00, 0x06, 0xc0, 0xf2, 0x17,
- 0x01, 0x00, 0x5c, 0x00, 0xf2, 0x27, 0x00, 0x00,
- 0x5e, 0x00, 0xc0, 0x77, 0x01, 0x00, 0x01, 0xc0,
- 0x1b, 0xcf, 0x1a, 0xcf, 0xf2, 0x17, 0x01, 0x00,
- 0x00, 0x00, 0xf2, 0x27, 0x00, 0x00, 0x02, 0x00,
- 0xc8, 0x09, 0x34, 0x01, 0xca, 0x17, 0x14, 0x00,
- 0xd8, 0x77, 0x01, 0x00, 0x05, 0xc0, 0xca, 0xd9,
- 0xd8, 0x57, 0xff, 0x00, 0x01, 0xc0, 0xca, 0xd9,
- 0xe2, 0x19, 0x94, 0xc0, 0xe2, 0x27, 0x00, 0x00,
- 0xe2, 0x17, 0x01, 0x00, 0xe2, 0x27, 0x00, 0x00,
- 0x9f, 0xaf, 0x40, 0x06, 0x9f, 0xaf, 0xc4, 0x01,
- 0xe7, 0x57, 0x00, 0x00, 0xd2, 0x06, 0x9f, 0xa1,
- 0x0e, 0x0a, 0xca, 0x05, 0xc8, 0x05, 0xc0, 0x05,
- 0xe7, 0x05, 0x00, 0xc0, 0xc0, 0xdf, 0x97, 0xcf,
- 0xc8, 0x09, 0xa0, 0x06, 0x08, 0x62, 0x97, 0xc0,
- 0x27, 0x04, 0xa0, 0x06, 0x27, 0x52, 0xa2, 0x06,
- 0x03, 0xc1, 0xe7, 0x07, 0xa0, 0x06, 0xa2, 0x06,
- 0x9f, 0xaf, 0x08, 0x03, 0xe7, 0x57, 0x00, 0x00,
- 0xaa, 0x06, 0x02, 0xc0, 0x27, 0xda, 0xaa, 0x06,
- 0x97, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xff, 0xff, 0xfb, 0x13, 0xe7, 0x57,
- 0x00, 0x80, 0xb2, 0x00, 0x06, 0xc2, 0xe7, 0x07,
- 0xee, 0x0b, 0x12, 0x00, 0xe7, 0x07, 0x34, 0x0c,
- 0xb2, 0x00, 0xe7, 0x07, 0xc6, 0x07, 0xf2, 0x02,
- 0xc8, 0x09, 0xb4, 0x00, 0xf8, 0x07, 0x02, 0x00,
- 0x0d, 0x00, 0xd7, 0x09, 0x0e, 0xc0, 0xe7, 0x07,
- 0x00, 0x00, 0x0e, 0xc0, 0xc8, 0x09, 0xde, 0x00,
- 0xc8, 0x17, 0x09, 0x00, 0xc9, 0x07, 0xda, 0x06,
- 0xc0, 0x07, 0x04, 0x00, 0x68, 0x0a, 0x00, 0xda,
- 0x7d, 0xc1, 0xe7, 0x09, 0xc0, 0x00, 0x7c, 0x06,
- 0xe7, 0x09, 0xbe, 0x00, 0x78, 0x06, 0xe7, 0x09,
- 0x10, 0x00, 0xbc, 0x06, 0xc8, 0x07, 0xd6, 0x07,
- 0x9f, 0xaf, 0xae, 0x07, 0x9f, 0xaf, 0x00, 0x0a,
- 0xc8, 0x09, 0xde, 0x00, 0x00, 0x0e, 0x0f, 0x00,
- 0x41, 0x90, 0x9f, 0xde, 0x06, 0x00, 0x44, 0xaf,
- 0x27, 0x00, 0xb2, 0x06, 0x27, 0x00, 0xb4, 0x06,
- 0x27, 0x00, 0xb6, 0x06, 0xc0, 0x07, 0x74, 0x00,
- 0x44, 0xaf, 0x27, 0x00, 0xd6, 0x06, 0x08, 0x00,
- 0x00, 0x90, 0xc1, 0x07, 0x3a, 0x00, 0x20, 0x00,
- 0x01, 0xda, 0x7d, 0xc1, 0x9f, 0xaf, 0xba, 0x09,
- 0xc0, 0x07, 0x44, 0x00, 0x48, 0xaf, 0x27, 0x00,
- 0x7a, 0x06, 0x9f, 0xaf, 0x96, 0x0a, 0xe7, 0x07,
- 0x01, 0x00, 0xc0, 0x06, 0xe7, 0x05, 0x0e, 0xc0,
- 0x97, 0xcf, 0x49, 0xaf, 0xe7, 0x87, 0x43, 0x00,
- 0x0e, 0xc0, 0xe7, 0x07, 0xff, 0xff, 0xbe, 0x06,
- 0x9f, 0xaf, 0xae, 0x0a, 0xc0, 0x07, 0x01, 0x00,
- 0x60, 0xaf, 0x4a, 0xaf, 0x97, 0xcf, 0x00, 0x08,
- 0x09, 0x08, 0x11, 0x08, 0x00, 0xda, 0x7c, 0xc1,
- 0x97, 0xcf, 0x67, 0x04, 0xcc, 0x02, 0xc0, 0xdf,
- 0x51, 0x94, 0xb1, 0xaf, 0x06, 0x00, 0xc1, 0xdf,
- 0xc9, 0x09, 0xcc, 0x02, 0x49, 0x62, 0x75, 0xc1,
- 0xc0, 0xdf, 0xa7, 0xcf, 0xd6, 0x02, 0x0e, 0x00,
- 0x24, 0x00, 0x80, 0x04, 0x22, 0x00, 0x4e, 0x05,
- 0xd0, 0x00, 0x0e, 0x0a, 0xaa, 0x00, 0x30, 0x08,
- 0xbe, 0x00, 0x4a, 0x0a, 0x10, 0x00, 0x20, 0x00,
- 0x04, 0x00, 0x6e, 0x04, 0x02, 0x00, 0x6a, 0x04,
- 0x06, 0x00, 0x00, 0x00, 0x24, 0xc0, 0x04, 0x04,
- 0x28, 0xc0, 0xfe, 0xfb, 0x1e, 0xc0, 0x00, 0x04,
- 0x22, 0xc0, 0xff, 0xf4, 0xc0, 0x00, 0x90, 0x09,
- 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x56, 0x08,
- 0x60, 0x08, 0xd0, 0x08, 0xda, 0x08, 0x00, 0x09,
- 0x04, 0x09, 0x08, 0x09, 0x32, 0x09, 0x42, 0x09,
- 0x50, 0x09, 0x52, 0x09, 0x5a, 0x09, 0x5a, 0x09,
- 0x27, 0x02, 0xca, 0x06, 0x97, 0xcf, 0xe7, 0x07,
- 0x00, 0x00, 0xca, 0x06, 0x0a, 0x0e, 0x01, 0x00,
- 0xca, 0x57, 0x0e, 0x00, 0x9f, 0xc3, 0x5a, 0x09,
- 0xca, 0x37, 0x00, 0x00, 0x9f, 0xc2, 0x5a, 0x09,
- 0x0a, 0xd2, 0xb2, 0xcf, 0x16, 0x08, 0xc8, 0x09,
- 0xde, 0x00, 0x07, 0x06, 0x9f, 0xcf, 0x6c, 0x09,
- 0x17, 0x02, 0xc8, 0x09, 0xde, 0x00, 0x00, 0x0e,
- 0x0f, 0x00, 0x41, 0x90, 0x9f, 0xde, 0x06, 0x00,
- 0xc8, 0x05, 0x30, 0x50, 0x06, 0x00, 0x9f, 0xc8,
- 0x5a, 0x09, 0x27, 0x0c, 0x02, 0x00, 0xb0, 0x06,
- 0xc0, 0x09, 0xb2, 0x06, 0x27, 0x00, 0xb4, 0x06,
- 0xe7, 0x07, 0x00, 0x00, 0xae, 0x06, 0x27, 0x00,
- 0x80, 0x06, 0x00, 0x1c, 0x06, 0x00, 0x27, 0x00,
- 0xb6, 0x06, 0x41, 0x90, 0x67, 0x50, 0xb0, 0x06,
- 0x0d, 0xc0, 0x67, 0x00, 0x7e, 0x06, 0x27, 0x0c,
- 0x06, 0x00, 0x82, 0x06, 0xe7, 0x07, 0xbc, 0x08,
- 0x84, 0x06, 0xc8, 0x07, 0x7e, 0x06, 0x41, 0x90,
- 0x51, 0xaf, 0x97, 0xcf, 0x9f, 0xaf, 0x48, 0x0c,
- 0xe7, 0x09, 0xb6, 0x06, 0xb4, 0x06, 0xe7, 0x09,
- 0xb0, 0x06, 0xae, 0x06, 0x59, 0xaf, 0x97, 0xcf,
- 0x27, 0x0c, 0x02, 0x00, 0xac, 0x06, 0x59, 0xaf,
- 0x97, 0xcf, 0x09, 0x0c, 0x02, 0x00, 0x09, 0xda,
- 0x49, 0xd2, 0xc9, 0x19, 0xd6, 0x06, 0xc8, 0x07,
- 0x7e, 0x06, 0xe0, 0x07, 0x00, 0x00, 0x60, 0x02,
- 0xe0, 0x07, 0x04, 0x00, 0xd0, 0x07, 0xcc, 0x08,
- 0x48, 0xdb, 0x41, 0x90, 0x50, 0xaf, 0x97, 0xcf,
- 0x59, 0xaf, 0x97, 0xcf, 0x59, 0xaf, 0x97, 0xcf,
- 0xf0, 0x57, 0x06, 0x00, 0x06, 0x00, 0x25, 0xc1,
- 0xe7, 0x07, 0x70, 0x06, 0x80, 0x06, 0x41, 0x90,
- 0x67, 0x00, 0x7e, 0x06, 0x27, 0x0c, 0x06, 0x00,
- 0x82, 0x06, 0xe7, 0x07, 0x8c, 0x09, 0x84, 0x06,
- 0xc8, 0x07, 0x7e, 0x06, 0x41, 0x90, 0x51, 0xaf,
- 0x97, 0xcf, 0x07, 0x0c, 0x06, 0x00, 0xc7, 0x57,
- 0x06, 0x00, 0x0f, 0xc1, 0xc8, 0x07, 0x70, 0x06,
- 0x15, 0xcf, 0x00, 0x0c, 0x02, 0x00, 0x00, 0xda,
- 0x40, 0xd1, 0x27, 0x00, 0xc2, 0x06, 0x1e, 0xcf,
- 0x1d, 0xcf, 0x27, 0x0c, 0x02, 0x00, 0xcc, 0x06,
- 0x19, 0xcf, 0x27, 0x02, 0x20, 0x01, 0xe7, 0x07,
- 0x08, 0x00, 0x22, 0x01, 0xe7, 0x07, 0x13, 0x00,
- 0xb0, 0xc0, 0x97, 0xcf, 0x41, 0x90, 0x67, 0x00,
- 0x7e, 0x06, 0xe7, 0x01, 0x82, 0x06, 0x27, 0x02,
- 0x80, 0x06, 0xe7, 0x07, 0x8c, 0x09, 0x84, 0x06,
- 0xc8, 0x07, 0x7e, 0x06, 0xc1, 0x07, 0x00, 0x80,
- 0x50, 0xaf, 0x97, 0xcf, 0x59, 0xaf, 0x97, 0xcf,
- 0x00, 0x60, 0x05, 0xc0, 0xe7, 0x07, 0x00, 0x00,
- 0xc4, 0x06, 0xa7, 0xcf, 0x7c, 0x06, 0x9f, 0xaf,
- 0x00, 0x0a, 0xe7, 0x07, 0x01, 0x00, 0xc4, 0x06,
- 0x49, 0xaf, 0xd7, 0x09, 0x00, 0xc0, 0x07, 0xaf,
- 0xe7, 0x05, 0x00, 0xc0, 0x4a, 0xaf, 0xa7, 0xcf,
- 0x7c, 0x06, 0xc0, 0x07, 0xfe, 0x7f, 0x44, 0xaf,
- 0x40, 0x00, 0xc0, 0x37, 0x00, 0x01, 0x41, 0x90,
- 0xc0, 0x37, 0x08, 0x00, 0xdf, 0xde, 0x50, 0x06,
- 0xc0, 0x57, 0x10, 0x00, 0x02, 0xc2, 0xc0, 0x07,
- 0x10, 0x00, 0x27, 0x00, 0x9a, 0x06, 0x41, 0x90,
- 0x9f, 0xde, 0x40, 0x06, 0x44, 0xaf, 0x27, 0x00,
- 0x9c, 0x06, 0xc0, 0x09, 0x9a, 0x06, 0x41, 0x90,
- 0x00, 0xd2, 0x00, 0xd8, 0x9f, 0xde, 0x08, 0x00,
- 0x44, 0xaf, 0x27, 0x00, 0xc8, 0x06, 0x97, 0xcf,
- 0xe7, 0x87, 0x00, 0x84, 0x28, 0xc0, 0xe7, 0x67,
- 0xff, 0xfb, 0x24, 0xc0, 0x97, 0xcf, 0xe7, 0x87,
- 0x01, 0x00, 0xd2, 0x06, 0xe7, 0x57, 0x00, 0x00,
- 0xa8, 0x06, 0x97, 0xc1, 0x9f, 0xaf, 0x00, 0x0a,
- 0xe7, 0x87, 0x00, 0x06, 0x22, 0xc0, 0xe7, 0x07,
- 0x00, 0x00, 0x90, 0xc0, 0xe7, 0x67, 0xfe, 0xff,
- 0x3e, 0xc0, 0xe7, 0x07, 0x26, 0x00, 0x0a, 0xc0,
- 0xe7, 0x87, 0x01, 0x00, 0x3e, 0xc0, 0xe7, 0x07,
- 0xff, 0xff, 0xbe, 0x06, 0x9f, 0xaf, 0x10, 0x0b,
- 0x97, 0xcf, 0x17, 0x00, 0xa7, 0xaf, 0x78, 0x06,
- 0xc0, 0x05, 0x27, 0x00, 0x76, 0x06, 0xe7, 0x87,
- 0x01, 0x00, 0xd2, 0x06, 0x9f, 0xaf, 0x00, 0x0a,
- 0xe7, 0x07, 0x0c, 0x00, 0x40, 0xc0, 0x9f, 0xaf,
- 0x10, 0x0b, 0x00, 0x90, 0x27, 0x00, 0xa6, 0x06,
- 0x27, 0x00, 0xaa, 0x06, 0xe7, 0x09, 0xb2, 0x06,
- 0xb4, 0x06, 0x27, 0x00, 0xae, 0x06, 0x27, 0x00,
- 0xac, 0x06, 0x9f, 0xaf, 0xae, 0x0a, 0xc0, 0x07,
- 0x00, 0x00, 0x27, 0x00, 0xb2, 0x02, 0x27, 0x00,
- 0xb4, 0x02, 0x27, 0x00, 0x8e, 0x06, 0xc0, 0x07,
- 0x06, 0x00, 0xc8, 0x09, 0xde, 0x00, 0xc8, 0x17,
- 0x03, 0x00, 0xc9, 0x07, 0x70, 0x06, 0x29, 0x0a,
- 0x00, 0xda, 0x7d, 0xc1, 0x97, 0xcf, 0xd7, 0x09,
- 0x00, 0xc0, 0xc1, 0xdf, 0x00, 0x90, 0x27, 0x00,
- 0x96, 0x06, 0xe7, 0x07, 0x96, 0x06, 0x98, 0x06,
- 0x27, 0x00, 0xa0, 0x06, 0xe7, 0x07, 0xa0, 0x06,
- 0xa2, 0x06, 0x27, 0x00, 0xa6, 0x06, 0x27, 0x00,
- 0x90, 0x06, 0x27, 0x00, 0x9e, 0x06, 0xc8, 0x09,
- 0x9c, 0x06, 0xc1, 0x09, 0x9a, 0x06, 0xc9, 0x07,
- 0xa4, 0x06, 0x11, 0x02, 0x09, 0x02, 0xc8, 0x17,
- 0x40, 0x06, 0x01, 0xda, 0x7a, 0xc1, 0x51, 0x94,
- 0xc8, 0x09, 0xc8, 0x06, 0xc9, 0x07, 0xc6, 0x06,
- 0xc1, 0x09, 0x9a, 0x06, 0x11, 0x02, 0x09, 0x02,
- 0xc8, 0x17, 0x08, 0x00, 0x01, 0xda, 0x7a, 0xc1,
- 0x51, 0x94, 0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf,
- 0xe7, 0x57, 0x00, 0x00, 0x76, 0x06, 0x97, 0xc0,
- 0x9f, 0xaf, 0x04, 0x00, 0xe7, 0x09, 0xbe, 0x06,
- 0xba, 0x06, 0xe7, 0x57, 0xff, 0xff, 0xba, 0x06,
- 0x04, 0xc1, 0xe7, 0x07, 0x10, 0x0b, 0xb8, 0x06,
- 0x97, 0xcf, 0xe7, 0x17, 0x32, 0x00, 0xba, 0x06,
- 0xe7, 0x67, 0xff, 0x07, 0xba, 0x06, 0xe7, 0x07,
- 0x46, 0x0b, 0xb8, 0x06, 0x97, 0xcf, 0xe7, 0x57,
- 0x00, 0x00, 0xc0, 0x06, 0x23, 0xc0, 0xe7, 0x07,
- 0x04, 0x00, 0x90, 0xc0, 0xe7, 0x07, 0x00, 0x80,
- 0x80, 0xc0, 0xe7, 0x07, 0x00, 0x00, 0x80, 0xc0,
- 0xe7, 0x07, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0x07,
- 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0xc0, 0x07,
- 0x00, 0x00, 0xe7, 0x07, 0x00, 0x00, 0x80, 0xc0,
- 0xe7, 0x07, 0x00, 0x80, 0x80, 0xc0, 0xe7, 0x07,
- 0x00, 0x80, 0x40, 0xc0, 0xc0, 0x07, 0x00, 0x00,
- 0xe7, 0x07, 0x00, 0x00, 0x40, 0xc0, 0xe7, 0x07,
- 0x00, 0x00, 0x80, 0xc0, 0xe7, 0x07, 0x04, 0x00,
- 0x90, 0xc0, 0xe7, 0x07, 0x00, 0x02, 0x40, 0xc0,
- 0xe7, 0x07, 0x0c, 0x02, 0x40, 0xc0, 0xe7, 0x07,
- 0x00, 0x00, 0xc0, 0x06, 0xe7, 0x07, 0x00, 0x00,
- 0xb8, 0x06, 0xe7, 0x07, 0x00, 0x00, 0xd2, 0x06,
- 0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf, 0x9f, 0xaf,
- 0x34, 0x02, 0xe7, 0x05, 0x00, 0xc0, 0x9f, 0xaf,
- 0xc4, 0x01, 0x97, 0xcf, 0xd7, 0x09, 0x00, 0xc0,
- 0x17, 0x00, 0x17, 0x02, 0x97, 0x02, 0xe7, 0x57,
- 0x00, 0x00, 0xa8, 0x06, 0x06, 0xc0, 0xc0, 0x09,
- 0x92, 0xc0, 0xc0, 0x77, 0x09, 0x02, 0x9f, 0xc1,
- 0x5c, 0x05, 0x9f, 0xcf, 0x32, 0x06, 0xd7, 0x09,
- 0x0e, 0xc0, 0xe7, 0x07, 0x00, 0x00, 0x0e, 0xc0,
- 0x9f, 0xaf, 0x02, 0x0c, 0xe7, 0x05, 0x0e, 0xc0,
- 0x97, 0xcf, 0xd7, 0x09, 0x00, 0xc0, 0x17, 0x02,
- 0xc8, 0x09, 0xb0, 0xc0, 0xe7, 0x67, 0xfe, 0x7f,
- 0xb0, 0xc0, 0xc8, 0x77, 0x00, 0x20, 0x9f, 0xc1,
- 0x64, 0xeb, 0xe7, 0x57, 0x00, 0x00, 0xc8, 0x02,
- 0x9f, 0xc1, 0x80, 0xeb, 0xc8, 0x99, 0xca, 0x02,
- 0xc8, 0x67, 0x04, 0x00, 0x9f, 0xc1, 0x96, 0xeb,
- 0x9f, 0xcf, 0x4c, 0xeb, 0xe7, 0x07, 0x00, 0x00,
- 0xa6, 0xc0, 0xe7, 0x09, 0xb0, 0xc0, 0xc8, 0x02,
- 0xe7, 0x07, 0x03, 0x00, 0xb0, 0xc0, 0x97, 0xcf,
- 0xc0, 0x09, 0xb0, 0x06, 0xc0, 0x37, 0x01, 0x00,
- 0x97, 0xc9, 0xc9, 0x09, 0xb2, 0x06, 0x02, 0x00,
- 0x41, 0x90, 0x48, 0x02, 0xc9, 0x17, 0x06, 0x00,
- 0x9f, 0xaf, 0x08, 0x04, 0x9f, 0xa2, 0x72, 0x0c,
- 0x02, 0xda, 0x77, 0xc1, 0x41, 0x60, 0x71, 0xc1,
- 0x97, 0xcf, 0x17, 0x02, 0x57, 0x02, 0x43, 0x04,
- 0x21, 0x04, 0xe0, 0x00, 0x43, 0x04, 0x21, 0x04,
- 0xe0, 0x00, 0x43, 0x04, 0x21, 0x04, 0xe0, 0x00,
- 0xc1, 0x07, 0x01, 0x00, 0xc9, 0x05, 0xc8, 0x05,
- 0x97, 0xcf, 0xe7, 0x07, 0x01, 0x00, 0x8e, 0x06,
- 0xc8, 0x07, 0x86, 0x06, 0xe7, 0x07, 0x00, 0x00,
- 0x86, 0x06, 0xe7, 0x07, 0x10, 0x08, 0x88, 0x06,
- 0xe7, 0x07, 0x04, 0x00, 0x8a, 0x06, 0xe7, 0x07,
- 0xbc, 0x0c, 0x8c, 0x06, 0xc1, 0x07, 0x03, 0x80,
- 0x50, 0xaf, 0x97, 0xcf, 0xe7, 0x07, 0x00, 0x00,
- 0x8e, 0x06, 0x97, 0xcf,
- 0x00, 0x00
-};
-
-/****************************************************************
- * kaweth_new_code_fix
- ****************************************************************/
-static __u8 kaweth_new_code_fix[] =
-{
- 0xB6, 0xC3, 0xAA, 0xBB, 0xCC, 0xDD,
- 0x02, 0x00, 0x08, 0x00, 0x28, 0x00, 0x2c, 0x00,
- 0x34, 0x00, 0x3c, 0x00, 0x40, 0x00, 0x48, 0x00,
- 0x54, 0x00, 0x58, 0x00, 0x5e, 0x00, 0x64, 0x00,
- 0x68, 0x00, 0x6e, 0x00, 0x6c, 0x00, 0x72, 0x00,
- 0x76, 0x00, 0x7c, 0x00, 0x80, 0x00, 0x86, 0x00,
- 0x8a, 0x00, 0x90, 0x00, 0x94, 0x00, 0x98, 0x00,
- 0x9e, 0x00, 0xa6, 0x00, 0xaa, 0x00, 0xb0, 0x00,
- 0xb4, 0x00, 0xb8, 0x00, 0xc0, 0x00, 0xc6, 0x00,
- 0xca, 0x00, 0xd0, 0x00, 0xd4, 0x00, 0xd8, 0x00,
- 0xe0, 0x00, 0xde, 0x00, 0xe8, 0x00, 0xf0, 0x00,
- 0xfc, 0x00, 0x04, 0x01, 0x0a, 0x01, 0x18, 0x01,
- 0x22, 0x01, 0x28, 0x01, 0x3a, 0x01, 0x3e, 0x01,
- 0x7e, 0x01, 0x98, 0x01, 0x9c, 0x01, 0xa2, 0x01,
- 0xac, 0x01, 0xb2, 0x01, 0xba, 0x01, 0xc0, 0x01,
- 0xc8, 0x01, 0xd0, 0x01, 0xd6, 0x01, 0xf4, 0x01,
- 0xfc, 0x01, 0x08, 0x02, 0x16, 0x02, 0x1a, 0x02,
- 0x22, 0x02, 0x2a, 0x02, 0x2e, 0x02, 0x3e, 0x02,
- 0x44, 0x02, 0x4a, 0x02, 0x50, 0x02, 0x64, 0x02,
- 0x62, 0x02, 0x6c, 0x02, 0x72, 0x02, 0x86, 0x02,
- 0x8c, 0x02, 0x90, 0x02, 0x9e, 0x02, 0xbc, 0x02,
- 0xd0, 0x02, 0xd8, 0x02, 0xdc, 0x02, 0xe0, 0x02,
- 0xe8, 0x02, 0xe6, 0x02, 0xf4, 0x02, 0xfe, 0x02,
- 0x04, 0x03, 0x0c, 0x03, 0x28, 0x03, 0x7c, 0x03,
- 0x90, 0x03, 0x94, 0x03, 0x9c, 0x03, 0xa2, 0x03,
- 0xc0, 0x03, 0xd0, 0x03, 0xd4, 0x03, 0xee, 0x03,
- 0xfa, 0x03, 0xfe, 0x03, 0x2e, 0x04, 0x32, 0x04,
- 0x3c, 0x04, 0x40, 0x04, 0x4e, 0x04, 0x76, 0x04,
- 0x7c, 0x04, 0x84, 0x04, 0x8a, 0x04, 0x8e, 0x04,
- 0xa6, 0x04, 0xb0, 0x04, 0xb8, 0x04, 0xbe, 0x04,
- 0xd2, 0x04, 0xdc, 0x04, 0xee, 0x04, 0x10, 0x05,
- 0x1a, 0x05, 0x24, 0x05, 0x2a, 0x05, 0x36, 0x05,
- 0x34, 0x05, 0x3c, 0x05, 0x42, 0x05, 0x64, 0x05,
- 0x6a, 0x05, 0x6e, 0x05, 0x86, 0x05, 0x22, 0x06,
- 0x26, 0x06, 0x2c, 0x06, 0x30, 0x06, 0x42, 0x06,
- 0x4a, 0x06, 0x4e, 0x06, 0x56, 0x06, 0x54, 0x06,
- 0x5a, 0x06, 0x60, 0x06, 0x66, 0x06, 0xe8, 0x06,
- 0xee, 0x06, 0xf4, 0x06, 0x16, 0x07, 0x26, 0x07,
- 0x2c, 0x07, 0x32, 0x07, 0x36, 0x07, 0x3a, 0x07,
- 0x3e, 0x07, 0x52, 0x07, 0x56, 0x07, 0x5a, 0x07,
- 0x64, 0x07, 0x76, 0x07, 0x7a, 0x07, 0x80, 0x07,
- 0x84, 0x07, 0x8a, 0x07, 0x9e, 0x07, 0xa2, 0x07,
- 0xda, 0x07, 0xde, 0x07, 0xe2, 0x07, 0xe6, 0x07,
- 0xea, 0x07, 0xee, 0x07, 0xf2, 0x07, 0xf6, 0x07,
- 0x0e, 0x08, 0x16, 0x08, 0x18, 0x08, 0x1a, 0x08,
- 0x1c, 0x08, 0x1e, 0x08, 0x20, 0x08, 0x22, 0x08,
- 0x24, 0x08, 0x26, 0x08, 0x28, 0x08, 0x2a, 0x08,
- 0x2c, 0x08, 0x2e, 0x08, 0x32, 0x08, 0x3a, 0x08,
- 0x46, 0x08, 0x4e, 0x08, 0x54, 0x08, 0x5e, 0x08,
- 0x78, 0x08, 0x7e, 0x08, 0x82, 0x08, 0x86, 0x08,
- 0x8c, 0x08, 0x90, 0x08, 0x98, 0x08, 0x9e, 0x08,
- 0xa4, 0x08, 0xaa, 0x08, 0xb0, 0x08, 0xae, 0x08,
- 0xb4, 0x08, 0xbe, 0x08, 0xc4, 0x08, 0xc2, 0x08,
- 0xca, 0x08, 0xc8, 0x08, 0xd4, 0x08, 0xe4, 0x08,
- 0xe8, 0x08, 0xf6, 0x08, 0x14, 0x09, 0x12, 0x09,
- 0x1a, 0x09, 0x20, 0x09, 0x26, 0x09, 0x24, 0x09,
- 0x2a, 0x09, 0x3e, 0x09, 0x4c, 0x09, 0x56, 0x09,
- 0x70, 0x09, 0x74, 0x09, 0x78, 0x09, 0x7e, 0x09,
- 0x7c, 0x09, 0x82, 0x09, 0x98, 0x09, 0x9c, 0x09,
- 0xa0, 0x09, 0xa6, 0x09, 0xb8, 0x09, 0xdc, 0x09,
- 0xe8, 0x09, 0xec, 0x09, 0xfc, 0x09, 0x12, 0x0a,
- 0x18, 0x0a, 0x1e, 0x0a, 0x42, 0x0a, 0x46, 0x0a,
- 0x4e, 0x0a, 0x54, 0x0a, 0x5a, 0x0a, 0x5e, 0x0a,
- 0x68, 0x0a, 0x6e, 0x0a, 0x72, 0x0a, 0x78, 0x0a,
- 0x76, 0x0a, 0x7c, 0x0a, 0x80, 0x0a, 0x84, 0x0a,
- 0x94, 0x0a, 0xa4, 0x0a, 0xb8, 0x0a, 0xbe, 0x0a,
- 0xbc, 0x0a, 0xc2, 0x0a, 0xc8, 0x0a, 0xc6, 0x0a,
- 0xcc, 0x0a, 0xd0, 0x0a, 0xd4, 0x0a, 0xd8, 0x0a,
- 0xdc, 0x0a, 0xe0, 0x0a, 0xf2, 0x0a, 0xf6, 0x0a,
- 0xfa, 0x0a, 0x14, 0x0b, 0x1a, 0x0b, 0x20, 0x0b,
- 0x1e, 0x0b, 0x26, 0x0b, 0x2e, 0x0b, 0x2c, 0x0b,
- 0x36, 0x0b, 0x3c, 0x0b, 0x42, 0x0b, 0x40, 0x0b,
- 0x4a, 0x0b, 0xaa, 0x0b, 0xb0, 0x0b, 0xb6, 0x0b,
- 0xc0, 0x0b, 0xc8, 0x0b, 0xda, 0x0b, 0xe8, 0x0b,
- 0xec, 0x0b, 0xfa, 0x0b, 0x4a, 0x0c, 0x54, 0x0c,
- 0x62, 0x0c, 0x66, 0x0c, 0x96, 0x0c, 0x9a, 0x0c,
- 0xa0, 0x0c, 0xa6, 0x0c, 0xa4, 0x0c, 0xac, 0x0c,
- 0xb2, 0x0c, 0xb0, 0x0c, 0xc0, 0x0c,
- 0x00, 0x00
-};
-
-
-static const int len_kaweth_trigger_code = sizeof(kaweth_trigger_code);
-static const int len_kaweth_trigger_code_fix = sizeof(kaweth_trigger_code_fix);
-static const int len_kaweth_new_code = sizeof(kaweth_new_code);
-static const int len_kaweth_new_code_fix = sizeof(kaweth_new_code_fix);
diff --git a/firmware/Makefile b/firmware/Makefile
index 7a8fa9e..40939e9 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -26,6 +26,9 @@ fw-shipped-$(CONFIG_SND_MAESTRO3) += ess/maestro3_assp_kernel.fw \
ess/maestro3_assp_minisrc.fw
fw-shipped-$(CONFIG_SND_YMFPCI) += yamaha/ds1_ctrl.fw yamaha/ds1_dsp.fw \
yamaha/ds1e_ctrl.fw
+fw-shipped-$(CONFIG_USB_KAWETH) += kaweth/new_code.bin kaweth/trigger_code.bin \
+ kaweth/new_code_fix.bin \
+ kaweth/trigger_code_fix.bin
fw-shipped-all := $(fw-shipped-y) $(fw-shipped-m) $(fw-shipped-)
diff --git a/firmware/WHENCE b/firmware/WHENCE
index a8fc4b6..1373f529 100644
--- a/firmware/WHENCE
+++ b/firmware/WHENCE
@@ -57,3 +57,16 @@ Original licence info:
* expressed or implied about its fitness for any purpose.
--------------------------------------------------------------------------
+
+Driver: kaweth -- USB KLSI KL5USB101-based Ethernet device
+
+File: kaweth/new_code.bin
+File: kaweth/new_code_fix.bin
+File: kaweth/trigger_code.bin
+File: kaweth/trigger_code_fix.bin
+
+Licence: Unknown
+
+Found in hex form in the kernel source.
+
+--------------------------------------------------------------------------
diff --git a/firmware/kaweth/new_code.bin.ihex b/firmware/kaweth/new_code.bin.ihex
new file mode 100644
index 0000000..292d40f
--- /dev/null
+++ b/firmware/kaweth/new_code.bin.ihex
@@ -0,0 +1,206 @@
+:10000000B6C3AABBCCDD9FCFDE06E7570000C4060F
+:1000100097C1E767FF1F28C0E787000424C0E76790
+:10002000FFF922C097CFD70900C0E709A2C0BE06DA
+:100030009FAF3600E70500C0A7CFBC0697CFE757B4
+:100040000000B806A7A1B80697CFE757000014082C
+:100050000AC0E7570000A4C0A7C07A069FAF920766
+:10006000E70700001408E757FFFFBA069FA0380013
+:10007000E759BA06BE069FA03800C809CA0608623A
+:100080009FA13608C00976060060A7C07A069FAF18
+:10009000CC02E7570000B806A7C17A069FAF04005C
+:1000A000E75700008E060AC1E70920C01008E7D014
+:1000B0001008E767400010089FAF920CC009D006F7
+:1000C000006005C4C059BE0602C09FAFEC009FAFE0
+:1000D0003402E7570000A6069FA07A02A7CF7A064F
+:1000E0004802E709BE06D006C83704009FAF0803E0
+:1000F00097CFE7570000CE0697C0D70900C0C1DFF1
+:10010000C809C606086214C02704C6061094F00782
+:1001100010080200C107010070000400F007300160
+:10012000060050AFE707FFFFD006E7070000CE0646
+:10013000E70500C097CFD70900C0C1DF4802D0094A
+:10014000C6062702C606E70500C097CF4802C83793
+:100150000400000C0C00006021C0C0373E0023C921
+:10016000C057B4051BC8C0173F00C067C0FF3000B0
+:100170000800F007000004000002C0174C00300027
+:100180000600F007A0010A004802C1070200D709D3
+:1001900000C0C1DF51AFE70500C097CF9FAF080394
+:1001A0009FAF7A0297CF9FAF7A02C9370400C1DFB1
+:1001B000C809A20650026702A206D107000027D88C
+:1001C000AA06C0DF9FAFC40197CFE7570000D20651
+:1001D00097C1E7570100A80697C0C809A0060862A2
+:1001E00097C00002C0170E0027003401270C0C0036
+:1001F0003601E70750C312C0E707CC0B0200E70740
+:100200000100A806E707050090C097CFC809A4061B
+:10021000086202C0106407C1E70700009E06E707F6
+:100220007204240097CF2704A406C8170E002702E3
+:100230009E06E7078004240097CFD70900C0C1DFDE
+:10024000E7570000900613C19FAF0602E757000072
+:100250009E0613C0E7099E063001E707F20532014A
+:10026000E707100096C0E7099E06900604CFE757FF
+:1002700000009E0602C19FAF0602E70500C097CFAF
+:10028000D70900C0C1DF0892E7570200AA0602C3DF
+:10029000C809A4062702A606086203C1E70500C034
+:1002A00097CF2704A406E70500C0F0074000080028
+:1002B000F007000004000002C0170C003000060028
+:1002C000F00746010A00C8170400C107020051AF39
+:1002D00097CFE7570000960697C0C1DFC80996067A
+:1002E000270496062752980603C1E7079606980644
+:1002F000C0DF1702C8170E009FAFBA03C805006021
+:1003000003C09FAF240397CF9FAF080397CF570237
+:10031000C907A406D70900C0C1DF08621BC050048A
+:100320001102E70500C0C90597CF9702CA09D60692
+:10033000F21701000400F22700000600CA172C0083
+:10034000F87701000E0006C0CAD9F857FF000E006A
+:1003500001C1CAD9221C0C00E2270000E2170100EB
+:10036000E2270000CA05000C0C00C0174100C0675E
+:10037000C0FF300008000002C0170C00300006006B
+:10038000F007DA000A00F00700000400000C080083
+:1003900040D10100C019CE06C059C20604C949AFF8
+:1003A0009FAFEC004AAF6710CE06C8170400C10724
+:1003B0000100D70900C0C1DF50AFE70500C097CFEB
+:1003C000C0070100C109AC06C177010097C1D87709
+:1003D000010012C0C9076A069FAF080404C1C177B3
+:1003E000080013C097CFC177020097C1C1771000F2
+:1003F0000CC09FAF2C0497CFC177040006C0C9077B
+:1004000070069FAF080497C000CF009097CF50545C
+:1004100097C1705C0200020097C1705C0400040088
+:1004200097CF8001C0006000300018000C0006006B
+:100430000000CB09B206CC09B4060B5311C0C902A7
+:10044000CA071C049FAF080497C00AC882080ACFD5
+:1004500082089FAF080497C005C28930826078C1C6
+:10046000009097CF8910095379C2893082087ACFDA
+:10047000C0DF97CFC0DF97CFE70996C09206E709A4
+:1004800098C094060FCFE70996C09206E70998C076
+:100490009406E7099E063001E707F2053201E707F7
+:1004A000100096C0D70900C01702C8099006C837C7
+:1004B0000E00E7772A00920630C09702CA09D606D6
+:1004C000E777200092060EC0F21701001000F22715
+:1004D00000001200E7770A009206CA051EC09702C4
+:1004E000CA09D606F21701000C00F22700000E0020
+:1004F000E7770200920607C0F21701004400F227D6
+:100500000000460006CFF21701006000F22700004D
+:100510006200CA059FAF08030FCF57020902F10915
+:1005200094060C00F1DA0C00C80998065002670224
+:100530009806D1070000C905E7099E069006E7570F
+:100540000000900602C09FAF0602C805E70500C084
+:10055000C0DF97CFD70900C0170017029702C00964
+:1005600092C0E707040090C0CA09D606E70700005A
+:10057000A806E7076A040200C077020008C0F21765
+:1005800001005000F227000052009FCF2406C077E0
+:10059000100006C0F21701005800F22700005A00B0
+:1005A000C077800006C0F21701007000F22700003B
+:1005B0007200C07708001DC1F21701000800F22781
+:1005C00000000A00C077000206C0F21701006400B4
+:1005D000F22700006600C077400006C0F217010055
+:1005E0005C00F22700005E00C077010001C01BCF55
+:1005F0001ACFF21701000000F22700000200C8091C
+:100600003401CA171400D877010005C0CAD9D857D9
+:10061000FF0001C0CAD9E21994C0E2270000E21726
+:100620000100E22700009FAF40069FAFC401E757DB
+:100630000000D2069FA10E0ACA05C805C005E7053D
+:1006400000C0C0DF97CFC809A006086297C0270482
+:10065000A0062752A20603C1E707A006A2069FAF85
+:100660000803E7570000AA0602C027DAAA0697CFB8
+:10067000FFFFFFFFFFFF0000000000000000000080
+:10068000000000000000000000000000000000006A
+:10069000000000000000000000000000000000005A
+:1006A000000000000000000000000000000000004A
+:1006B000000000000000000000000000000000003A
+:1006C00000000000000000003F00000000000000EB
+:1006D000000000000000FFFF01000000000000001B
+:1006E000FFFFFB13E7570080B20006C2E707EE0BDF
+:1006F0001200E707340CB200E707C607F202C80988
+:10070000B400F80702000D00D7090EC0E70700008B
+:100710000EC0C809DE00C8170900C907DA06C007FD
+:100720000400680A00DA7DC1E709C0007C06E70919
+:10073000BE007806E7091000BC06C807D6079FAFC1
+:10074000AE079FAF000AC809DE00000E0F004190FF
+:100750009FDE060044AF2700B2062700B40627003C
+:10076000B606C007740044AF2700D6060800009004
+:10077000C1073A00200001DA7DC19FAFBA09C00766
+:10078000440048AF27007A069FAF960AE7070100AA
+:10079000C006E7050EC097CF49AFE78743000EC0FC
+:1007A000E707FFFFBE069FAFAE0AC007010060AFBC
+:1007B0004AAF97CF00080908110800DA7CC197CF2B
+:1007C0006704CC02C0DF5194B1AF0600C1DFC90994
+:1007D000CC02496275C1C0DFA7CFD6020E0024004B
+:1007E000800422004E05D0000E0AAA003008BE0088
+:1007F0004A0A1000200004006E0402006A04060089
+:10080000000024C0040428C0FEFB1EC0000422C057
+:10081000FFF4C000900900000000FFFF56086008C8
+:10082000D008DA0800090409080932094209500908
+:1008300052095A095A092702CA0697CFE70700004A
+:10084000CA060A0E0100CA570E009FC35A09CA37CA
+:1008500000009FC25A090AD2B2CF1608C809DE00AA
+:1008600007069FCF6C091702C809DE00000E0F00B3
+:1008700041909FDE0600C805305006009FC85A0907
+:10088000270C0200B006C009B2062700B406E7072D
+:100890000000AE0627008006001C06002700B606F2
+:1008A00041906750B0060DC067007E06270C060019
+:1008B0008206E707BC088406C8077E06419051AF50
+:1008C00097CF9FAF480CE709B606B406E709B00614
+:1008D000AE0659AF97CF270C0200AC0659AF97CFA1
+:1008E000090C020009DA49D2C919D606C8077E06E2
+:1008F000E00700006002E0070400D007CC0848DBF6
+:10090000419050AF97CF59AF97CF59AF97CFF0578E
+:100910000600060025C1E7077006800641906700C3
+:100920007E06270C06008206E7078C098406C807A6
+:100930007E06419051AF97CF070C0600C7570600BF
+:100940000FC1C807700615CF000C020000DA40D1B5
+:100950002700C2061ECF1DCF270C0200CC0619CFE0
+:1009600027022001E70708002201E7071300B0C0B3
+:1009700097CF419067007E06E70182062702800636
+:10098000E7078C098406C8077E06C107008050AFC0
+:1009900097CF59AF97CF006005C0E7070000C406A6
+:1009A000A7CF7C069FAF000AE7070100C40649AF46
+:1009B000D70900C007AFE70500C04AAFA7CF7C0644
+:1009C000C007FE7F44AF4000C03700014190C037F0
+:1009D0000800DFDE5006C057100002C2C00710003A
+:1009E00027009A0641909FDE400644AF27009C06F0
+:1009F000C0099A06419000D200D89FDE080044AF9B
+:100A00002700C80697CFE787008428C0E767FFFB69
+:100A100024C097CFE7870100D206E7570000A80659
+:100A200097C19FAF000AE787000622C0E7070000D2
+:100A300090C0E767FEFF3EC0E70726000AC0E787D1
+:100A400001003EC0E707FFFFBE069FAF100B97CF28
+:100A50001700A7AF7806C00527007606E7870100D4
+:100A6000D2069FAF000AE7070C0040C09FAF100BF3
+:100A700000902700A6062700AA06E709B206B406DA
+:100A80002700AE062700AC069FAFAE0AC0070000E5
+:100A90002700B2022700B40227008E06C007060016
+:100AA000C809DE00C8170300C9077006290A00DA62
+:100AB0007DC197CFD70900C0C1DF009027009606FF
+:100AC000E707960698062700A006E707A006A206F5
+:100AD0002700A6062700900627009E06C8099C0648
+:100AE000C1099A06C907A40611020902C8174006DF
+:100AF00001DA7AC15194C809C806C907C606C109F6
+:100B00009A0611020902C817080001DA7AC1519445
+:100B1000E70500C097CFE7570000760697C09FAF64
+:100B20000400E709BE06BA06E757FFFFBA0604C18C
+:100B3000E707100BB80697CFE7173200BA06E7674A
+:100B4000FF07BA06E707460BB80697CFE75700003E
+:100B5000C00623C0E707040090C0E707008080C0FC
+:100B6000E707000080C0E707008080C0C0070000E2
+:100B7000C0070000C0070000E707000080C0E707CB
+:100B8000008080C0E707008040C0C0070000E70782
+:100B9000000040C0E707000080C0E707040090C0E5
+:100BA000E707000240C0E7070C0240C0E70700006B
+:100BB000C006E7070000B806E7070000D206D7091D
+:100BC00000C0C1DF9FAF3402E70500C09FAFC40182
+:100BD00097CFD70900C0170017029702E757000008
+:100BE000A80606C0C00992C0C07709029FC15C0573
+:100BF0009FCF3206D7090EC0E70700000EC09FAF97
+:100C0000020CE7050EC097CFD70900C01702C8092C
+:100C1000B0C0E767FE7FB0C0C87700209FC164EB1B
+:100C2000E7570000C8029FC180EBC899CA02C86795
+:100C300004009FC196EB9FCF4CEBE7070000A6C0D6
+:100C4000E709B0C0C802E7070300B0C097CFC009EA
+:100C5000B006C037010097C9C909B2060200419029
+:100C60004802C91706009FAF08049FA2720C02DA5F
+:100C700077C1416071C197CF170257024304210425
+:100C8000E00043042104E00043042104E000C10724
+:100C90000100C905C80597CFE70701008E06C80700
+:100CA0008606E70700008606E70710088806E707BC
+:100CB00004008A06E707BC0C8C06C107038050AF0E
+:0C0CC00097CFE70700008E0697CF0000DA
+:00000001FF
diff --git a/firmware/kaweth/new_code_fix.bin.ihex b/firmware/kaweth/new_code_fix.bin.ihex
new file mode 100644
index 0000000..fb35d3d
--- /dev/null
+++ b/firmware/kaweth/new_code_fix.bin.ihex
@@ -0,0 +1,40 @@
+:10000000B6C3AABBCCDD0200080028002C003400D7
+:100010003C0040004800540058005E006400680046
+:100020006E006C00720076007C00800086008A0002
+:100030009000940098009E00A600AA00B000B400B2
+:10004000B800C000C600CA00D000D400D800E0004C
+:10005000DE00E800F000FC0004010A0118012201A2
+:1000600028013A013E017E0198019C01A201AC01E8
+:10007000B201BA01C001C801D001D601F401FC01EE
+:10008000080216021A0222022A022E023E0244022C
+:100090004A025002640262026C02720286028C0200
+:1000A00090029E02BC02D002D802DC02E002E8020A
+:1000B000E602F402FE0204030C0328037C0390030F
+:1000C00094039C03A203C003D003D403EE03FA03FA
+:1000D000FE032E0432043C0440044E0476047C04E7
+:1000E00084048A048E04A604B004B804BE04D204B6
+:1000F000DC04EE0410051A0524052A05360534052E
+:100100003C05420564056A056E058605220626063D
+:100110002C06300642064A064E06560654065A0675
+:1001200060066606E806EE06F406160726072C07A4
+:10013000320736073A073E07520756075A07640741
+:1001400076077A07800784078A079E07A207DA07DF
+:10015000DE07E207E607EA07EE07F207F6070E08F2
+:10016000160818081A081C081E0820082208240867
+:10017000260828082A082C082E0832083A084608BB
+:100180004E0854085E0878087E08820886088C08A5
+:10019000900898089E08A408AA08B008AE08B408F9
+:1001A000BE08C408C208CA08C808D408E408E80899
+:1001B000F608140912091A092009260924092A092E
+:1001C0003E094C0956097009740978097E097C09B1
+:1001D000820998099C09A009A609B809DC09E8095F
+:1001E000EC09FC09120A180A1E0A420A460A4E0ABB
+:1001F000540A5A0A5E0A680A6E0A720A780A760A6D
+:100200007C0A800A840A940AA40AB80ABE0ABC0AB4
+:10021000C20AC80AC60ACC0AD00AD40AD80ADC0A1A
+:10022000E00AF20AF60AFA0A140B1A0B200B1E0B4C
+:10023000260B2E0B2C0B360B3C0B420B400B4A0BA8
+:10024000AA0BB00BB60BC00BC80BDA0BE80BEC0B10
+:10025000FA0B4A0C540C620C660C960C9A0CA00C0F
+:0E026000A60CA40CAC0CB20CB00CC00C000030
+:00000001FF
diff --git a/firmware/kaweth/trigger_code.bin.ihex b/firmware/kaweth/trigger_code.bin.ihex
new file mode 100644
index 0000000..c3e1658
--- /dev/null
+++ b/firmware/kaweth/trigger_code.bin.ihex
@@ -0,0 +1,13 @@
+:10000000B6C3AABBCCDDC807A000F0075E0006009F
+:10001000F0070A000800F00900000200E7073600B8
+:100020000000F00700000400E70750C310C0F0090B
+:100030000EC00000E78701000EC097CFD70900C0AF
+:100040001702C807A000E71750C310C030D804003B
+:10005000305C08000400B0C00600C805E70500C019
+:10006000C0DF97CF49AFC007000060AF4AAF000CB8
+:100070000C0040D2001C0C0040D230000800F007F9
+:1000800000000400F0078600060067CF270C02007E
+:100090000000270C00000EC049AF64AFC00700008D
+:1000A0004BAF4AAF5ACF0000000000000000000034
+:0600B000940005000000B1
+:00000001FF
diff --git a/firmware/kaweth/trigger_code_fix.bin.ihex b/firmware/kaweth/trigger_code_fix.bin.ihex
new file mode 100644
index 0000000..7712f73
--- /dev/null
+++ b/firmware/kaweth/trigger_code_fix.bin.ihex
@@ -0,0 +1,3 @@
+:10000000B6C3AABBCCDD0200060018003E0080008B
+:060010009800AA000000A8
+:00000001FF