From 37e09437c2f20ac269f8d2b7f9c7f7cd325f0585 Mon Sep 17 00:00:00 2001 From: makefu Date: Sat, 20 Aug 2011 23:21:48 +0200 Subject: oncology: initial commit oncology will analyse the current krebs status --- oncology/dpfhack_display/fw/Debug | 1 + oncology/dpfhack_display/fw/README | 115 + oncology/dpfhack_display/fw/chartbl.py | 96 + oncology/dpfhack_display/fw/detect.py | 94 + oncology/dpfhack_display/fw/font4x8.bin | Bin 0 -> 65536 bytes oncology/dpfhack_display/fw/fulldump.py | 29 + oncology/dpfhack_display/fw/hackit.py | 167 + .../fw/hexfiles/cmdhandler_14e5.ihx | 64 + .../fw/hexfiles/cmdhandler_14f4.ihx | 64 + .../fw/hexfiles/cmdhandler_14fb.ihx | 63 + .../fw/hexfiles/cmdhandler_big_14fb.ihx | 64 + oncology/dpfhack_display/fw/hexfiles/fw_blue.ihx | 660 + oncology/dpfhack_display/fw/hexfiles/fw_focal.ihx | 678 + .../fw/hexfiles/fw_focal_landscape.ihx | 679 + oncology/dpfhack_display/fw/hexfiles/fw_pearl.ihx | 686 + .../fw/hexfiles/fw_pearl_landscape.ihx | 686 + oncology/dpfhack_display/fw/hexfiles/fw_pink.ihx | 657 + oncology/dpfhack_display/fw/hexfiles/fw_white.ihx | 657 + oncology/dpfhack_display/fw/hexfiles/jmptbl0.ihx | 3 + oncology/dpfhack_display/fw/hexfiles/jmptbl1.ihx | 3 + oncology/dpfhack_display/fw/hexfiles/jmptbl2.ihx | 3 + oncology/dpfhack_display/fw/hexfiles/jmptbl3.ihx | 3 + .../dpfhack_display/fw/hexfiles/jmptbl_black.ihx | Bin 0 -> 12288 bytes .../dpfhack_display/fw/hexfiles/jmptbl_blue.ihx | 2 + .../dpfhack_display/fw/hexfiles/jmptbl_pearl.ihx | 2 + .../dpfhack_display/fw/hexfiles/jmptbl_pink.ihx | 2 + .../dpfhack_display/fw/hexfiles/jmptbl_white.ihx | 2 + oncology/dpfhack_display/fw/hexfiles/p_start.ihx | 5 + oncology/dpfhack_display/fw/hexfiles/p_start0.ihx | 5 + oncology/dpfhack_display/fw/hexfiles/p_start1.ihx | 5 + oncology/dpfhack_display/fw/hexfiles/p_start2.ihx | 5 + oncology/dpfhack_display/fw/hexfiles/p_start3.ihx | 6 + .../dpfhack_display/fw/hexfiles/p_start_black.ihx | 5 + .../dpfhack_display/fw/hexfiles/p_start_blue.ihx | 6 + .../dpfhack_display/fw/hexfiles/p_start_pearl.ihx | 5 + .../dpfhack_display/fw/hexfiles/p_start_pink.ihx | 5 + .../dpfhack_display/fw/hexfiles/p_start_white.ihx | 5 + oncology/dpfhack_display/fw/hexfiles/p_usbdesc.ihx | 16 + oncology/dpfhack_display/fw/profiles.py | 142 + oncology/dpfhack_display/fw/struct | 16846 ++++++++ oncology/dpfhack_display/fw/sys | 38759 +++++++++++++++++++ oncology/dpfhack_display/fw/update.py | 15 + 42 files changed, 61310 insertions(+) create mode 120000 oncology/dpfhack_display/fw/Debug create mode 100644 oncology/dpfhack_display/fw/README create mode 100755 oncology/dpfhack_display/fw/chartbl.py create mode 100755 oncology/dpfhack_display/fw/detect.py create mode 100644 oncology/dpfhack_display/fw/font4x8.bin create mode 100755 oncology/dpfhack_display/fw/fulldump.py create mode 100755 oncology/dpfhack_display/fw/hackit.py create mode 100644 oncology/dpfhack_display/fw/hexfiles/cmdhandler_14e5.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/cmdhandler_14f4.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/cmdhandler_14fb.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/cmdhandler_big_14fb.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/fw_blue.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/fw_focal.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/fw_focal_landscape.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/fw_pearl.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/fw_pearl_landscape.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/fw_pink.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/fw_white.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/jmptbl0.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/jmptbl1.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/jmptbl2.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/jmptbl3.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/jmptbl_black.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/jmptbl_blue.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/jmptbl_pearl.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/jmptbl_pink.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/jmptbl_white.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/p_start.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/p_start0.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/p_start1.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/p_start2.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/p_start3.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/p_start_black.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/p_start_blue.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/p_start_pearl.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/p_start_pink.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/p_start_white.ihx create mode 100644 oncology/dpfhack_display/fw/hexfiles/p_usbdesc.ihx create mode 100755 oncology/dpfhack_display/fw/profiles.py create mode 100644 oncology/dpfhack_display/fw/struct create mode 100644 oncology/dpfhack_display/fw/sys create mode 100755 oncology/dpfhack_display/fw/update.py (limited to 'oncology/dpfhack_display/fw') diff --git a/oncology/dpfhack_display/fw/Debug b/oncology/dpfhack_display/fw/Debug new file mode 120000 index 00000000..89798698 --- /dev/null +++ b/oncology/dpfhack_display/fw/Debug @@ -0,0 +1 @@ +../Debug \ No newline at end of file diff --git a/oncology/dpfhack_display/fw/README b/oncology/dpfhack_display/fw/README new file mode 100644 index 00000000..46ffa999 --- /dev/null +++ b/oncology/dpfhack_display/fw/README @@ -0,0 +1,115 @@ +This is rudimentary code to inject your own source into the AX206 based DPFs. +Since this chip is very much undocumented and no information about the internal +firmware is available, the following strategy was chosen: + +- Leave original firmware as intact as possible (NEVER touch sector 0) +- Allow to manually put unit into "Developer Mode" +- Allow to return to default state using the RESET button + +Note that the Developer Mode uses two sectors at the end of the internal +flash. Therefore, DO NOT fill up the frame with images to the maximum, +or weird things may happen. + +When the DPF is hacked using the scripts described below, the Developer Mode +is simply entered by connecting the DPF to a PC via the USB cable and holding +the MENU button for approx. 2 seconds. + +See more about the Developer Mode below. + +---------------------------------------------------------------------------- + +The tar file contents are merely: + +- simple (yet unfinished and quirky) library to access the DPF flash and + the extended functionality when in "Developer Mode". +- Python wrapper around the above library +- Python scripts to patch various DPFs (listed in profiles.py) and other + auxiliaries + +Description of a few tools +--------------------------- + +app_detect.s, detect.py: Simple rudimentary detection for Sitronix/NXP + compatible LCD controllers and SPI flash chip. +fulldump.py: Performs a dump of the flash according to detected + flash size (often specified wrong by vendor) + +Developer Mode +--------------- + +When the unit is in Developer Mode, it registers itself as USB device with +the same VID:PID, but not as USB storage. This allows much faster access using +libusb and as non-root. However, the unit will still use USB storage SCSI +commands, see dpflib for the wrapping over libusb. + +Specific commands are implemented using the handler for the SCSI command +0xcd, mode 6. These commands are handled on the DPF by cmdhandler.s +(up to v0.1alpha) and by dpflib/dpflib.c on the target. + +Note that the protocol may change in future, once the internal firmware +is fully replaced by something more structured. Thus, you should implement +extras on the dpflib level only, never access USB directly. + +Prerequisites +-------------- + +You need: + +- A proper Linux system with GCC, python-dev (libraries and headers to + compilee your own modules) +Optionally: +- Possibly some knowledge of the 8051, if you want to mess around +- A working sdcc distribution including asx8051, aslink, etc. + +Usage +------ + +1. run 'make' to build the tools and patches +2. Initiate USB connection from the DPF via the menu +3. Wait a while and check dmesg for the /dev/sgX assignment +4. Run 'python hackit.py /dev/sgX' as root (CAREFUL!!!) to probe for + known DPFs and confirm that you wish to patch the DPF according to the + instructions. + +The hackit.py script checks for a valid DPF, so you can not accidentally +damage your hard disk. Also, it runs a crc32 check on critical modules +for more safety. DO NOT CHANGE the existing checksums. Only *add* new +profiles in profiles.py, don't EVER change existing ones. + +Before messing around, you might want to dump the entire flash using the +fulldump.py script. + +For those desiring to try adding hacks for other frame models, there is +now a short howto in the reverse/ folder. + +---------------------------------------------------------------------------- +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +WARNING: Do not modify the script unless you REALLY know what you are doing. + +DISCLAIMER: There is no guarantee that you will not brick your DPF. +The Author(s) of this code take no responsibilities. You are completely on +your own there! +If you bricked your DPF, check the URL below for information how to restore +the flash image. + +LICENSE: +You are allowed to modify and distribute the code, as long as you keep it +OpenSource. We just trust you that you have a notion of fair usage :-) + +TODO: +1. Windows support, fully featured lcd4linux support via generic DPF library + (I leave this to others. I hate Windows.) +2. Replace flash firmware with improved opensource environment + +---------------------------------------------------------------------------- + +Find updates and documentation here: + +http://picframe.spritesserver.nl/wiki/index.php/DPF_with_AppoTech_AX206 + +or here: + +http://tech.section5.ch/news/?p=68 + +---------------------------------------------------------------------------- diff --git a/oncology/dpfhack_display/fw/chartbl.py b/oncology/dpfhack_display/fw/chartbl.py new file mode 100755 index 00000000..a3015c6a --- /dev/null +++ b/oncology/dpfhack_display/fw/chartbl.py @@ -0,0 +1,96 @@ +import struct +import sys + +rgbformat = "BBB" +CHAR_WIDTH = 4 +CHAR_HEIGHT = 8 + +context = { + 'nrows' : 0, + 'ncols' : 0, + 'width' : 0, + 'height' : 0, +} + + +def rgbto565(r, g, b): + return (( (r & 0xf8) ) | ((g & 0xe0) >> 5), + ( (g & 0x1c) << 3 ) | ((b & 0xf8) >> 3)) + + +def gentbl(): + c = 0 + a = "" + for i in range(32, 127): + a += "%c" % chr(i) + c += 1 + if c == 16: + c = 0 + a = "" + + +def output_chr(context, out, data, offset): + width = context['width'] + for i in range(CHAR_HEIGHT): + off = offset + i * width + for j in range(CHAR_WIDTH): + o = 3 * (off + j) + r, g, b = struct.unpack(rgbformat, data[o:o + 3]) + rgb565 = rgbto565(r, g, b) + out += chr(rgb565[0]) + out += chr(rgb565[1]) + return out + +def convert2table(context, data): + out = "" + width = context['width'] + for i in xrange(context['nrows']): + off = i * CHAR_HEIGHT * width + for j in xrange(context['ncols']): + o = off + j * CHAR_WIDTH + out = output_chr(context, out, data, o) + return out + +def readpnm(context, prefix): + pnm = open(prefix + ".pnm", "r") + + d = pnm.readline() + d = pnm.readline() + l = pnm.readline() + a, b = l.split() + x, y = int(a), int(b) + a = pnm.readline() + + l = x * y + context['width'] = x + context['height'] = y + context['ncols'] = x / CHAR_WIDTH + context['nrows'] = y / CHAR_HEIGHT + + data = pnm.read() + pnm.close() + + return data + +def convert2raw(context, data): + + out = "" + + for i in xrange(l): + off = 3 * i + r, g, b = struct.unpack(rgbformat, data[off:off + 3]) + rgb565 = rgbto565(r, g, b) + out += chr(rgb565[0]) + out += chr(rgb565[1]) + + return out + +# gentbl() +c = {} + +out = readpnm(c, sys.argv[1]) +out = convert2table(c, out) + +f = open(sys.argv[1] + ".bin", "w") +f.write(out) +f.close() diff --git a/oncology/dpfhack_display/fw/detect.py b/oncology/dpfhack_display/fw/detect.py new file mode 100755 index 00000000..e667ae5f --- /dev/null +++ b/oncology/dpfhack_display/fw/detect.py @@ -0,0 +1,94 @@ +# Simple detection module for AX206 based DPF hardware +# (c) 2011 +# +# Run with argument: +# +# - generic scsi device, e.g. /dev/sg1 +# or: +# - "usb0" for hacked device +# +# NOTE: The LCD detection will only work on a hacked device + +import struct +import sys +sys.path.append("./Debug") +import dpf + +g_spansion_types = { + 0x13: ("s25fl008", 16, 0x10000) +} + +g_stm_types = { + 0x14: ("m25p80", 16, 0x10000), + 0x15: ("m25p16", 32, 0x10000), + 0x16: ("m25p32", 64, 0x10000) +} + +g_amic_types = { + 0x13: ("a25l080", 16, 0x10000), +} + +g_vendors = { + 0x00: ("ST legacy", g_stm_types), + 0x01: ("Spansion", g_spansion_types), + 0x20: ("ST/Numonyx", g_stm_types), + 0x1c: ("EON", g_stm_types), + 0x37: ("AMIC", g_amic_types), + 0xc2: ("Macronix", g_stm_types), + 0xc8: ("Apple", g_stm_types), + 0xef: ("Winbond", g_stm_types) +} + +g_lcdmanu = { + 0x45: "Philips/NXP", + 0x5c: "Sitronix", + 0x54: "Ilitek" +} + +g_lcdctrl = { + 0x66: "ILI9163B", + 0xf0: "ST7735R" +} + + +def detect_lcd(d): + d.writeMemory("app_detect.ihx") + d.run(0x18a0) + buf = d.readMemory(0x1900, 4) + + v = struct.unpack("BBBB", buf) + + if v[1] != 0xff: + try: + manu = g_lcdmanu[v[1]] + print "Manufacturer:", manu + print "Module/driver version:", hex(v[2]) + print "Identified module:", g_lcdctrl[v[3]] + except KeyError: + print "Unknown module id", hex(v[1]), hex(v[2]), hex(v[3]) + else: + print "Does not support RDID" + +def detect_flash(d): + manu, dev0, dev1 = d.probeFlash() + try: + print "Manufacturer: %s" % g_vendors[manu][0] + f = g_vendors[manu][1][dev1] + except KeyError: + print "Unknown Manufacturer" + print "Got id[3]: %x, %x, %x" % (manu, dev0, dev1) + try: + f = g_stm_types[1][dev1] + print "Compatible : %s" % f[0] + except KeyError: + print "Unable to detect flash, just assuming 2MB size" + f = ("m25p16", 32, 0x10000) + bytes = f[1] * f[2] + print "Size : %d MB" % (bytes / (1024 * 1024)) + return bytes + +if __name__ == "__main__": + d = dpf.open(sys.argv[1]) + detect_flash(d) + detect_lcd(d) + d.close() diff --git a/oncology/dpfhack_display/fw/font4x8.bin b/oncology/dpfhack_display/fw/font4x8.bin new file mode 100644 index 00000000..cd158c61 Binary files /dev/null and b/oncology/dpfhack_display/fw/font4x8.bin differ diff --git a/oncology/dpfhack_display/fw/fulldump.py b/oncology/dpfhack_display/fw/fulldump.py new file mode 100755 index 00000000..28c0ad2c --- /dev/null +++ b/oncology/dpfhack_display/fw/fulldump.py @@ -0,0 +1,29 @@ +# Script to extract flash +# +# +# +# Argument is either: +# +# /dev/sgX : scsi device (unhacked mode) +# usb0 : developer mode (already hacked) + +import sys +sys.path.append("./Debug") +import dpf + +import detect + +d = dpf.open(sys.argv[1]) + +size = detect.detect_flash(d) + +# Offset, size +print "Reading %x bytes..." % size +buf = d.readFlash(0x00, size) + +f = open("full.bin", "wb") +f.write(buf) +f.close() + +d.close() + diff --git a/oncology/dpfhack_display/fw/hackit.py b/oncology/dpfhack_display/fw/hackit.py new file mode 100755 index 00000000..5c7a5ae9 --- /dev/null +++ b/oncology/dpfhack_display/fw/hackit.py @@ -0,0 +1,167 @@ +#!/usr/bin/python +import struct +import sys +sys.path.append("./Debug") +import dpf +import time +import binascii + +# DPF profiles +import profiles + +# If you are an expert, set this to 0 to avoid the warnings +paranoia_mode = 1 + +JUMPTABLE_OFFSET = 0x80 +HEXDIR = "hexfiles/" + +instructions = [ + """Press and hold MENU while USB is plugged in. +If successful, you will get the 'USB connect' message and the device +will appear as non-USB storage device""" +] + +ins_common = """To put the device back into (almost) original state working +as USB storage, press the RESET button.""" + +############################################################################ + +bswap = lambda x: ( (x >> 8) & 0xff ) | ((x << 8) & 0xff00) + +def dump_flash(d, fname, offset, size): + data = d.readFlash(offset, size) + f = open(fname, "wb") + f.write(data) + f.close() + +def find_dpf(version): + for i in profiles.KNOWN_DPFS: + v = i[0] + if v[0] == str(version[0]) and v[1] == str(version[1]) and v[2] == str(version[2]): + print "Found matching version info" + return i + return None + +def get_module(buf, n): + n *= 8 + start, end, flashaddr = struct.unpack(" ") + if a != "yes": + return True + print "Updating module.." + else: + print "Patching from version %d to %d" % (i, n) + + d.patchSector(start, flashaddr, HEXDIR + record[2]) + + return True + +def recognize(d): + print "Reading flash..." + buf = d.readFlash(0x0, 0x280) + + print "done" + b = buf[:7] + xmem, code, dummy, offset = struct.unpack(">HHBH", b) + version = (buf[0x50:0x58], buf[0x60: 0x70], buf[0x80:0x88]) + + dpf = find_dpf(version) + if not dpf: + print "No DPF found. Create a record or look for one" + print version + else: + print "Identifier:", dpf[1] + di = dpf[3] + di['offset'] = offset + + return dpf + +def patch(d, dpf): + if (paranoia_mode): + print """Now patching. There is no 100% guarantee that your device will + work after doing this. You must never unplug the device from USB while + it is being updated. + Are you sure you take all risks and that you want to continue?""" + a = raw_input("Type 'yes' to continue > ") + if a != "yes": + print "Aborting." + return False + + p = dpf[4] + + buf = d.readFlash(JUMPTABLE_OFFSET, dpf[3]['offset']) + for i in p[2]: + if not patch_module(d, i, buf): + return False + + return True +# +# +# MAIN + +if len(sys.argv) != 2: + print "Usage: %s [ | usb0]" % sys.argv[0] + print "You may have to run this as root when accessing generic scsi devices" + sys.exit(-1) + +d = dpf.open(sys.argv[1]) + +dpf = recognize(d) +if dpf: + r = dpf[4] + ret = patch(d, dpf) + if ret: + print + print "Now disconnect the DPF from USB." + print "To activate the 'developer mode':" + print + print instructions[r[0]] + print + print ins_common + else: + print "DPF might not be completely patched." +d.close() diff --git a/oncology/dpfhack_display/fw/hexfiles/cmdhandler_14e5.ihx b/oncology/dpfhack_display/fw/hexfiles/cmdhandler_14e5.ihx new file mode 100644 index 00000000..3841cc6a --- /dev/null +++ b/oncology/dpfhack_display/fw/hexfiles/cmdhandler_14e5.ihx @@ -0,0 +1,64 @@ +:0913300043C80530CEFDE5C922D9 +:0713390075CA143004012203 +:0E13400043C80530CEFDC2CEE5C930E0EF2235 +:07134E0075CA1130040122F1 +:0E13550043C80530CEFDC2CEE5C920E0EF2230 +:0A13630053C8FB43C80130CEFD2241 +:0D136D0075CA0E75C901716375CA1475C982 +:03137A000080E60A +:0D137D0075CA0E75C901716375CA1175C975 +:03138A000180D609 +:04138D00F5C980D24C +:09139100E6F5C9716308D9F822E0 +:09139A00E493F5C97163D9F8224E +:0E13A3004386108C828D83EA2CC5F0EB3DA8AA +:0213B100F0F951 +:0713B30071397C4075CA216D +:0B13BA007130F0E8B58207E9B583034D +:0313C500716D2225 +:0613C800DCF0716D80E510 +:0B13CE00714E75CA218C828D83EAF9F4 +:0413D900719A717D17 +:0313DD00714E222C +:0C13E0008C828D837CF87D001215427415 +:0913EC00F5C0E07413C0E0E473E5 +:0113F50022D5 +:0C13F600438610E4F550F551F552F55314 +:0B140200714E75CA217455718D745332 +:08140D00718D7442718D74535E +:0C141500718D788479047191789F7904BE +:0614210071917400718D51 +:08142700717D714E7904789F7C +:03142F00913222D5 +:01143200E4D5 +:05143300F608D9FC22BF +:0E14E5007895E6C5F008E6FC08E6FD08E6FA94 +:0C14F30008E6FBC5F0B4010471A38025DD +:0714FF00B4020471E0801E3D +:07150600B4040471CE80174C +:07150D00B41004B1298010A5 +:07151400B41104B15D800970 +:07151B00B41204B16180026B +:02152200B142D4 +:0515240071F602181829 +:0C152900E4F577F578F579F57A757B7FAD +:08153500757C00757D7F757E59 +:05153D000012128022E3 +:05154200B129E4F8F9F5 +:0E154700EC120F25ED120F25D3E438F8E4392D +:08155500F9B800EEB940EB22E9 +:04155D00B129A17D92 +:0E1561008C778D788A798B7A789AE6F57B08FC +:0E156F00E6F57C08E6F57D08E6F57E121280B2 +:0A157D007888E6FB08E6FC08E6FDAE +:0E158700EBF5F033CC33CD33FBEC33CD33CB6F +:0815950033FCE5F003541FFDD7 +:0B159D00EB4C601C71397F2075CA21E7 +:0C15A8007130120F257130120F25DFF496 +:0715B400716D1BBBFF011C60 +:0215BB0080E0CE +:0815BD00ED6013713975CA21BC +:0C15C5007130120F257130120F25DDF47B +:0215D100716D3A +:0115D30022F5 +:00000001FF diff --git a/oncology/dpfhack_display/fw/hexfiles/cmdhandler_14f4.ihx b/oncology/dpfhack_display/fw/hexfiles/cmdhandler_14f4.ihx new file mode 100644 index 00000000..c71b29fa --- /dev/null +++ b/oncology/dpfhack_display/fw/hexfiles/cmdhandler_14f4.ihx @@ -0,0 +1,64 @@ +:0913300043C80530CEFDE5C922D9 +:0713390075CA143004012203 +:0E13400043C80530CEFDC2CEE5C930E0EF2235 +:07134E0075CA1130040122F1 +:0E13550043C80530CEFDC2CEE5C920E0EF2230 +:0A13630053C8FB43C80130CEFD2241 +:0D136D0075CA0E75C901716375CA1475C982 +:03137A000080E60A +:0D137D0075CA0E75C901716375CA1175C975 +:03138A000180D609 +:04138D00F5C980D24C +:09139100E6F5C9716308D9F822E0 +:09139A00E493F5C97163D9F8224E +:0E13A3004386108C828D83EA2CC5F0EB3DA8AA +:0213B100F0F951 +:0713B30071397C4075CA216D +:0B13BA007130F0E8B58207E9B583034D +:0313C500716D2225 +:0613C800DCF0716D80E510 +:0B13CE00714E75CA218C828D83EAF9F4 +:0413D900719A717D17 +:0313DD00714E222C +:0C13E0008C828D837CF87D001215517406 +:0913EC00F5C0E07413C0E0E473E5 +:0113F50022D5 +:0C13F600438610E4F550F551F552F55314 +:0B140200714E75CA217455718D745332 +:08140D00718D7442718D74535E +:0C141500718D788479047191789F7904BE +:0614210071917400718D51 +:08142700717D714E7904789F7C +:03142F00913222D5 +:01143200E4D5 +:05143300F608D9FC22BF +:0E14F4007895E6C5F008E6FC08E6FD08E6FA85 +:0C15020008E6FBC5F0B4010471A38025CD +:07150E00B4020471E0801E2D +:07151500B4040471CE80173D +:07151C00B41004B138801087 +:07152300B41104B16C800952 +:07152A00B41204B17080024D +:02153100B151B6 +:0515330071F60218181A +:0C153800E4F577F578F579F57A757B7F9E +:08154400757C00757D7F757E4A +:05154C000012128022D4 +:05155100B138E4F8F9D7 +:0E155600EC120F25ED120F25D3E438F8E4391E +:08156400F9B800EEB940EB22DA +:04156C00B138A18C65 +:0E1570008C778D788A798B7A789AE6F57B08ED +:0E157E00E6F57C08E6F57D08E6F57E121280A3 +:0A158C007888E6FB08E6FC08E6FD9F +:0E159600EBF5F033CC33CD33FBEC33CD33CB60 +:0815A40033FCE5F003541FFDC8 +:0B15AC00EB4C601C71397F2075CA21D8 +:0C15B7007130120F257130120F25DFF487 +:0715C300716D1BBBFF011C51 +:0215CA0080E0BF +:0815CC00ED6013713975CA21AD +:0C15D4007130120F257130120F25DDF46C +:0215E000716D2B +:0115E20022E6 +:00000001FF diff --git a/oncology/dpfhack_display/fw/hexfiles/cmdhandler_14fb.ihx b/oncology/dpfhack_display/fw/hexfiles/cmdhandler_14fb.ihx new file mode 100644 index 00000000..2e6cf3a4 --- /dev/null +++ b/oncology/dpfhack_display/fw/hexfiles/cmdhandler_14fb.ihx @@ -0,0 +1,63 @@ +:0913300043C80530CEFDE5C922D9 +:0713390075CA143004012203 +:0E13400043C80530CEFDC2CEE5C930E0EF2235 +:07134E0075CA1130040122F1 +:0E13550043C80530CEFDC2CEE5C920E0EF2230 +:0A13630053C8FB43C80130CEFD2241 +:0D136D0075CA0E75C901716375CA1475C982 +:03137A000080E60A +:0D137D0075CA0E75C901716375CA1175C975 +:03138A000180D609 +:04138D00F5C980D24C +:09139100E6F5C9716308D9F822E0 +:09139A00E493F5C97163D9F8224E +:0E13A3004386108C828D83EA2CC5F0EB3DA8AA +:0213B100F0F951 +:0713B30071397C4075CA216D +:0B13BA007130F0E8B58207E9B583034D +:0313C500716D2225 +:0613C800DCF0716D80E510 +:0B13CE00714E75CA218C828D83EAF9F4 +:0413D900719A717D17 +:0313DD00714E222C +:0C13E0008C828D837CF87D0012155874FF +:0913EC00F5C0E07413C0E0E473E5 +:0113F50022D5 +:0C13F600438610E4F550F551F552F55314 +:0B140200714E75CA217455718D745332 +:08140D00718D7442718D74535E +:0C141500718D788479047191789F7904BE +:0614210071917400718D51 +:08142700717D714E7904789F7C +:03142F00913222D5 +:01143200E4D5 +:05143300F608D9FC22BF +:0E14FB007895E6C5F008E6FC08E6FD08E6FA7E +:0C15090008E6FBC5F0B4010471A38025C6 +:07151500B4020471E0801E26 +:07151C00B4040471CE801736 +:07152300B41004B13F801079 +:07152A00B41104B173800944 +:07153100B41204B17780023F +:02153800B158A8 +:05153A0071F602181813 +:0E153F00E4F577F578F579F57A757B7F757CA4 +:0B154D0000757D7F757E001212802269 +:05155800B13FE4F8F9C9 +:0E155D00EC120F25ED120F25D3E438F8E43917 +:08156B00F9B800EEB940EB22D3 +:04157300B13FA19350 +:0E1577008C778D788A798B7A789AE6F57B08E6 +:0E158500E6F57C08E6F57D08E6F57E1212809C +:0A1593007888E6FB08E6FC08E6FD98 +:0E159D00EBF5F033CC33CD33FBEC33CD33CB59 +:0815AB0033FCE5F003541FFDC1 +:0B15B300EB4C601C71397F2075CA21D1 +:0C15BE007130120F257130120F25DFF480 +:0715CA00716D1BBBFF011C4A +:0215D10080E0B8 +:0815D300ED6013713975CA21A6 +:0C15DB007130120F257130120F25DDF465 +:0215E700716D24 +:0115E90022DF +:00000001FF diff --git a/oncology/dpfhack_display/fw/hexfiles/cmdhandler_big_14fb.ihx b/oncology/dpfhack_display/fw/hexfiles/cmdhandler_big_14fb.ihx new file mode 100644 index 00000000..180a880b --- /dev/null +++ b/oncology/dpfhack_display/fw/hexfiles/cmdhandler_big_14fb.ihx @@ -0,0 +1,64 @@ +:0913300043C80530CEFDE5C922D9 +:0713390075CA143004012203 +:0E13400043C80530CEFDC2CEE5C930E0EF2235 +:07134E0075CA1130040122F1 +:0E13550043C80530CEFDC2CEE5C920E0EF2230 +:0A13630053C8FB43C80130CEFD2241 +:0D136D0075CA0E75C901716375CA1475C982 +:03137A000080E60A +:0D137D0075CA0E75C901716375CA1175C975 +:03138A000180D609 +:04138D00F5C980D24C +:09139100E6F5C9716308D9F822E0 +:09139A00E493F5C97163D9F8224E +:0E13A3004386108C828D83EA2CC5F0EB3DA8AA +:0213B100F0F951 +:0713B30071397C4075CA216D +:0B13BA007130F0E8B58207E9B583034D +:0313C500716D2225 +:0613C800DCF0716D80E510 +:0B13CE00714E75CA218C828D83EAF9F4 +:0413D900719A717D17 +:0313DD00714E222C +:0C13E0008C828D837CF87D0012155874FF +:0913EC00F5C0E07413C0E0E473E5 +:0113F50022D5 +:0C13F600438610E4F550F551F552F55314 +:0B140200714E75CA217455718D745332 +:08140D00718D7442718D74535E +:0C141500718D788479047191789F7904BE +:0614210071917400718D51 +:08142700717D714E7904789F7C +:03142F00913222D5 +:01143200E4D5 +:05143300F608D9FC22BF +:0E14FB007895E6C5F008E6FC08E6FD08E6FA7E +:0C15090008E6FBC5F0B4010471A38025C6 +:07151500B4020471E0801E26 +:07151C00B4040471CE801736 +:07152300B41004B13F801079 +:07152A00B41104B173800944 +:07153100B41204B17780023F +:02153800B158A8 +:05153A0071F602181813 +:0C153F00E4F577F578F579F57A757B3FD7 +:08154B00757C01757DEF757ED2 +:051553000012128022CD +:05155800B13FE4F8F9C9 +:0E155D00EC120F25ED120F25D3E438F8E43917 +:08156B00F9B800EEB940EB22D3 +:04157300B13FA19350 +:0E1577008C778D788A798B7A789AE6F57B08E6 +:0E158500E6F57C08E6F57D08E6F57E1212809C +:0A1593007888E6FB08E6FC08E6FD98 +:0E159D00EBF5F033CC33CD33FBEC33CD33CB59 +:0815AB0033FCE5F003541FFDC1 +:0B15B300EB4C601C71397F2075CA21D1 +:0C15BE007130120F257130120F25DFF480 +:0715CA00716D1BBBFF011C4A +:0215D10080E0B8 +:0815D300ED6013713975CA21A6 +:0C15DB007130120F257130120F25DDF465 +:0215E700716D24 +:0115E90022DF +:00000001FF diff --git a/oncology/dpfhack_display/fw/hexfiles/fw_blue.ihx b/oncology/dpfhack_display/fw/hexfiles/fw_blue.ihx new file mode 100644 index 00000000..32538aaa --- /dev/null +++ b/oncology/dpfhack_display/fw/hexfiles/fw_blue.ihx @@ -0,0 +1,660 @@ +:1000800050726F6354626C580803083F7103380064 +:100090000FF01138AD0338000A000E14F5043800D3 +:1000A0000A000C1F090938000A000F59280B3800F4 +:1000B0000A000FDB811038000A000F2F5C16380091 +:1000C000FFFFFFFFFFFFFFFF0A000F318B1B380010 +:1000D000FFFFFFFFFFFFFFFF0EA00FC8BC2038008F +:1000E0000A000D11E42138000A000A88F5243800BE +:1000F000094009EC7D2538000A000AD82926380075 +:080100000A000D9C01273800E4 +:10020000C018C8C0E0E9C0E0EAB5180EC822C8D0DE +:10021000E0B51806C822E5828002F518C0A8C2AF72 +:10022000C40354F82488C0E0E43400F9E43438FA14 +:100230007403C2A0F5D7EA11D9E911D9D0E011D9D8 +:1002400011D9C082C08311D9F58311D9F58211D992 +:10025000FA11D9F911D9C0E011D9C0E011D9C0E023 +:1002600030DFFDD2A0E5D77403C2A0F5D730DFFDA3 +:10027000D0D7D5E0F811D9C08643861030DFFDC550 +:10028000D7F0E9B582F6EAB583F230DFFDD2A0D02F +:1002900086D083D082D0A8C82230DFFDC5D72243C4 +:1002A0008610792878D8E493F2600308D9F8538649 +:1002B000EF7582D8780379167A68021040FFFFFF45 +:1002C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +:1002D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +:1002E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +:1002F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +:10030000751100751200751300C201C202C2037597 +:100310002300752C00C2047539007881760078823C +:10032000760F78177600751400753C04753D0075DE +:100330004100754200E4F560F561F562F563C209BC +:10034000C20F800D2D2D626F6F7473747261702DEA +:100350002D7581C57400C0E07412C0E075186F532C +:1003600086EF75820012105678E479127A620210D4 +:1003700040021851FFFFFFFFFFC2E932FFFFFFFFFE +:10038000FFD207C2EA32FFFFFF32FFFFFFFFFFFF8E +:10039000FFFFFFFFFFFFFFFFFF021036FFFFFFFF22 +:1003A000FF0218C2759B0F539A00D20632C022C0BA +:1003B000E0C0F0C082C083C002C003C004C005C05A +:1003C00006C007C000C001C0D075D00875CA067548 +:1003D000D00012183A75D008D205D0D0D001D00084 +:1003E000D007D006D005D004D003D002D083D0826D +:1003F000D0F0D0E0D0223243C80530CEFD85C9828E +:10040000228582C953C8FB43C80130CEFD22C0E01B +:10041000C0D075D00875ECFFAA4AAB4B0ABA0001F0 +:100420000B8A4A8B4BE5D220E710ABD47A00ACDCC8 +:100430007D00EA4CF55AEB4DF55BD5140643D280AE +:10044000751408743F55B0FA74C05580420AAB1554 +:10045000E5164B4A781756F6E5165B5A781746F6B6 +:100460008B168A15787F860A7817EA667880F67880 +:100470007F7917E7F675EC00C2E8D0D0D0E032C043 +:10048000E0C0D075D008AA4CAB4D0ABA00010B8A67 +:100490004C8B4DE554B54C0DE555B54D08E54C4537 +:1004A0004D6002D208C2FBD0D0D0E032FF742AC225 +:1004B00094120F25D294E4120F25E52E2402120F78 +:1004C00025E4120F25E5302402120F25742BC29467 +:1004D000120F25D294E4120F25E5322403120F25C2 +:1004E000E4120F25E5342403120F25742CC2941254 +:1004F0000F25D29422E583120F25E582120F2522C3 +:10050000AA82EA75F010A42402FAE435F0FB7532F1 +:100510007B75330075347E7535008A2E8B2F7407FA +:100520002AFAE43BFB8A308B311218F0E5102510D3 +:10053000FA9015E793CAA393FB7C207D008C068D6F +:10054000071CBCFF011DEE4F60198A828B83C0021D +:10055000C003C004C005121200D005D004D003D0DF +:100560000280DA02104E7A017B00BB0800503AEAA2 +:1005700055496019EB04F5108B82C002C003780B5B +:1005800079127A62121040D003D0028016751000E2 +:100590008B82C002C003780B79127A62121040D0AD +:1005A00003D002EA2AFA0B80C122AAA875A8817595 +:1005B0009C00759A00759BF74387018AA822AA823E +:1005C000AB837C008A828B83E493FDA3AA82AB83F6 +:1005D000ED60030C80EE8C8222C200754900C2AF30 +:1005E000C2AB758221121056D2AF78CD79147A6FD2 +:1005F000121040788186028A8278B879127A6F1256 +:100600001040900008783879127A6B121040780305 +:1006100079127A6F121040788286028A82781B796A +:10062000127A6F12104053BBF043BB3743A8417599 +:10063000824D121056785479157A6812104078D984 +:1006400079127A68121040787FE6FA30E70E7898CF +:1006500079147A64121040434901D2007A00C3EA47 +:10066000648094C05009EA2490F8E4F20A80EF7A9A +:1006700000C3EA64809484500EEA2AFB244AF87688 +:10068000000876000A80EA7554007555007552140A +:100690007553007556FA755700AA4AAB4B7545E578 +:1006A0007546017543E0754407754720754800435A +:1006B000BB2078808604787FE6F4FD5204EC60303D +:1006C000788076008C2D851382C002C003C0047828 +:1006D0002579167A66121040858213D004D003D093 +:1006E00002EC30E70B5387E74387085349FEC2000B +:1006F00078808605787FE6FE5DFC30E716C002C094 +:1007000003789879147A64121040D003D0024349D8 +:1007100001D200E513B512028004E5126003300433 +:100720003075410075420E9011BEC002C003121018 +:10073000DFD003D002300417752D21851382C0024B +:10074000C003782579167A66121040D003D002C211 +:1007500004E54AC39AFCE54B9BFDC3E5529CE55377 +:100760009D40030215A4E51370030215A4AC5AE5DD +:100770005BA2E7CC33CC33CC5401FDC3EC64809452 +:1007800090507C634902C3EC648094885046751194 +:100790000290F800C004783879127A6B1210407811 +:1007A0006979137A68121040900BB8786C79127AD4 +:1007B0006F121040C20375820278B379137A6F12F8 +:1007C0001040900008783879127A6B121040D004EB +:1007D000D20480267401B51102801F751101754184 +:1007E0000075420C75821FC00478F879167A681279 +:1007F00010409015F91210DFD0047511018026E524 +:100800001160225349FD75110075410075420C7548 +:10081000821FC00478F879167A6812104090160981 +:100820001210DFD004AA4AAB4B300115C002C0033E +:10083000C004788479137A68121040D004D003D0B1 +:1008400002E54E454F702985564E85574FE53D24AC +:1008500090F8ECF2300214758240C002C00378F0C8 +:1008600079137A6B121040D003D002053D533D3FFF +:10087000AC4EAD4F1CBCFF011D8C4E8D4FC002C055 +:1008800003121271D003D0025349B363498030037D +:100890000543491080035349EF30003775CA06C03D +:1008A00002C00312183AE582D003D00230E213C02E +:1008B00002C003784679147A64121040D003D00243 +:1008C0008011C002C00378C079147A64121040D03D +:1008D00003D0028513120213BA02104E0421E0075E +:1008E00000F8E0FF00F8FF0700F8C0FBFF7B2121C4 +:1008F000204C4F5720504F57455220212100506F18 +:1009000077657220676F6F6400AA82C2A075D79F57 +:1009100030DFFD75D70030DFFD7B038A00A6D708E6 +:1009200075D7FF30DFFDDBF5D2A075820002104ED7 +:10093000AA82755EC6755F1374022AF8AA5EAD5F5F +:100940007E0586078A828D83E493FBEFB5033D9095 +:1009500013DF1210DF855E82855F83A3E493FBA320 +:10096000E493FC8B828C831210DF9013E61210DF6D +:10097000855E82855F83A3A3A3E493FBA3E4938BAB +:1009800082785779167A68121040802E74052AFAF8 +:10099000E43DFD8A5E8D5FDEA99013ECC00012106D +:1009A000DFD00086027B008A828B8378F279167A08 +:1009B000681210409013FA1210DF02104EAA82C281 +:1009C000A08AD730DFFDD2A022C2A075D70530DFC4 +:1009D000FD75D7FF30DFFDAAD7D2A0EA20E0EA22DA +:1009E000A882C2A0E2FA08E2F5D70830DFFDDAF704 +:1009F000D2A00212C0AA82AB83ACF0FD7582ABC05C +:100A000002C003C004C0051212B47582061212B4EB +:100A10007582011212B47582061212B4D005D00488 +:100A2000D003D00278D07404F278D174D8F28C0656 +:100A300078D2EEF28B0678D3EEF28A0678D4EEF214 +:100A40007582D0C002C003C004C0051212D7D00501 +:100A5000D004D003D0028A608B618C628D63021057 +:100A60004EAA8278D07405F278D17402F28A00AA74 +:100A7000648A031AEB6053758206C002C00012122A +:100A8000B4D000AB6279D2EBF3AB6179D3EBF3ABCB +:100A90006079D4EBF3E2FB0879D5EBF37582D0C033 +:100AA000001212D7D000D0020560E4B5600C0561D9 +:100AB000B561070562B562020563E5607004E56132 +:100AC000600280ADEA14F58280028A8202104E0034 +:100AD000FC1301001403140100150A14020016117E +:100AE0001404001718140800547970653A20002087 +:100AF0004D423A20003C756E6465746563746564AC +:100B00003A20003E006D3235703830006D3235705D +:100B10003830006D3235703136006D323570333219 +:100B2000006D32357036340075CA11021844AA823D +:100B300075CA11C00212183AAB82D002EA42038B86 +:100B4000820218447A0875CA11C00212183AE58266 +:100B5000D00230E10122AB6FBB0800500C8B027554 +:100B60006F007570017C0A8007EB24F8F56F7C023A +:100B700075CA20AB6DAD6E8B828D83E493FEA3AB03 +:100B800082AD838E82C002C003C004C00512184427 +:100B9000D005D004D003D002DADD8B6D8D6E8C824F +:100BA00002120075CA0E75820112184475CA1175B9 +:100BB000824812184475CA1475828012184475CA86 +:100BC0000E758200021844AA68BA0102800ABA02AD +:100BD00002803EBA034880137A1B7B158A828B837E +:100BE000E493FC8C6F8A6D8B6E8039E56775F0023B +:100BF000A4242DF582741535F0F583E493FAA3E46B +:100C000093FB8A828B83E493FC8C6F8A6D8B6E805E +:100C1000137A797B15756F208A6D8B6E80067582CD +:100C200060021200758240121206E56C700AAA6B0F +:100C3000C3EA956F50028A6F7570032275CA2078D7 +:100C4000657A08C002C00012183AE582D000D002CE +:100C5000F608DAEF74605565FA600A758260121260 +:100C60000075820122E566FA24F450030213F3EAC8 +:100C70002A2A90134E7302137202137B0213F3029B +:100C800013840213F302138D0213A10213F3021350 +:100C9000A90213C00213CE0213E578AC79157A6469 +:100CA000121040786579167A6402104078E279165D +:100CB0007A6402104075CA0074804567F582121884 +:100CC00044758248121200805812129F12121C8022 +:100CD0005075824012120675CA208571821218441E +:100CE00075820A121200803912127B856771758233 +:100CF00048121200802B75824012120675CA208598 +:100D0000728212184475820A121200801412127B29 +:100D1000856772758248121206800675826012120B +:100D2000007582002275CA1112183AE582FA30E283 +:100D30000F5302FB8A82C002121844D002434908B2 +:100D4000EA30E40D4302808A821218444349088045 +:100D500017AB70BB010CEA30E00E434904121314C8 +:100D60008006BB030312121C85708202104E7A01AA +:100D70007B1543C81043C8207C0D8C051CED6024F6 +:100D80008A828B83E493F5CAA3E493FDA3AA82AB82 +:100D9000838D82C002C003C004121844D004D00363 +:100DA000D00280D675700102104EAA82AB838A04ED +:100DB0008B051ABAFF011BEC4D700122000214864C +:100DC000C2AF75C80043871075F3335349DF7846C7 +:100DD00079147A64121040D2AF43C80802104E53FF +:100DE00087E753C8EF02104E75CA0E7582001218BD +:100DF0004478FD79137A64121040AA82BA03028003 +:100E0000F075CA0E75820112184475CA1412183A88 +:100E1000E58230E00D78B579177A651210407A01D5 +:100E200080027A008A8202104E01800B07070109B6 +:100E3000000E0011280E011148149012B015301048 +:100E400008130812011001FFFFFF08081902010032 +:100E5000020203010137154B153B1553156B1504A1 +:100E600003090410036800610063006B00660069F9 +:100E7000006E00080330002E0031001803550053A7 +:100E80000042002D0044006900730070006C006196 +:100E90000079000E036C0069006200750073006247 +:100EA000000902200001010080640904000002FF23 +:100EB0000000040705810240000007050102400010 +:100EC0000075CA1112183AAA8275CA1174404AF5FF +:100ED0008202184412159975CA20741F5565FA606C +:100EE0000DBA01028017BA020280210216517582E2 +:100EF00000121844758200121844021656758200BA +:100F0000121844758200121844021656AA69BA00D3 +:100F100002800ABA01028037BA814D8019300B086D +:100F20007582001218448006758201121844758279 +:100F3000001218448048300C087582001218448052 +:100F400006758201121844758200121844802F30F1 +:100F50000D0875820012184480067582011218442B +:100F6000758200121844801675820012184475822A +:100F7000001218447582018011758201800C75CAB7 +:100F80001175820A12184475820002104EAA65BAC1 +:100F900000028005BA025680097401B5675DC20A75 +:100FA0008059E5677055AA69BA0002800ABA010241 +:100FB0008022BA81468004D20B8040200E3D75CA43 +:100FC0000E75820112184475CA11758210121844E8 +:100FD000D20C8027200E2475CA0E75820112184487 +:100FE00075CA14758220121844D20D800E75CA116C +:100FF000758260121844758201800C75CA0E758264 +:101000000012184475820002104EAA65BA000280D0 +:1010100005BA025080097401B56757C20A8053E5CA +:1010200067704FAA69BA0002800ABA0102801FBA2B +:1010300081408004D20B803A75CA0E758201121865 +:101040004475CA11758210121844D20C802475CAD6 +:101050000E75820112184475CA1475822012184444 +:10106000D20D800E75CA1175826012184475820106 +:10107000800C75CA0E758200121844758200021029 +:101080004E53C8FB43C80130CEFD2275CA14200060 +:10109000012243C80530CEFDC2CEE5C930E0EF22C3 +:1010A00075CA1475C90080D943C80530CEFDE5C99D +:1010B00022A882E6FB08E6FC08E6FDEBF5F033CC5F +:1010C00033CD33FBEC33CD33CB33FCE5F003541F8E +:1010D000FDEB4C601C510A7F2075CA215127120F6D +:1010E000255127120F25DFF4511F1BBBFF011C8068 +:1010F000E0ED6013510A75CA215127120F255127BF +:10110000120F25DDF4511F22A882E486F0088683A1 +:101110000886822275CA1102184475CA140218443E +:101120002000047582FF2275CA1143C80530CEFD28 +:10113000E5C920E0EB7582002275CA1443C805306A +:10114000CEFD2000047582FF22E5C930E0EB7582F8 +:101150000022A882AA738A031AEB60128603088B06 +:1011600082C002C000121844D000D00280E875820C +:10117000002275CA1175821012184475CA1475823E +:1011800020021844AA82C00212129FE582FB339506 +:10119000E0FC75CA2174032574F876538574827552 +:1011A0007304C003C0041212D174042574F582754F +:1011B00073041212D1741F2574F582757304121210 +:1011C000D1D004D003D0028A82C003C004121844D4 +:1011D000758201121293D004D0038B8222AA82C09E +:1011E0000212129FD00275CA2185D782C00212183E +:1011F00044D00275D7FF30DFFDDAEE7582010212AE +:101200009375829C121287AA82AB83ACF0FDC2A0B8 +:10121000789B8606789F86D70830DFFDDEF875D785 +:101220000030DFFDC374409AE49BE49CE49D5028A9 +:10123000758240C002C003C004C00512135CD00513 +:10124000D004D003D002EA24C0FAEB34FFFBEC3424 +:10125000FFFCED34FFFD80CC8A8212135CD2A075B6 +:10126000820022AA82AB83C002C00312129FD00365 +:10127000D00275CA21AC758A828B83E493FDA3AA40 +:1012800082AB838D82C002C003C004121844D00414 +:10129000D003D002DCE1758201C002C003121293B8 +:1012A000D003D0028A828B8322AA8274072AF8860E +:1012B0000308860474092AF88602088605EA4D7038 +:1012C00003F58222C374409AE49D50207575408BCB +:1012D000828C83C002C0051213E2AB82AC83D005BE +:1012E000D002EA24C0FAED34FFFD80D88A758B82E3 +:1012F0008C831213E275820022789B8602BA000268 +:101300008024BA0102802BBA040302152EBA050309 +:10131000021534BA12028030BA20028021BAFF03CB +:10132000021540021544758295787879157A6F0216 +:101330001040758295782379157A6F021040789C59 +:10134000E624FF920F021548789C8602789D86035A +:101350008B04E4FBFDEA4203ED42048B2E8C2F78D4 +:101360009E8602789F86038B04E4FBFDEA4203ED30 +:1013700042048B328C3378A0860278A186038B04DA +:10138000E4FBFDEA4203ED42048B308C3178A28607 +:101390000278A386038B04E4FBFDEA4203ED4204DA +:1013A0008B348C351218F075828E121230801A75BB +:1013B000829502142875829578C279167A6A02108D +:1013C0004075825A227582002275820122C2A07560 +:1013D000D70530DFFD75D7FF30DFFDAAD7D2A0EAF1 +:1013E00020E0EA22AA82C2A08AD730DFFDD2A02262 +:1013F000AA82AB83ACF0FD758206C002C003C004B4 +:10140000C005121563D005D004D003D002C2A07568 +:10141000D70230DFFD8CD730DFFD8BD730DFFD8A80 +:10142000D730DFFD12183A8582D730DFFDD2A00217 +:10143000154CC2A075829C121287858277858378AD +:1014400085F079F57AE57745784579457A701178B0 +:101450009B8606789F86D70830DFFDDEF802168867 +:101460007582A012128785827B85837C85F07DF54D +:101470007EE57B2577F577E57C3578F578E57D3574 +:1014800079F579E57E357AF57A1212B875CA217543 +:101490007640AF7BAE7CAA7DAB7E8F828E838AF056 +:1014A000EBC002C003C006C00712156FD007D006FC +:1014B000D003D0020FBF00090EBE00050ABA00011A +:1014C0000BEFB5770EEEB5780AEAB57906EBB57A8B +:1014D000028003D576C48F7B8E7C8A7D8B7E75825D +:1014E00000C002C003C006C007121299D007D00680 +:1014F000D003D00243BB20C3EF9577EE9578EA95F1 +:1015000079EB957A5003021608D2A012154C758219 +:10151000002212129F75CA217582801218447582AA +:101520000012184475828012184475820012184403 +:101530007582FF121844758201121293758200227F +:101540007A00789AE6FB24F9403BEB2B2B9016D0DF +:10155000730216E50216EC0216EE0216F50216F9F3 +:101560000216FB0216FD121380AA82801C801A123A +:101570001691AA8280137A01800F800D800B1214BD +:1015800078AA8280047582FF228A82227AFF75CA35 +:1015900016C00212183AAB82D002BB1F02800302AF +:1015A000179F75CA2178868B041BEC6015C002C09A +:1015B00003C00012183AE582D000D003D002F6082A +:1015C00080E578868603BB555778878603BB5350E2 +:1015D00078888603BB424978898603BB434275827B +:1015E0000012129978958603BBCB028005BBCD1003 +:1015F00080071215B1AA8280091216BFAA82800242 +:101600007AFFEA20E71A5349DF4349407574868A16 +:1016100082C002121303D002300F027A7F8A822224 +:10162000758200C0021212995349BF434920121219 +:10163000F1D0028A822212170BAA82BA7F1943BB09 +:101640002075CA14C00212183AE582D00230E0EBCD +:1016500012170BAA8280E48A8202104EAA82754178 +:1016600000C3EA6480948C50158A42758220C002BF +:1016700078F879167A68121040D0020A80E322AA1C +:1016800082BA2008B20275820312120030020C7571 +:10169000824078F079137A6B12104075820222AA88 +:1016A00082BA2008B201758203121200200115755A +:1016B0008203121200754101754203780079127A93 +:1016C0006E1210407582022278828602BA010050A2 +:1016D00004788276017882E6FA24F85004788276DB +:1016E0000775E20075E30075E40775E5007882E6AA +:1016F000F4FA74075AF5E675E7007582032278D686 +:1017000079147A6F12104075820022780079127A6B +:101710006C1210407582022275820312120075410C +:10172000047542069011DE1210DF53BBF043BB3646 +:10173000438740000000C2F875820022858225851B +:101740008326E52420E70302138C53247F7582004F +:10175000781179177A68121040E52375F012A425E4 +:1017600025F529E52635F0F52A740C2529FEE43502 +:101770002AFF8E828F83E493FA8A418E828F83A31D +:10178000E493FA8A42852982852A831210DF7582C2 +:1017900001781179177A68121040C2D575F012E5F8 +:1017A0002430E704B2D5F404A430D50AF42401C5EA +:1017B000F0F43400C5F02525F529E52635F0F52AA5 +:1017C000740C2529FAE4352AFB8A828B83E493FE84 +:1017D0008E418A828B83A3E493FA8A42852982858B +:1017E0002A831210DF021417E4F527F528FEFF9074 +:1017F00011EBE493FA3395E0FBC3E5279AE52864FF +:10180000808BF063F08095F05069EE2525F529EF87 +:101810003526F52A740C2529FAE4352AFB8A828BB1 +:1018200083E493FC8C418A828B83A3E493FA8A42FB +:10183000E524FA3395E0FBEAB52708EBB528047AEE +:101840000180027A008A82C006C007781179177A6F +:1018500068121040852982852A831210DFD007D0B4 +:101860000674122EFEE43FFF0527E4B52702052883 +:10187000021393852423758200781179177A680200 +:101880001040AA827B03C2D575F012EA30E704B299 +:10189000D5F404A430D50AF42401C5F0F43400C50D +:1018A000F02440FA741135F0FC740E2AF582E43C01 +:1018B000F583E493FD53050FBD00028014BD0202C1 +:1018C000803CBD030302157FBD04030215AF021562 +:1018D000E674102AF582E43CF583E493FDA3E493D7 +:1018E000FEC005C0067499C0E07414C0E0C005C015 +:1018F00006852B8222AB82D006D0050215F3740236 +:10190000B52B0280207404B52B0280077440B52BE0 +:10191000308024740F2AF582E43CF583E493F8E6E2 +:10192000FD04F6802E740F2AF582E43CF583E493DF +:10193000F8E6FD14F6801C7582031212007582020F +:1019400022758203C002C003C004121200D004D06A +:1019500003D00274102AF582E43CF583E493FDA3DE +:10196000E493FE4D6024C002C003C004C005C0065D +:101970007424C0E07415C0E0C005C006852B822227 +:10198000D006D005D004D003D002E52B60187582B4 +:1019900001C002C003C004781179177A68121040A0 +:1019A000D004D003D002754108754204740F2AF5A3 +:1019B00082E43CF583E493F886057E008D828E8375 +:1019C000C00378F279167A68121040758200781197 +:1019D00079177A68121040D003807474102AF58247 +:1019E000E43CF583E493FDA3E493FEC005C00674D4 +:1019F000A3C0E07415C0E0C005C006852B8222ABF1 +:101A000082D006D005BB02478B822274102AF58251 +:101A1000E43CF583E493FAA3E493FC4A601AC00221 +:101A2000C00474D6C0E07415C0E0C002C004852BA9 +:101A30008222D004D00280067582001212007582C4 +:101A40000022758200121200434920758200228B09 +:101A50008222AA82C002785479157A68121040D086 +:101A6000027B07758220C002C00378F879167A6875 +:101A7000121040D003D002DBEA8A249011400212F7 +:101A8000E0AA827421B52D0A852C82C0021215F6B7 +:101A9000D002BA0002800EBA02028023BA03030207 +:101AA000170F02172AE52D20E60302172A7A0253A0 +:101AB00049DF852C82C0021215F6D00202172A7463 +:101AC00002B52D0280197404B52D0280347440B51E +:101AD0002D4D752B20852C82121426AA828040154C +:101AE0002CE52C30E7099011EBE493FB14F52C74F2 +:101AF00080452CF524901140C0021212E0D00280E3 +:101B00001E052C9011EBE493FBB52C03752C00748F +:101B100080452CF524901140C0021212E0D002BA88 +:101B20000264C2D575F012E52C30E704B2D5F40496 +:101B3000A430D50AF42401C5F0F43400C5F02440E3 +:101B4000FB741135F0FC740E2BF582E43CF583E454 +:101B500093FB30E5317440B52D02802A752B00854A +:101B60002C82C002121426D002801B852D2B852CBE +:101B700082121426AA82BA020D852C24901140C02C +:101B8000021212E0D0028A8202104EAA82AB837C3B +:101B9000008A828B83E493FDA3AA82AB83ED60036A +:101BA0000C80EE8C8222E493FCA3E493FDA3AA8232 +:101BB000AB83BC7E6A8D048A828B83E493FDA3AAE7 +:101BC00082AB83ECFE3395E0FF8A828B83C002C038 +:101BD00003C004C005C006C007121200A882D007C7 +:101BE000D006D005D004D003D0027900EEC398FE11 +:101BF000EF99A2E713CE13CEFFECC39EFC1E8E0717 +:101C00001EEF601B8D82C002C003C004C005C00669 +:101C10001215A9D006D005D004D003D00280DF8AE7 +:101C2000828B83E493FEA3AA82AB83EEFF601D8CBC +:101C3000061CEE60178F82C002C003C004C00512EC +:101C400015A9D005D004D003D00280D38C028A031A +:101C50001AEB600F8D82C002C0051215A9D005D005 +:101C60000280EB22785479157A681210407582113F +:101C70001215A990142A12121B7582051215A9902B +:101C8000142D12163390143012121B90143E12169B +:101C90003390144212121B90143E121633901460AB +:101CA00012121B90147C12163375821A1215A99009 +:101CB000142A12121B7582031215A990147F121692 +:101CC0003390148212163390149C1216337582834B +:101CD000780079127A631210409014AF121633759F +:101CE0008283782779127A631210409014B1121609 +:101CF0003302104E7541017542079014CF12121B2A +:101D00007541017542089014DE12121B02104E75C7 +:101D100041017542079014EE1216337A00BA04009E +:101D2000501F758220C0021215BFD002EA2A244A31 +:101D3000F8868208868318C002121684D0020A80B0 +:101D4000DC7541017542089014F41216337A00BA1A +:101D50000400501F758220C0021215BFD002EA2A6B +:101D60002452F8868208868318C002121684D00294 +:101D70000A80DC75410175420A9014FA1216338507 +:101D80005A82E55BA2E7C58233C58233A2E7C582EA +:101D900033C58233C5825403F5831216847541100E +:101DA00075420A901500121633855C82855D831298 +:101DB000168402104E1D12000A7C001D205553424D +:101DC00020646973706C6179007C0A7C001D20209E +:101DD00076657273696F6E3A626C75652D302E315F +:101DE0003037646576656C233335001D2020202054 +:101DF0006279206861636B66696E407365637469BC +:101E00006F6E352E6368007C0A000A0A004C43445A +:101E10003A207374373778782028636F6D70617457 +:101E200069626C65290A00446574656374696E674C +:101E300020666C6173682E2E2E000A000A0A0A5072 +:101E400072657373204D454E5520666F7220636F27 +:101E50006E666967206D6F6465007E1D2057656141 +:101E60006B20706F77657221007E1D205475726E35 +:101E7000696E67206F66662E006374723A20007286 +:101E800065673A20006164633A2000726574636F8D +:101E900064653A2000C2AFC2A0E4F8E58213C8131B +:101EA000C813C813253EC8353FF9E4354075D7033C +:101EB00030DFFDF5D730DFFD89D730DFFD88D73043 +:101EC000DFFDC5D77F2030DFFDC5D7120F2530DFFE +:101ED000FDC5D7120F25DFEED2A0E5D7D2AF227510 +:101EE000410075420002104EE54175F004A4FAABC2 +:101EF000F08A2E8B2F74032AFAE43BFB8A308B3155 +:101F0000E54275F008A4FAABF08A328B3374072AE5 +:101F1000FAE43BFB8A348B350218F074E02541501B +:101F200009E542FA04F54275410074F02542500378 +:101F300075420022AA82C00212155DD0028A821266 +:101F4000150AE54104F541021590AA82C3EA6480AE +:101F500094A0502EBA0802800FBA09028010BA0A63 +:101F6000028012BA0D218016E54114F54122740851 +:101F70002541F54122E54204F542754100227541B3 +:101F800001228A820215A9221215BF02104EAA82CE +:101F90008A00E2FA08EAFB600B8B82C0001215BFD0 +:101FA000D00080EE02104EAA828A00860208EAFB68 +:101FB000600B8B82C0001215BFD00080EE22AA8277 +:101FC000AB838A828B83E493FCA3AA82AB83ECFD70 +:101FD000600F8D82C002C0031215BFD003D00280F3 +:101FE000E122AA8278DCE4F27B0478DC1875F00A3E +:101FF000EA84E5F02430F275F00AEA84FA6002DB44 +:10200000EB8882780379167A6812104002104EAA83 +:1020100082AB83740424D8F8E4F218740F5A7D005C +:102020002420F582ED3417F583E493F2188A04EB4B +:10203000C4CCC4540F6CCC540FCC6CCC53040F7D67 +:1020400000EC2420F582ED3417F583E493F2188B2D +:1020500004740F5C90172093F218EBC4540FFA53DA +:10206000020F7B00EA2420F582EB3417F583E4931A +:10207000F27582D8780379167A68021040121684B5 +:1020800002104EAA82AB41758220C002C003121515 +:10209000BFD003D002DAF08B4102104EAA82E53C99 +:1020A0002AC42354E0FA8A3F02104E3031323334CE +:1020B00035363738394142434445460075CA1475B0 +:1020C00082000218442000047582FF2275CA14435E +:1020D000C80530CEFDE5C930E0EB7582002285826F +:1020E0001974072519F519A8198602088603051918 +:1020F0000519EB24F8FBA819861A08861B05190593 +:1021000019C2AF851A1CE51BA2E7C51C33C51C33D9 +:10211000A2E7C51C33C51C33C51C5403F51D851C23 +:102120001E851D1FAC1EAD1F151E74FFB51E0215AA +:102130001FEC4D6043C002C0031216A9D003D002A9 +:1021400075CA218A048B057E40C004C005C00612F2 +:10215000183AAF82D006D005D0048C828D83EFF080 +:10216000A3AC82AD83DEE28C028D03C002C00312F9 +:1021700016A0D003D00280AC743F551AFC7D0060DD +:1021800033C002C003C0041216A9D004D003D00289 +:1021900075CA21C002C003C00412183AAD82D0042F +:1021A000D003D0028A828B83EDF0A3AA82AB83DCBA +:1021B000E21216A0A819861C08861DD2AF851C82C3 +:1021C000851D831217BDAA82AB83ACF08A5C8B5D40 +:1021D00090000075F00002104E74C7C0E07417C084 +:1021E000E0E47322AA82AB838A048B051ABAFF014A +:1021F0001BEC4D7001227CE87D0300001CBCFF013C +:102200001DEC4D6003021216021204E582120F2526 +:1022100022E583120F25E582120F2522AA82AB83C5 +:10222000752E00752F0075320075330075307F757F +:10223000310075347F753500C002C0031218F0D02C +:1022400003D0027C807D007E807F008A828B83C0E9 +:1022500002C003C004C005C006C00712122DD0077B +:10226000D006D005D004D003D0021EBEFF011FEE61 +:102270004F70D81CBCFF011DEC4D70CB02104E7A84 +:10228000767B148A828B83E493FCA3AA82AB838C33 +:1022900005BCFF0302135774F05DFC6014BC100210 +:1022A0008013BC70028039BC9002805FBCB0D480C7 +:1022B0000AC2A180CEED13929080C88A828B83E4FB +:1022C00093FCA3AA82AB837E008C828E83C002C063 +:1022D00003786C79127A6F121040D003D00280A379 +:1022E000C294740F5DFC8A378B388C3685378285B3 +:1022F0003883E493FEA38582378583388E82121259 +:1023000027D536E8AA37AB3802129F740F5DFCD28E +:10231000948A058B068D828E83E493FFA3AD82AEF3 +:10232000838F82C004C005C006121227D006D005D4 +:10233000D004DCE18D028E0302129F788186028A2E +:102340008278B879127A6F12104002104EAA82C3B6 +:10235000EA95395006AB398A0480048A03AC39AD5A +:102360003AC3EB9D501C854582854683C002C0035D +:10237000C004C00512122DD005D004D003D0021D18 +:1023800080DFC3EC9D501C854382854483C002C01E +:1023900003C004C00512122DD005D004D003D00212 +:1023A0001D80DF8D3AECB50311ED14F53A854382BB +:1023B000854483C00212122DD0028A39AA3A8A03B8 +:1023C0001AEB600F854582854683C00212122DD01C +:1023D0000280EB2285823BE53DC3953BFB0B853BB1 +:1023E000F0EB84ABF0EB2490F8E2F5397C40AD3BA8 +:1023F0007E0074402DFDE43EFE8C077A00C3EF9D05 +:10240000EA64808EF063F08095F0504B8C027D0082 +:102410008A2E8D2F8547328548338A308D31743F1F +:102420002547FAE43548FD8A348D35C003C00412CF +:1024300018F0D004D003EB2490F8E2FA753A408A01 +:1024400082C003C004121369D004D0030B853BF093 +:10245000EB84ABF00C809702104E0000B00A11B074 +:102460000110B00A11B0197111B01471B193023595 +:102470003671B29302353671B3960235360235366F +:1024800071B4910371B691B471C093A0002471C16D +:1024900091CA71C2920A0071C3928A2A71C4928A47 +:1024A000EE71C59120713691C071E09F0390080ACA +:1024B0003A352C2E2B262C3C00010371E19F04FFA2 +:1024C000080A24221F262829333C00010371F091B9 +:1024D0000171F6910071FF928808713A9105712A95 +:1024E0009400020081712B940003008271297120F5 +:1024F000B00A712CFF200962900000783879127AB6 +:102500006B12104075410F75420775820178117981 +:10251000177A6812104075822078FD79157A681252 +:10252000104075822078FD79157A68121040754147 +:102530000F75420875822078FD79157A681210406F +:1025400075822078FD79157A6812104075820078BE +:102550001179177A68121040800C90FFFF78387953 +:10256000127A6B121040B20975E20075E30075E44F +:102570000075E50175E6C075E70002104E2045784C +:102580006974200000000000000101040000002028 +:102590004F6666200000000000000007010300A253 +:1025A00012205265626F6F7420000000000C01035E +:1025B00000BC122044656275672000000000000026 +:1025C0000020004312204D6F6E200000000000002C +:1025D00000070020002312204261636B6C6967686A +:1025E0007420000C0022826C1220466C6978200056 +:1025F000000000000017000400AF125553422050A5 +:102600005752204550302053544C204C4F472045C2 +:1026100052522041434B20414C56005265626F6F2D +:1026200074696E672E2E2E0007AA419012A2C00276 +:102630001210DFAB817C008B828C83121684D00257 +:102640008A41E54204F5429012ABC0021210DFABA2 +:10265000A87C008B828C83121684D0028A41E542CA +:1026600004F5429012B4C0021210DFABE87C008B7C +:10267000828C83121684D0028A41E54204F542908E +:1026800012BDC0021210DFAB877C008B828C8312DC +:102690001684D0028A41E54204F5429012C6C00277 +:1026A0001210DFAB867C008B828C83121684D002E2 +:1026B0008A41E54204F5429012CF1210DFAABB7B9B +:1026C000008A828B8312168402104E73703A202087 +:1026D0002020200069653A202020202000656966BE +:1026E000303A2020200070636F6E3A202020006472 +:1026F00070636F6E3A202000777464636F6E3A20C7 +:1027000000020000753E00753F007540397582007B +:10271000781179177A6812104002104EAA8275E279 +:102720000075E30075E40775E50074075AD3940754 +:10273000F4F5E675E70075E17302104E75B30075A8 +:10274000B42975B50375B10D22AA82BA0002800AB8 +:10275000BA01028009BA020E800953D2F72275D35A +:1027600017800375D38153A4F743D20B22AA82ABFF +:1027700083ACA875C20075C3008AC48BC5C2EA7554 +:10278000A88475C12A43C10153BBEF43870175C1BA +:102790000043BB378CA802104EAA828A031AEB7042 +:1027A000012243BB207B007C02001BBBFF011CEB12 +:1027B0004C60030212A802129AE58290151F93FA48 +:1027C000F582C002121584D00274065AF53C02103C +:1027D0004EAA82C2A08AD730DFFDD2A022C2A07545 +:1027E000D7AB30DFFD75D7FF30DFFD75D7FF30DFAA +:1027F000FD75D7FF30DFFD90000A786C79127A6F93 +:10280000121040D2A022E582FA60127590FF75A0E6 +:10281000BFC28175E9EC75EA2875EBB42275EC004E +:1028200075B00043F96775E9FE75900875FA007593 +:10283000EA2075EB3475FBB475EDFF225387DF009A +:1028400000005387BF0000007582011213057582D6 +:102850000112124843D28043BB37E5D220E7FBE5A3 +:10286000DC23235403FAE5D425E025E04202AB3D06 +:10287000053DEB2490F8EAF2AA50AB510ABA0001E8 +:102880000B8A508B517420B53D12853D6475829042 +:10289000785879137A63121040753D0053BBEF43AB +:1028A000874000000043872075820012130575825F +:1028B00000021248AA8230033090000075F03EE416 +:1028C000C00278EC79127A63121040753D0078905E +:1028D00074BEF2789174EFF2756402758290785844 +:1028E00079137A63121040D002E4BA010104FB703C +:1028F00022BA02028006BA032553F8FE75A50175B7 +:102900008200C002C003121305758200121248D063 +:1029100003D00253C1FE75E10053B1FED2A353BBF5 +:10292000EF759C02759A00759BF975A8A0438740C6 +:10293000000000438720438780000000E4BA0301C1 +:1029400004FC7031C2AFC206C208D2AF43A8402017 +:102950000623200820300315E54C541F700FC002D9 +:10296000C003C00412133BD004D003D002438780BD +:1029700000000080DA5387DF00000043BB37EB70B4 +:1029800029BA02028006EC603043F8015387BF7514 +:10299000A500758201121305758201121248789BF9 +:1029A00079127A6B12104043D280788286028A8232 +:1029B000781B79127A6F121040900064786C79124B +:1029C0007A6F12104012123B43A86102104E7582BA +:1029D0000112130502104E9001F4786C79127A6F8F +:1029E00012104075820278B379137A6F12104090FA +:1029F00000C8786C79127A6F121040788076009057 +:102A00000008783879127A6B121040785479157A68 +:102A10006812104078D979127A6812104002104E6C +:102A2000D46610A2AA8274072AF88603BB0102802A +:102A300005BB103F802674092AF886037882A60316 +:102A4000EB7006F5E1D2A3802A788286038B827828 +:102A50001B79127A6F121040C2A3801774092AF8EA +:102A600086027881A6028A8278B879127A6F12106B +:102A700040D20475820002104E75820002104EE5AD +:102A800082120F2522AA82C294758236C0021215C4 +:0D2A90007ED002D29474F05AF58202157EB9 +:00000001FF diff --git a/oncology/dpfhack_display/fw/hexfiles/fw_focal.ihx b/oncology/dpfhack_display/fw/hexfiles/fw_focal.ihx new file mode 100644 index 00000000..1166bcd3 --- /dev/null +++ b/oncology/dpfhack_display/fw/hexfiles/fw_focal.ihx @@ -0,0 +1,678 @@ +:1000800050726F6354626C580803083F7103380064 +:100090000FF0119FAD0338000A000E145C05380004 +:1000A0000A000C1F700938000A000F598F0B380026 +:1000B0000A000FDBE81038000A000F2FC3163800C3 +:1000C000FFFFFFFFFFFFFFFF0A000F33F21B3800A7 +:1000D000FFFFFFFFFFFFFFFF0EA00FC82521380025 +:1000E0000A000D334D2238000A000A8880253800A6 +:1000F000094009EC082638000A000AD8B42638005E +:080100000A000E258C273800CF +:10020000C018C8C0E0E9C0E0EAB5180EC822C8D0DE +:10021000E0B51806C822E5828002F518C0A8C2AF72 +:10022000C40354F82488C0E0E43400F9E43438FA14 +:100230007403C2A0F5D7EA11D9E911D9D0E011D9D8 +:1002400011D9C082C08311D9F58311D9F58211D992 +:10025000FA11D9F911D9C0E011D9C0E011D9C0E023 +:1002600030DFFDD2A0E5D77403C2A0F5D730DFFDA3 +:10027000D0D7D5E0F811D9C08643861030DFFDC550 +:10028000D7F0E9B582F6EAB583F230DFFDD2A0D02F +:1002900086D083D082D0A8C82230DFFDC5D72243C4 +:1002A0008610792878D8E493F2600308D9F8538649 +:1002B000EF7582D8780579167A68021040FFFFFF43 +:1002C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +:1002D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +:1002E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +:1002F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +:10030000751100751200751300C201C202C2037597 +:100310002300752C00C2047539007881760278823A +:10032000760F78177600751400753C00753D0075E2 +:100330004100754200E4F560F561F562F563C209BC +:10034000C20F800D2D2D626F6F7473747261702DEA +:100350002D7581C57400C0E07412C0E075186F532C +:1003600086EF75820012105678E479127A620210D4 +:1003700040021851FFFFFFFFFFC2E932FFFFFFFFFE +:10038000FFD207C2EA32FFFFFF32FFFFFFFFFFFF8E +:10039000FFFFFFFFFFFFFFFFFF021036FFFFFFFF22 +:1003A000FF0218C2759B0F539A00D20632C022C0BA +:1003B000E0C0F0C082C083C002C003C004C005C05A +:1003C00006C007C000C001C0D075D00875CA067548 +:1003D000D00012183A75D008D205D0D0D001D00084 +:1003E000D007D006D005D004D003D002D083D0826D +:1003F000D0F0D0E0D0223243C80530CEFD85C9828E +:10040000228582C953C8FB43C80130CEFD22C0E01B +:10041000C0D075D00875ECFFAA4AAB4B0ABA0001F0 +:100420000B8A4A8B4BE5D220E710ABD47A00ACDCC8 +:100430007D00EA4CF55AEB4DF55BD5140643D280AE +:10044000751408743F55B0FA74C05580420AAB1554 +:10045000E5164B4A781756F6E5165B5A781746F6B6 +:100460008B168A15787F860A7817EA667880F67880 +:100470007F7917E7F675EC00C2E8D0D0D0E032C043 +:10048000E0C0D075D008AA4CAB4D0ABA00010B8A67 +:100490004C8B4DE554B54C0DE555B54D08E54C4537 +:1004A0004D6002D208C2FBD0D0D0E032FFE583120B +:1004B0000F25E582120F2522AA82AB83C2948A827D +:1004C0008B830218F0AA82AB83D2948A828B830238 +:1004D00018F0C2A19000501218FB852E82852F8340 +:1004E0001219089000511218FB8530828531831251 +:1004F00019089000201218FB74EFC3952EF582E4C2 +:10050000952FF58312190874EFC3952EF582E495A3 +:100510002FF5831219089000531218FB8534828539 +:100520003583121908AA32AB33900052C002C003BF +:100530001218FBD003D0028A828B83C002C0031240 +:1005400019089000211218FBD003D0028A828B83F5 +:100550001219089000221218FBD29422E583120F80 +:1005600025E582120F2522AA82EA75F010A4240242 +:10057000FAE435F0FB75323B75330175343E753561 +:10058000018A2E8B2F74072AFAE43BFB8A308B31C9 +:10059000121915E5102510FA9015E793CAA393FBDD +:1005A0007C207D008C068D071CBCFF011DEE4F607A +:1005B000198A828B83C002C003C004C005121200D6 +:1005C000D005D004D003D00280DA02104E7A017B2D +:1005D00000BB0800503AEA55496019EB04F5108B4E +:1005E00082C002C003780B79127A62121040D003E5 +:1005F000D00280167510008B82C002C003780B7980 +:10060000127A62121040D003D002EA2AFA0B80C19B +:1006100022AAA875A881759C00759A00759BF7435E +:1006200087018AA822AA82AB837C008A828B83E41A +:1006300093FDA3AA82AB83ED60030C80EE8C822233 +:10064000C200754900C2AFC2AB758221121056D2EA +:10065000AF78CE79147A6F121040788186028A8240 +:1006600078B879127A6F12104090000878387912B1 +:100670007A6B121040780379127A6F1210407882E8 +:1006800086028A82781B79127A6F12104053BBF06F +:1006900043BB3743A84175824D12105678567915E1 +:1006A0007A6812104078D979127A68121040787FEF +:1006B000E6FA30E70E789879147A641210404349CC +:1006C00001D2007A00C3EA648094C05009EA249001 +:1006D000F8E4F20A80EF7A00C3EA64809484500E52 +:1006E000EA2AFB244AF876000876000A80EA755464 +:1006F000007555007552147553007556FA755700FC +:10070000AA4AAB4B7545E57546017543E07544074C +:1007100075472075480043BB2078808604787FE6C3 +:10072000F4FD5204EC6030788076008C2D851382C5 +:10073000C002C003C004782579167A66121040857D +:100740008213D004D003D002EC30E70B5387E74389 +:1007500087085349FEC20078808605787FE6FE5DF3 +:10076000FC30E716C002C003789879147A6412103E +:1007700040D003D002434901D200E513B5120280F4 +:1007800004E5126003300430754100754226901173 +:10079000BEC002C0031210DFD003D00230041775B0 +:1007A0002D21851382C002C003782579167A66123E +:1007B0001040D003D002C204E54AC39AFCE54B9B2B +:1007C000FDC3E5529CE5539D40030215A4E513705B +:1007D000030215A4AC5AE55BA2E7CC33CC33CC546E +:1007E00001FDC3EC64809490507C634902C3EC64C7 +:1007F000809488504675110290F800C004783879CA +:10080000127A6B121040786979137A68121040904E +:100810000BB8786C79127A6F121040C2037582029D +:1008200078B479137A6F12104090000878387912F2 +:100830007A6B121040D004D20480267401B51102E4 +:10084000801F75110175410075422475823BC004FB +:1008500078FA79167A681210409015F91210DFD0E4 +:10086000047511018026E51160225349FD751100C0 +:1008700075410075422475823BC00478FA79167A76 +:10088000681210409016091210DFD004AA4AAB4B30 +:10089000300115C002C003C004788479137A68124D +:1008A0001040D004D003D002E54E454F7029855644 +:1008B0004E85574FE53D2490F8ECF23002147582D6 +:1008C00040C002C00378F079137A6B121040D00355 +:1008D000D002053D533D3FAC4EAD4F1CBCFF011D4A +:1008E0008C4E8D4FC002C003121271D003D0025340 +:1008F00049B363498030030543491080035349EFEE +:1009000030003775CA06C002C00312183AE582D01B +:1009100003D00230E213C002C003784679147A642F +:10092000121040D003D0028011C002C00378C079F9 +:10093000147A64121040D003D0028513120213BA45 +:1009400002104E0421E00700F8E0FF00F8FF070066 +:10095000F8C0FBFF7B2121204C4F5720504F5745BB +:100960005220212100506F77657220676F6F6400FD +:10097000AA82C2A075D79F30DFFD75D70030DFFD9A +:100980007B038A00A6D70875D7FF30DFFDDBF5D2E1 +:10099000A075820002104EAA82755EC6755F137440 +:1009A000022AF8AA5EAD5F7E0586078A828D83E4FF +:1009B00093FBEFB5033D9013DF1210DF855E828558 +:1009C0005F83A3E493FBA3E493FC8B828C831210DC +:1009D000DF9013E61210DF855E82855F83A3A3A3F9 +:1009E000E493FBA3E4938B82785979167A6812100A +:1009F00040802E