Skip to content

Instantly share code, notes, and snippets.

@juvenn
Created April 24, 2011 04:19
Show Gist options
  • Save juvenn/939298 to your computer and use it in GitHub Desktop.
Save juvenn/939298 to your computer and use it in GitHub Desktop.
AES3500 driver for libfprint, with sniffed log of the windows driver
diff --git a/configure.ac b/configure.ac
index f5c26f9..b29764d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@ AC_SUBST(lt_major)
AC_SUBST(lt_revision)
AC_SUBST(lt_age)
-all_drivers="upeke2 upekts upektc upeksonly vcom5s uru4000 fdu2000 aes1610 aes2501 aes4000 vfs101"
+all_drivers="upeke2 upekts upektc upeksonly vcom5s uru4000 fdu2000 aes1610 aes2501 aes4000 aes3500 vfs101"
require_imaging='no'
require_aeslib='no'
@@ -37,6 +37,7 @@ enable_fdu2000='no'
enable_aes1610='no'
enable_aes2501='no'
enable_aes4000='no'
+enable_aes3500='no'
enable_vfs101='no'
AC_ARG_WITH([drivers],[AS_HELP_STRING([--with-drivers],
@@ -92,6 +93,12 @@ for driver in `echo ${drivers} | sed -e 's/,/ /g' -e 's/,$//g'`; do
require_imaging="yes"
enable_aes4000="yes"
;;
+ aes3500)
+ AC_DEFINE([ENABLE_AES3500], [], [Build AuthenTec AES3500 driver])
+ require_aeslib="yes"
+ require_imaging="yes"
+ enable_aes3500="yes"
+ ;;
vfs101)
AC_DEFINE([ENABLE_VFS101], [], [Build Validity VFS101 driver])
enable_vfs101="yes"
@@ -109,6 +116,7 @@ AM_CONDITIONAL([ENABLE_FDU2000], [test "$enable_fdu2000" = "yes"])
AM_CONDITIONAL([ENABLE_AES1610], [test "$enable_aes1610" = "yes"])
AM_CONDITIONAL([ENABLE_AES2501], [test "$enable_aes2501" = "yes"])
AM_CONDITIONAL([ENABLE_AES4000], [test "$enable_aes4000" = "yes"])
+AM_CONDITIONAL([ENABLE_AES3500], [test "$enable_aes3500" = "yes"])
AM_CONDITIONAL([REQUIRE_AESLIB], [test "$require_aeslib" = "yes"])
AM_CONDITIONAL([ENABLE_VFS101], [test "$enable_vfs101" = "yes"])
@@ -272,6 +280,11 @@ if test x$enable_aes4000 != xno ; then
else
AC_MSG_NOTICE([ aes4000 driver disabled])
fi
+if test x$enable_aes3500 != xno ; then
+ AC_MSG_NOTICE([** aes3500 driver enabled])
+else
+ AC_MSG_NOTICE([ aes3500 driver disabled])
+fi
if test x$enable_vfs101 != xno ; then
AC_MSG_NOTICE([** vfs101 driver enabled])
else
diff --git a/libfprint/Makefile.am b/libfprint/Makefile.am
index 95601bc..0ad1ea6 100644
--- a/libfprint/Makefile.am
+++ b/libfprint/Makefile.am
@@ -10,6 +10,7 @@ URU4000_SRC = drivers/uru4000.c
AES1610_SRC = drivers/aes1610.c
AES2501_SRC = drivers/aes2501.c drivers/aes2501.h
AES4000_SRC = drivers/aes4000.c
+AES3500_SRC = drivers/aes3500.c
FDU2000_SRC = drivers/fdu2000.c
VCOM5S_SRC = drivers/vcom5s.c
VFS101_SRC = drivers/vfs101.c
@@ -23,6 +24,7 @@ EXTRA_DIST = \
$(AES1610_SRC) \
$(AES2501_SRC) \
$(AES4000_SRC) \
+ $(AES3500_SRC) \
$(FDU2000_SRC) \
$(VCOM5S_SRC) \
$(VFS101_SRC) \
@@ -124,6 +126,10 @@ if ENABLE_AES4000
DRIVER_SRC += $(AES4000_SRC)
endif
+if ENABLE_AES3500
+DRIVER_SRC += $(AES3500_SRC)
+endif
+
if ENABLE_VFS101
DRIVER_SRC += $(VFS101_SRC)
endif
diff --git a/libfprint/core.c b/libfprint/core.c
index 401c491..19356e3 100644
--- a/libfprint/core.c
+++ b/libfprint/core.c
@@ -352,6 +352,9 @@ static struct fp_img_driver * const img_drivers[] = {
#ifdef ENABLE_AES4000
&aes4000_driver,
#endif
+#ifdef ENABLE_AES3500
+ &aes3500_driver,
+#endif
#ifdef ENABLE_AES2501
&aes2501_driver,
#endif
diff --git a/libfprint/drivers/aes3500.c b/libfprint/drivers/aes3500.c
new file mode 100644
index 0000000..07482ec
--- /dev/null
+++ b/libfprint/drivers/aes3500.c
@@ -0,0 +1,288 @@
+/*
+ * AuthenTec AES3500 driver for libfprint
+ *
+ * AES3500 is a press-typed sensor, with 128x128 in dimension. Which is
+ * similiar to AES4000, except the later is in 96x96. This driver is a
+ * direct fork of AES4000 driver code, with parameters tuned by
+ * monitoring the sniffed usb transfer.
+ *
+ * Thanks Rafael Toledo for the Windows driver and the help.
+ *
+ * Copyright (C) 2011 Juvenn Woo <jv@walkingcloud.org>
+ * Copyright (C) 2007-2008 Daniel Drake <dsd@gentoo.org>
+ *
+ * This library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of the
+ * License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ */
+
+#define FP_COMPONENT "aes3500"
+
+#include <errno.h>
+
+#include <glib.h>
+#include <libusb.h>
+
+#include <aeslib.h>
+#include <fp_internal.h>
+
+#define CTRL_TIMEOUT 1000
+#define EP_IN (1 | LIBUSB_ENDPOINT_IN)
+#define EP_OUT (2 | LIBUSB_ENDPOINT_OUT)
+#define DATA_BUFLEN 0x2089
+#define NR_SUBARRAYS 8
+#define SUBARRAY_LEN 1024
+
+#define IMG_HEIGHT 128
+#define IMG_WIDTH 128
+#define ENLARGE_FACTOR 2
+
+struct aes3500_dev {
+ struct libusb_transfer *img_trf;
+};
+
+
+/* TODO: figure out the init_reqs to improve the
+ * image quality of the device. */
+
+static const struct aes_regwrite init_reqs[] = {
+ /* master reset */
+ { 0x80, 0x01 },
+ { 0, 0 },
+ { 0x80, 0x00 },
+ { 0, 0 },
+
+ { 0x81, 0x00 },
+ { 0x80, 0x00 },
+ { 0, 0 },
+
+ /* scan reset */
+ { 0x80, 0x02 },
+ { 0, 0 },
+ { 0x80, 0x00 },
+ { 0, 0 },
+
+ /* disable register buffering */
+ { 0x80, 0x04 },
+ { 0, 0 },
+ { 0x80, 0x00 },
+ { 0, 0 },
+
+ { 0x81, 0x00 },
+ { 0, 0 },
+ /* windows driver reads registers now (81 02) */
+ { 0x80, 0x00 },
+ { 0x81, 0x00 },
+
+ /* set excitation bias current: 2mhz drive ring frequency,
+ * 4V drive ring voltage, 16.5mA excitation bias */
+ { 0x82, 0x04 },
+
+ /* continuously sample drive ring for finger detection,
+ * 62.50ms debounce delay */
+ { 0x83, 0x13 },
+
+ { 0x84, 0x07 }, /* set calibration resistance to 12 kiloohms */
+ { 0x85, 0x3d }, /* set calibration capacitance */
+ { 0x86, 0x03 }, /* detect drive voltage */
+ { 0x87, 0x01 }, /* set detection frequency to 125khz */
+ { 0x88, 0x02 }, /* set column scan period */
+ { 0x89, 0x02 }, /* set measure drive */
+ { 0x8a, 0x33 }, /* set measure frequency and sense amplifier bias */
+ { 0x8b, 0x33 }, /* set matrix pattern */
+ { 0x8c, 0x0f }, /* set demodulation phase 1 */
+ { 0x8d, 0x04 }, /* set demodulation phase 2 */
+ { 0x8e, 0x23 }, /* set sensor gain */
+ { 0x8f, 0x07 }, /* set image parameters */
+ { 0x90, 0x00 }, /* carrier offset null */
+ { 0x91, 0x1c }, /* set A/D reference high */
+ { 0x92, 0x08 }, /* set A/D reference low */
+ { 0x93, 0x00 }, /* set start row to 0 */
+ { 0x94, 0x07 }, /* set end row */
+ { 0x95, 0x00 }, /* set start column to 0 */
+ { 0x96, 0x1f }, /* set end column */
+ { 0x97, 0x04 }, /* data format and thresholds */
+ { 0x98, 0x28 }, /* image data control */
+ { 0x99, 0x00 }, /* disable general purpose outputs */
+ { 0x9a, 0x0b }, /* set initial scan state */
+ { 0x9b, 0x00 }, /* clear challenge word bits */
+ { 0x9c, 0x00 }, /* clear challenge word bits */
+ { 0x9d, 0x09 }, /* set some challenge word bits */
+ { 0x9e, 0x53 }, /* clear challenge word bits */
+ { 0x9f, 0x6b }, /* set some challenge word bits */
+ { 0, 0 },
+
+ { 0x80, 0x00 },
+ { 0x81, 0x00 },
+ { 0, 0 },
+ { 0x81, 0x04 },
+ { 0, 0 },
+ { 0x81, 0x00 },
+};
+
+static void do_capture(struct fp_img_dev *dev);
+
+static void img_cb(struct libusb_transfer *transfer)
+{
+ struct fp_img_dev *dev = transfer->user_data;
+ struct aes3500_dev *aesdev = dev->priv;
+ unsigned char *ptr = transfer->buffer;
+ struct fp_img *tmp;
+ struct fp_img *img;
+ int i;
+
+ if (transfer->status == LIBUSB_TRANSFER_CANCELLED) {
+ goto err;
+ } else if (transfer->status != LIBUSB_TRANSFER_COMPLETED) {
+ fp_err("libusb transfer not completed error");
+ fpi_imgdev_session_error(dev, -EIO);
+ goto err;
+ } else if (transfer->length != transfer->actual_length) {
+ fp_err("libusb transfer length not match: %d vs %d(actual)", transfer->length, transfer->actual_length);
+ fpi_imgdev_session_error(dev, -EPROTO);
+ goto err;
+ }
+
+ fpi_imgdev_report_finger_status(dev, TRUE);
+
+ tmp = fpi_img_new(IMG_WIDTH * IMG_HEIGHT);
+ tmp->width = IMG_WIDTH;
+ tmp->height = IMG_HEIGHT;
+ tmp->flags = FP_IMG_COLORS_INVERTED | FP_IMG_V_FLIPPED | FP_IMG_H_FLIPPED;
+ for (i = 0; i < NR_SUBARRAYS; i++) {
+ fp_dbg("subarray header byte %02x", *ptr);
+ ptr++;
+ aes_assemble_image(ptr, 128, 16, tmp->data + (i * 128 * 16));
+ ptr += SUBARRAY_LEN;
+ }
+
+ /* FIXME: this is an ugly hack to make the image big enough for NBIS
+ * to process reliably */
+ img = fpi_im_resize(tmp, ENLARGE_FACTOR);
+ fp_img_free(tmp);
+ fpi_imgdev_image_captured(dev, img);
+
+ /* FIXME: rather than assuming finger has gone, we should poll regs until
+ * it really has, then restart the capture */
+ fpi_imgdev_report_finger_status(dev, FALSE);
+
+ do_capture(dev);
+
+err:
+ g_free(transfer->buffer);
+ aesdev->img_trf = NULL;
+ libusb_free_transfer(transfer);
+}
+
+static void do_capture(struct fp_img_dev *dev)
+{
+ struct aes3500_dev *aesdev = dev->priv;
+ unsigned char *data;
+ int r;
+
+ aesdev->img_trf = libusb_alloc_transfer(0);
+ if (!aesdev->img_trf) {
+ fp_err("libusb_alloc_transfer error");
+ fpi_imgdev_session_error(dev, -EIO);
+ return;
+ }
+
+ data = g_malloc(DATA_BUFLEN);
+ libusb_fill_bulk_transfer(aesdev->img_trf, dev->udev, EP_IN, data,
+ DATA_BUFLEN, img_cb, dev, 0);
+
+ r = libusb_submit_transfer(aesdev->img_trf);
+ if (r < 0) {
+ fp_err("libusb_submit_transfer error");
+ g_free(data);
+ libusb_free_transfer(aesdev->img_trf);
+ aesdev->img_trf = NULL;
+ fpi_imgdev_session_error(dev, r);
+ }
+}
+
+static void init_reqs_cb(struct fp_img_dev *dev, int result, void *user_data)
+{
+ fpi_imgdev_activate_complete(dev, result);
+ if (result == 0)
+ do_capture(dev);
+}
+
+static int dev_activate(struct fp_img_dev *dev, enum fp_imgdev_state state)
+{
+ aes_write_regv(dev, init_reqs, G_N_ELEMENTS(init_reqs), init_reqs_cb, NULL);
+ return 0;
+}
+
+static void dev_deactivate(struct fp_img_dev *dev)
+{
+ struct aes3500_dev *aesdev = dev->priv;
+
+ /* FIXME: should wait for cancellation to complete before returning
+ * from deactivation, otherwise app may legally exit before we've
+ * cleaned up */
+ if (aesdev->img_trf)
+ libusb_cancel_transfer(aesdev->img_trf);
+ fpi_imgdev_deactivate_complete(dev);
+}
+
+static int dev_init(struct fp_img_dev *dev, unsigned long driver_data)
+{
+ int r;
+
+ r = libusb_claim_interface(dev->udev, 0);
+ if (r < 0)
+ fp_err("could not claim interface 0");
+
+ dev->priv = g_malloc0(sizeof(struct aes3500_dev));
+
+ if (r == 0)
+ fpi_imgdev_open_complete(dev, 0);
+
+ return r;
+}
+
+static void dev_deinit(struct fp_img_dev *dev)
+{
+ g_free(dev->priv);
+ libusb_release_interface(dev->udev, 0);
+ fpi_imgdev_close_complete(dev);
+}
+
+static const struct usb_id id_table[] = {
+ { .vendor = 0x08ff, .product = 0x5731 },
+ { 0, 0, 0, },
+};
+
+struct fp_img_driver aes3500_driver = {
+ .driver = {
+ .id = 11,
+ .name = FP_COMPONENT,
+ .full_name = "AuthenTec AES3500",
+ .id_table = id_table,
+ .scan_type = FP_SCAN_TYPE_PRESS,
+ },
+ .flags = 0,
+ .img_height = IMG_HEIGHT * ENLARGE_FACTOR,
+ .img_width = IMG_WIDTH * ENLARGE_FACTOR,
+
+ /* temporarily lowered until image quality improves */
+ .bz3_threshold = 9,
+
+ .open = dev_init,
+ .close = dev_deinit,
+ .activate = dev_activate,
+ .deactivate = dev_deactivate,
+};
+
diff --git a/libfprint/fp_internal.h b/libfprint/fp_internal.h
index e6134d4..67f3515 100644
--- a/libfprint/fp_internal.h
+++ b/libfprint/fp_internal.h
@@ -259,6 +259,9 @@ extern struct fp_img_driver aes2501_driver;
#ifdef ENABLE_AES4000
extern struct fp_img_driver aes4000_driver;
#endif
+#ifdef ENABLE_AES3500
+extern struct fp_img_driver aes3500_driver;
+#endif
#ifdef ENABLE_FDU2000
extern struct fp_img_driver fdu2000_driver;
#endif
[367470 ms] <<< URB 317 coming back <<<
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
PipeHandle = 857c4514 [endpoint 0x00000081]
TransferFlags = 00000003 (USBD_TRANSFER_DIRECTION_IN, USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 000000fc
TransferBuffer = 85f1b000
TransferBufferMDL = 85efa680
00000000: de 34 01 37 00 1b 00 18 00 16 00 1b 00 23 00 30
00000010: 00 2e 00 50 00 07 01 55 01 7f 00 05 00 00 00 00
00000020: 00 de 3c 02 03 01 36 00 34 00 34 00 2e 00 48 00
00000030: 5b 00 66 00 1f 01 40 02 15 03 6f 01 09 00 00 00
00000040: 00 00 de 5f 03 3a 01 50 00 48 00 4c 00 3f 00 6b
00000050: 00 08 01 1c 01 7d 01 6f 03 4c 04 59 02 24 00 00
00000060: 00 00 00 de 7f 04 67 01 66 00 5c 00 67 00 57 00
00000070: 76 00 29 01 57 01 43 02 09 05 31 06 6a 03 3d 00
00000080: 00 00 00 00 80 00 81 00 82 01 83 10 84 00 85 22
00000090: 86 03 87 01 88 01 89 02 8a 05 8b 2f 8c 2a 8d 00
000000a0: 8e 02 8f 32 90 00 91 70 92 0c 93 02 94 05 95 00
000000b0: 96 17 97 08 98 27 99 0c 9a 0e 9b 00 9c 00 9d 45
000000c0: 9e 00 9f 00 a0 13 a1 03 a2 00 a3 00 a4 00 a5 00
000000d0: a6 00 a7 08 a8 00 a9 40 aa 00 ab 00 ac 00 ad 00
000000e0: ae 00 af 00 b0 00 b1 00 b2 00 b3 00 b4 05 b5 00
000000f0: b6 00 b7 00 b8 00 b9 00 ba 00 bb 00
UrbLink = 00000000
...
[367559 ms] <<< URB 324 coming back <<<
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
PipeHandle = 857c4514 [endpoint 0x00000081]
TransferFlags = 00000003 (USBD_TRANSFER_DIRECTION_IN, USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 000020aa
TransferBuffer = 84a02000
TransferBufferMDL = 85f6b190
00000000: e0 00 00 00 00 00 00 60 7c 00 00 00 00 00 00 f5
00000010: 7f 00 00 00 00 00 f1 ff 08 00 00 00 00 40 ff cf
00000020: 00 00 00 00 00 f8 cf 05 00 00 00 00 c0 ff df 00
00000030: 00 00 00 00 d8 ff cf 00 00 00 00 60 1b fb 0f 00
00000040: f1 00 00 f7 df ed 02 50 ff 00 a0 ff ff 09 00 f0
00000050: ff 00 f0 ff ff 01 00 fa ff 00 f6 ff 06 00 30 ff
00000060: ff 00 ff 4f 00 00 f3 ff ff f7 ff 09 00 50 ff ff
00000070: 0f ff ff 00 00 f0 ff ff 01 f6 3f 00 00 fe ff 0b
00000080: 00 00 00 00 a0 ff ef 00 20 00 00 00 f4 ff 09 00
00000090: f1 00 00 80 ff af 00 00 fe 00 00 ff ef 0c 00 b0
000000a0: ff 00 e0 ff ff 0c 00 f6 ff 00 fe ff ff 05 30 ff
000000b0: ff 30 ff ff ef 00 f0 ff ff f0 ff ff 1e 00 fa ff
000000c0: cf fc ff ff 09 00 ff ff 1f ff ff df 00 30 ff ff
000000d0: 07 ff ff 0f 00 f4 ff 5f 00 ff ff 02 40 ff ff 02
000000e0: 00 ff 1f 00 f0 ff 1f 00 d0 bf 02 00 f4 ff 02 00
000000f0: f3 00 00 00 ff cf 00 00 fe 00 00 f3 ff 0f 00 c0
00000100: ff 00 00 ff ff 0d 00 fd ff 00 f0 ff ff 01 90 ff
00000110: ff 00 f7 ff 5f 00 f1 ff cf 00 fe ff 0f 00 f9 ff
00000120: 0f 00 ff ff 06 20 ff ff 01 20 ff ff 00 e0 ff 3f
00000130: 00 a0 ff 4f 00 f9 ff 0d 00 f8 ff 0f 00 ed ff 02
00000140: 00 ff ff 02 f3 ff df 00 60 ff 6f 00 fd ff 0f 00
00000150: f4 fe 06 20 ff ff 0a 00 ef ff 00 d0 ff ff 00 70
00000160: ff 6f 00 f5 ff 2f 00 e0 ff 01 00 ff ff 05 00 f9
00000170: ff 00 70 ff ef 00 20 ff ff 00 70 ff 3f 00 90 ff
00000180: ff 00 f4 ff 0e 00 f0 8d 7f 00 ff ef 01 00 fc cb
00000190: 0e 80 ff 9f 00 60 ff ff 04 f0 ff 0f 00 e0 ff ff
000001a0: 00 f6 ff 0f 00 f6 f8 9f 00 ff ff 06 00 de fc 0a
000001b0: 00 ff ff 01 40 ff ff 00 00 ff ff 00 00 ff cf 00
000001c0: 70 ff 3f 00 f2 ff 6f 00 f4 ff 0d 00 fb ff 0f 00
000001d0: f8 ff 06 00 ff ff 08 00 ff ff 00 90 ff ff 00 c0
000001e0: ff ef 00 f0 ff 4f 20 fe ff 1f 00 f5 ff 08 50 ff
000001f0: ff 00 00 ff ff 06 e0 ff ff 00 f0 ef ff 04 b6 ff
00000200: ff 00 f0 ff ff fd ff ff ff 00 f0 ff ff ff 6b fd
00000210: ff 00 f6 ff ed 9f 00 fc ff 00 fb ff e7 0c 00 fd
00000220: ff 00 fc af ff 02 00 ff ef 00 fa ef ff 02 50 ff
00000230: 9f 00 e8 ff bf 00 e0 ff 0d 00 78 ff 1f 00 f9 ff
00000240: 06 00 ff ff 0f 00 ff ff 00 80 ff ff 0c 00 ff ef
00000250: 00 f0 ff ff 07 40 ff 3d 00 f1 ff 9f 00 f0 ff 08
00000260: 30 f8 ff 05 00 f6 ff 01 b0 ff ff 00 00 ff ff 06
00000270: c0 ff cf 00 a0 ff 3f 00 e3 ff 2f 00 f0 ff 4f 00
00000280: fe ff 0d 00 f6 ff 0f 00 ff ff 03 00 fe ff 0b 80
00000290: ff ff 00 10 ff ff 07 f0 ff 5f 00 a0 ff ef 01 f5
000002a0: ff 1f 00 f0 ff 7f 00 fb ff 1f 00 f0 ff 0f 00 fc
000002b0: ff 0f 00 f8 b7 08 00 fc ff 0f 00 fd 02 00 80 ff
000002c0: df 08 00 ff ff 01 e0 ff 01 00 a0 ff df 00 f0 ff
000002d0: 00 00 f0 ff 5f 00 e2 ff 00 00 f0 ff af 00 f5 ff
000002e0: 03 00 fa ff 1f 00 fa ff 45 00 fc ff 0f 00 ff ff
000002f0: d1 40 ff ff 0b 60 ff bf f0 00 f8 ef 01 c0 ff 2f
00000300: f1 30 ff 8f 00 a0 ff 06 f1 f0 ff 4f 00 e0 af 08
00000310: e0 c0 ff 0f 00 f5 bf 08 f0 f4 ff 1f 00 ff ff 01
00000320: f7 fc ff 09 30 ff 9f 00 fd ff ff 01 60 dd df e3
00000330: ff f7 ff 00 50 ca cf f0 ff 12 fc 00 01 d9 4f f0
00000340: ff f1 ff 01 76 ea 0b f0 ff 80 9f 00 c9 eb 01 f1
00000350: ff 00 00 80 fe 9f 00 f0 bd 00 00 a0 ff bf 00 c0
00000360: 7f 00 00 80 ef 0f 00 d1 af 00 00 00 92 06 00 f2
00000370: 0a 00 00 00 00 00 00 b5 00 00 00 00 00 00 00 00
00000380: 00 00 00 00 00 00 00 00 00 00 00 10 4d 00 20 7c
00000390: 00 00 00 fc 2f 00 f5 ff 03 00 f0 ff 0f 00 fa ff
000003a0: 07 00 f0 ff 0f 00 ff ff 05 00 f0 ff 0a c0 ff ff
000003b0: e5 00 e1 ff 06 f0 ff df f3 00 f6 ff 05 f2 ff 1f
000003c0: f0 00 ff ff 00 f5 ff 04 60 00 f6 3f 00 f7 df 00
000003d0: f0 00 d1 08 00 f4 4b 00 f0 00 00 00 00 fc 48 00
000003e0: f1 00 00 00 00 ff 24 00 a0 00 00 00 00 26 00 00
000003f0: e1 00 00 00 00 00 00 00 c0 00 00 00 00 00 00 00
00000400: 10 e1 00 00 00 c5 ba 8a 02 00 00 00 d0 ff 6a 07
00000410: 00 00 00 00 fd ff cf 00 00 e4 00 d0 ff ff 0f 00
00000420: 80 fe 00 fc ff ff 06 00 e7 ff f4 ff ff 0e 00 a0
00000430: ff ff ff ff df 00 00 fd ff ff ff ff 0c 00 d0 ff
00000440: ff 3f ff df 00 00 fe ff 6f 01 ff 0f 00 90 ff ff
00000450: 0a 00 5f 00 00 fb ff ef 00 30 0f 00 a0 ff ff 09
00000460: 00 fb 06 00 f8 ff 2e 00 c0 ff 00 f2 ff ff 02 00
00000470: fd ff 00 ff ff 5f 00 c0 ff ff e0 ff ff 08 00 fd
00000480: ff ff fe ff 5f 00 90 ff ff 3f ff ef 02 00 f2 ff
00000490: ff 02 ff 1f 00 30 fe fe 3f 00 ff 0f 00 f2 ff f6
000004a0: 09 00 ff 01 00 fe ff af 00 e2 1f 00 e1 ef ff 04
000004b0: 80 ff 06 00 fe ef 6c 00 e1 ff 00 80 ff 1d 00 00
000004c0: e8 ff 00 f8 ff 0e 00 30 fe f8 40 ff ff 09 00 e2
000004d0: ff ee f9 ff df 00 10 fe ff 2e ff ff 1f 00 f0 ff
000004e0: ff 02 ff ff 05 20 fe ff df 00 ff 7f 00 d0 ff ff
000004f0: 1f 00 ff 06 00 fa ff ff 05 40 ef 00 a0 ff ff 1f
00000500: 00 e0 0e 00 f1 ff ff 02 00 f9 05 00 fe ff 8f 00
00000510: 20 fe 00 d0 ff ff 0d 00 e4 ff 00 f2 ff bf 00 10
00000520: fd ff 00 fc ff 0e 00 e1 ed af 40 ff ff 08 00 fd
00000530: ff 0f f6 ff cf 00 b0 ff ff 05 ff ff 0e 00 e0 ff
00000540: cf 30 ff ff 06 00 f2 ff 4f e0 ff 5f 00 00 fb ff
00000550: 07 e8 ff 0d 00 b0 ff 8f 00 fe ff 07 00 fa ff 06
00000560: 70 ff ff 04 00 ff ff 00 d0 aa af 00 b0 ff df 00
00000570: e8 ee 0e 00 e0 ff 8f 50 ff bf 03 00 fc fe 05 f1
00000580: ff 4f 00 80 ff ff 00 fc ff 0d 00 f5 ff bf 10 fe
00000590: ff 92 00 fa ff 7f b0 fe 9f d7 10 ff ff 0f e2 ee
000005a0: 06 e8 a0 ef ff 06 da de 10 fd f4 af df 00 ac 8e
000005b0: 30 fe fe de 0d 60 ec 1e 60 fe fe ff 01 04 c9 08
000005c0: 80 ee ff 4f 00 aa ba 00 e2 fe fe 0d 90 bd 9c 00
000005d0: e8 ff fd 09 a0 ce 4e 00 fa bf ff 00 e2 ee 0e 00
000005e0: be bf ff 00 ec fb 0e b0 3d 0b 8f 00 fe ff 0d d0
000005f0: ff 05 0e 40 ff ff 08 fc ff 02 0d c0 ff ef 30 ff
00000600: cf 00 0c f1 ff 7f b0 ff 5f 20 06 f6 ff 5f e0 fe
00000610: 0a 50 00 fb ff 4f f3 ff 06 80 00 fd ff 09 fd bf
00000620: 00 f6 00 ff ff 00 fe 3f 00 fe 90 ff cf 00 ee 08
00000630: c0 ff e0 ff 2f 50 ec 01 f0 fe f0 df 08 00 da 00
00000640: fa fc f4 df 00 a5 ec 40 ff ff fb af 00 da fe a0
00000650: ff 8f ff af 00 fe df e0 ff 0f ff af 20 ee 7f f1
00000660: ff 1e ff 4f 90 ff 1f f5 ff 05 ff 0f d0 ff 0d fd
00000670: cf 00 fa 0f f6 ff 24 ff af 70 ff 08 fa 1d 90 ff
00000680: 1f 90 cf 00 ff 05 e0 ff 0f c0 cf 50 ff 01 f0 ff
00000690: 1c f0 ef d0 ff 02 f4 ff 01 f6 af f9 ff 04 fb ff
000006a0: 01 fd cf ff ff 32 ff ff 00 fd 7c ff fe b9 ef cf
000006b0: 50 ff 02 ff fc b5 fe 7f c0 ff 10 ff 0d 00 fb 5f
000006c0: e0 ff b0 ff 02 b0 dd 0d e0 ff f1 cf 00 e2 ff 09
000006d0: f0 ff fc ef 00 f9 fe 09 f5 ff ff df 00 fc ff 01
000006e0: f1 ff ff ff 00 fe ef 00 fa ff ff ff 66 ff 5f 00
000006f0: fd ff ff ef c5 ff 2f 60 ff af ff 9f f7 ff 0f f0
00000700: ff df ff 4e f9 fc 0f f0 ff 07 ff 04 fc fb 2f f9
00000710: ff 09 df 00 fa ff 00 ee ff 05 bf 00 fe 9f 00 ff
00000720: bf 00 ff 40 ff 06 50 ff df 01 ff 60 ff 08 d0 ff
00000730: ef 00 bf f0 ff 0d f0 ff 9f 00 7f f7 ff 04 f0 ff
00000740: af 00 1c ff ff 04 f4 ff 4f 00 03 fe ff 05 fc ff
00000750: 0f 30 00 ff ff 01 ff ff 0d 20 00 fe 9f 10 ff ff
00000760: 09 00 30 ff 0f 20 ff ef 00 00 50 ff 0a 70 ff ff
00000770: 00 00 50 ff 04 40 ff ff 00 50 40 cf 00 00 df ef
00000780: 00 a0 f0 ff 01 00 ff fd 05 a0 f1 ff 08 30 ff ff
00000790: 08 f0 e2 ff 02 90 ff ff 06 d0 fa ff 02 c0 ff ff
000007a0: 07 a0 fe ff 01 f0 ff ff 03 c0 ff ff 01 f3 ef ff
000007b0: 00 d0 df fb 00 c5 fc ff 00 f0 5b fb 00 14 fb ff
000007c0: 00 f1 8f ff 00 dc ff ef 00 f1 ff bf 00 fd ff 9f
000007d0: 00 f9 ff 6f 00 fd ff 0f 00 fc ff 0f 10 ff ff 0e
000007e0: 00 ff ff 0f 00 ff ff 0a 40 ff ff 04 20 ff ff 07
000007f0: 70 ff bf 00 30 ff ff 00 50 fe 68 00 00 ff 6f 00
00000800: 30 ef e2 00 cb ab 78 00 00 00 c9 d9 cd 4c 00 00
00000810: 20 b8 dc dd dd 08 00 00 c8 cd bb ed 8d 00 00 90
00000820: dd dd cd ee 0e 00 00 d9 dd dd de ae 00 00 91 ca
00000830: dd ed ae 07 00 40 8a ca dd ad 02 00 60 c9 18 b8
00000840: 9c 01 00 60 fe cd 89 8a 00 00 80 f5 df dd b9 06
00000850: 00 a0 ee ff ef fe ac 01 70 ed ff ff ff cd 00 00
00000860: fa ff ff fe df 16 00 b0 fe ff ef fe 07 00 20 eb
00000870: fe ff 5b 4e 00 00 e5 ff ee 5e 00 07 00 a0 ff ff
00000880: 9f 00 00 00 20 eb ff ef 09 00 d1 00 d1 fe ff 7f
00000890: 00 40 ed 70 ef ff ad 00 00 d7 ee fb ff ef 03 00
000008a0: 60 dd ee ff fe 5e 00 00 da dd fe fe ef 0b 00 a2
000008b0: db ed cf fe ef 03 00 96 ba db 06 fe 6f 00 00 95
000008c0: ca 0a 00 ed 06 00 65 97 bb 00 00 2b 00 a4 9a 9a
000008d0: 4a 00 a0 00 00 cc bc bb 07 40 ec 00 a0 dc dc 5c
000008e0: 00 d3 ee 70 ed ed 9b 02 00 ec dd e7 ff ee 05 00
000008f0: d2 ee ed fe fe 8f 00 80 ff de ee df ef 0c 00 f7
00000900: ff ed ff fa ef 05 00 da ed ff ee fe 08 00 00 da
00000910: ed ee 0a 4d 80 be 10 ee ff bf 00 04 e6 de 80 bd
00000920: ed 0e 00 40 ed 9f c4 ed ee 02 b1 d0 ef 4e cb db
00000930: 7d 00 d5 eb ff 89 8a ca 1d 00 ed fd fe 45 17 b9
00000940: 09 40 ee fe 7e 80 8a a9 00 c4 ae fe 0a c2 ac 8c
00000950: 00 ec fe ee 00 c8 dd 0c b0 ef fd 0a 00 dc de 07
00000960: e7 ee ff 02 a0 ee 8f 20 ec ef ce 00 e4 db 1e 40
00000970: ee ee 9e 00 eb ee 08 b0 fe af 37 40 fe df 03 d0
00000980: ee 0b 00 e3 fe 4e 00 d7 ee 07 81 dd fd 0e 25 cd
00000990: cd 20 fc ee ee 84 db ce 0c 80 ff ee ee 92 cb dc
000009a0: 08 e5 ee ed 7e 90 bb cc 00 dc ff ec 0c 94 99 7a
000009b0: 50 de 9e dc 02 98 46 14 e8 ed 08 8d 30 89 05 20
000009c0: dc ee 00 0c 80 9b 06 80 dc 8e 10 05 d2 bd 08 c0
000009d0: dd 07 b0 00 ca cd 09 eb 9f 00 e8 10 ed dd 50 fd
000009e0: 1f 00 fd 80 fd ae b0 fe 0c c0 ef e0 ff 0e e0 ef
000009f0: 09 c0 ff e5 ff 08 e4 ff 02 e0 fd fd ef 00 fc ff
00000a00: 01 e3 fd ff af c3 ef cf 00 fd ff ff bf fe ff bf
00000a10: 00 fe fe ff 37 fe fe 0b b0 9f fe 9e 30 fe fe 05
00000a20: c0 af cf 0b 82 ee ee 00 f4 ff 7f 08 d3 ff be 00
00000a30: fc fe 0f 08 f6 ef 6f 10 fe ff 0d 09 f9 fe 1f 80
00000a40: fe ff 06 05 ff ff 0f b0 ef ff 01 30 cf fe 0b e0
00000a50: af df 00 90 df ff 05 fb ff 0f 90 c0 ff ff 20 ff
00000a60: ff 0b f0 f8 ff ff 80 ff ff 05 e0 fe ff 8f c0 ff
00000a70: ff 00 f5 fe ff 0c f1 ff ff 01 fa ff ff 04 e3 ff
00000a80: df 00 fe fe ff 00 fb ff cf 70 ff fc ff 00 fe ff
00000a90: 5f c0 ff fb af 00 ef fc 09 f1 df fa 1f 30 fe ff
00000aa0: 00 f5 fe ff 4f c3 fe df 00 f8 db fe 00 c0 ee 6f
00000ab0: 00 fc ff ce 00 c0 bb 0c 10 fe ff af 00 c8 19 07
00000ac0: b0 ef ff be 00 dd ac 08 f0 ef ff 6f 00 fe ef 01
00000ad0: f7 8f ff 0f 00 af ef 00 f9 ff bf 0c 60 cf 7f 00
00000ae0: fc ff 7f 07 e0 ff 0f 00 fd ff 0e 00 f7 ff 0d 00
00000af0: fe ff 0b 00 fc ff 0d 50 ff ff 09 50 ff ff 0b 90
00000b00: df fe 08 80 ff ff 0e a0 ff ff 05 d0 ef ff 0a e0
00000b10: ff df 00 d0 ff ff 00 f0 ff cf 00 90 ff ef 00 f0
00000b20: ff ef 00 e2 ff ff 00 f7 ff 6f 00 f9 ff cf 00 f8
00000b30: ff 1f 00 fe fe cf 00 f9 ff 1f 20 ff ff 4f 00 fc
00000b40: ff 1f 00 ff ff 0f 00 fa ff 0f 70 df ff 0f 00 ff
00000b50: ff 1f 90 ff ff 0b 00 ff ff 0f a0 ff ff 00 00 fe
00000b60: ff 0f a0 fc ff 04 00 fe ff 08 00 fc fe 07 00 ff
00000b70: ff 07 00 9f ff 0c 00 ff ff 06 00 cd ff 00 00 ff
00000b80: ff 01 00 ff ff 00 20 ff ff 00 d0 ff ff 00 80 ff
00000b90: ff 00 f0 ff ef 00 a0 ff ff 00 f0 ff bf 00 b0 ff
00000ba0: ff 00 f8 ff bf 00 e0 5f 3f 00 ff ff 5f 00 e0 bf
00000bb0: 3f 60 ff ff 4f 00 c0 ff 0f 80 ff ff 2f 00 00 fe
00000bc0: 0f f0 ff ef 0f 00 e0 ff 0f f0 bc ff 0f 00 f4 ff
00000bd0: 0d f3 9f ff 0f 00 f9 ff 09 f7 6f ff 0c 00 fb ff
00000be0: 03 f9 bf ff 04 00 ff ff 01 fa 1f ff 00 00 ff ff
00000bf0: 00 fa 0f bf 00 00 ff 8f 00 fd 0f 4e 00 00 fd 5f
00000c00: 00 f7 0f e3 bb 99 47 00 00 00 00 40 bb 09 00 00
00000c10: 00 00 40 87 db 0c 00 00 30 95 8a a9 dc 2d 00 95
00000c20: aa aa aa 39 9b 05 70 ab 9a ba 28 00 02 00 a8 9a
00000c30: b9 7b 00 00 00 b0 ad 8a 99 02 00 d7 60 dc bd 19
00000c40: 00 00 80 ed dd dd ce 06 00 30 cc fe dd dd 3e 00
00000c50: 30 da ee de ed ce 03 00 d3 de ae 03 dd 8b 00 60
00000c60: ec ff 0a 20 58 00 10 ec ff 8e 00 e7 00 00 d8 fe
00000c70: ef 57 ec fe 00 fa ff df 1c d7 ee de d7 ef ff bf
00000c80: 90 ee ff 8e ed ef ff 2b a0 fe df 03 ee ee 5f 00
00000c90: 00 00 00 90 ee de 05 00 00 73 d9 fe ed 0d 00 40
00000ca0: c8 dd ee fe 9c 00 30 a8 bb dd de ff 03 00 b8 9a
00000cb0: ba ec dd 69 00 b5 ab 79 a9 dc 28 00 91 cc bb 18
00000cc0: 42 02 00 40 da cb cb 09 00 00 10 e9 dd dd 9c 00
00000cd0: 00 c7 fe ee ec ee 0a 00 a2 ed ed ee ec de 04 30
00000ce0: dc dc de ed dd 4d 00 e9 de ed dd ee ed 07 50 dd
00000cf0: dd ec ed de be 00 a0 de ed fe 4b a1 09 00 eb ee
00000d00: ee 1a 00 db 00 d0 ee ed 6e 00 c8 ed 00 ed ef ed
00000d10: 0b a0 ee fe b0 ee ff 0c 00 d4 dd fe ec ee ce 00
00000d20: 61 dd ce fe ed ee 0d 50 db cd dd ed ed fe 09 a0
00000d30: ba cd dc 0b fd 9e 00 85 a9 bb 6c 00 ed 08 30 16
00000d40: 96 ba 08 20 ed 03 a2 79 a8 7a 00 d6 ad 00 cb ab
00000d50: ba 38 50 ee 0b c0 dd cd 0a 00 d0 dd 03 ea ec ad
00000d60: 00 40 ec fd 02 ed ee 07 00 e5 fe eb 50 ee 3d 00
00000d70: 50 cd ee ef e0 de 00 00 e6 ed dc 7d d7 08 00 91
00000d80: ce ed be 03 9d 00 80 ec ce ee 0a 00 0d 00 da ae
00000d90: de ad 02 20 09 70 dd de cd 05 00 90 02 c0 dd de
00000da0: 09 92 09 c0 03 e7 de bd 70 de 1e d0 10 ed dd 1c
00000db0: c7 ce 0c c0 70 ed ae 40 c8 dd 0a e8 d6 ee 0c 01
00000dc0: b8 cc 61 ed fd ee 05 86 c9 4c c0 ff ce ce 10 ca
00000dd0: bb 0a d5 fe 8c 3c a0 dd ad 00 ed dd ee 0e d3 ef
00000de0: 1d 60 cb ee ed 38 eb ee 0b a0 57 fe de 01 ed ff
00000df0: 04 fc fe ee 9e 81 fe bf 90 fe ff 8f 0c c0 ee 1f
00000e00: e4 ee ef 0d 0c e6 ff 0b d6 ef be 00 09 eb ff 04
00000e10: f8 ed 2d 50 43 fe af 00 ed ed 06 d0 30 ff 1f 70
00000e20: ed 8f 00 d1 b0 df 0c d1 ee 3e 00 ec e1 ef 0a c7
00000e30: ed 0d 80 ef e5 ff 03 ba cc 09 e0 dd fb ff 08 19
00000e40: c9 01 e7 ff fd ff 07 bb ca 00 fc ff fe fe 81 de
00000e50: bb 91 ff fd ff cf b1 ee af c3 bf e2 ff 0f d1 ed
00000e60: 8f 90 ff fd ff 0b f8 fd 0f d0 ff ff fe 02 fc ff
00000e70: 0b e4 ff ff ce 30 ef ff 04 f9 ff ff ad 00 fe ff
00000e80: 05 fa ed bf 7f 20 fe ff 09 fc 89 bf 9f 30 ff ff
00000e90: 68 fe 9f df 9f 80 ff ff 3d fe ff 9f 6f e1 ff ff
00000ea0: db ff ff 0e 0e f0 ff ff f2 ff ff 0e 0c f5 ff cf
00000eb0: e0 ff ff 0c 03 f7 ff 4f f3 ff ff 0b 00 fa ff 1d
00000ec0: f4 ff ff 00 00 fd ff 0c f3 ff ff 00 00 ff ff 07
00000ed0: f9 ff ff 00 10 ff ff 05 fb df ff 00 40 ff ff 05
00000ee0: fe ff cf 00 70 ff ff 40 ff ff af 00 d0 ef ff 00
00000ef0: ff ff 6f 50 e0 ef ff 00 fe ff 7f 60 f1 fe ef 50
00000f00: ff ff 4f 80 f2 ff af a0 ff ff 0e b0 f0 ff 5f 50
00000f10: ff ff 0c e0 f5 ff 6f a0 ff ff 0b f0 fb ff 0f 70
00000f20: ff ff 08 f4 ff ff 0f 70 ff ff 07 f7 ff ff 0c 80
00000f30: ff ff 04 f5 ff ff 0a a0 ff ff 00 f8 ff fc 08 00
00000f40: fd ef 00 f6 df a0 07 d0 ef ff 00 f8 ef fe 05 f5
00000f50: ff ff 00 fc ff ff 04 f0 ff ff 60 fe ff ff 03 f0
00000f60: cf ff 00 b0 ff ff 00 a0 ff ef 00 b0 ff bf 00 c0
00000f70: ff af 00 f0 fd df 00 b0 ff 8f 00 f0 fd df 00 c0
00000f80: ff 5f 00 d0 ff ff 00 d0 ef 8f 00 e0 ff ff 00 e0
00000f90: 48 8f 00 f0 ff ff 00 b0 af af 00 f1 ff ff 01 c0
00000fa0: ff ef 00 f3 fe ff 04 c0 ff df 00 f5 fd ff 00 c0
00000fb0: ff df 00 f8 fe fd 03 b0 ff bf 00 fa ff ff 05 00
00000fc0: ff bf 00 fb fe ff 05 80 df bf 00 ff f5 ff 0a 60
00000fd0: ca 9f 00 cf e0 ff 0f 00 fe af 00 df d0 ff 0f 00
00000fe0: fe cf 00 ff 90 ff 0f 00 fc df 00 fe 10 fe 0c 00
00000ff0: ea 6e 00 fa 20 fe 0d 00 c2 4a 00 f4 00 ec 0e 00
00001000: b0 9a 00 f1 e4 77 88 98 8a bb 07 00 00 78 88 99
00001010: aa bb ac 94 aa 28 99 73 46 cb cc fc dc 52 02 00
00001020: 60 cc bb db dd 70 89 77 b9 dd bc ed dd db dd dd
00001030: dc ee ee ee 7b db dd cd 75 06 03 00 00 d7 cd 0a
00001040: 00 00 00 00 00 dc 29 00 00 00 60 bb bb 2b 00 50
00001050: fe ff ff ff ff 00 00 e9 ff ef ff ff ff d9 7a f9
00001060: ff ff ff ff fe fe cf b0 ba bc dd 79 f6 de 09 00
00001070: 00 00 00 00 00 09 00 00 00 00 00 00 00 00 d7 ff
00001080: ad fe ff 7c 06 fb ff ff ff ff ff ff ff fe ff ef
00001090: ff ff ff ff ff fe ff ff fe dd ff fc ff dd de 9a
000010a0: 00 00 00 20 ea 8c 01 00 00 00 00 00 00 00 00 00
000010b0: 20 45 01 00 00 50 b9 aa 8a b8 cd fc ed dc dd 8c
000010c0: 18 a7 bd dc fe 9d bc bb 59 b8 cd ee ff dc cc bc
000010d0: bb ba cb cd ee dd cd bc 58 00 00 00 40 ec 9c 69
000010e0: 00 00 00 00 00 bd 05 00 81 97 b8 cd 7a 32 00 d6
000010f0: ee ee ef ff ff ed ee ee ee ee ee ff ff ed 5c ed
00001100: ff fe fe ff ff eb 8d fe ee ae 08 86 14 dc ed 9b
00001110: 55 06 00 00 00 dc 2b 00 00 00 00 00 60 7d 00 00
00001120: 00 a4 ba c9 ff 09 00 71 cb cc dc ce fd 00 60 bb
00001130: 9a b9 cc dd ee 90 ec bc 89 c9 cd fd ee d9 dd ab
00001140: 17 a8 39 30 d8 dc bb bd 37 02 00 00 00 cc dc 7c
00001150: 00 00 00 00 00 dc ac 10 00 40 04 00 00 ee 0b 00
00001160: 50 dc ef ee cf bd 00 40 fb de ee ef ab 08 00 ea
00001170: ee cf ed ee ad 00 91 ed bd ee ee fe fe 60 ee ee
00001180: ef ef ff ff cf e5 de dd ee ee 6b 83 02 cd ec ed
00001190: ed 3c 00 00 00 dc dc ed ab 02 00 81 c9 cd dd ec
000011a0: 0b 00 d1 ed ee dd de cd 8c 74 eb de de dc ee d9
000011b0: dc cd ed ee ee db cd a5 aa da ee ee ee ed 0a 30
000011c0: 18 c8 ec ed 9c dd 00 91 ab ca cd 9d 00 cd 00 da
000011d0: cc c9 dd 0d 00 9e 40 dc dd ed ff 07 b4 0e d0 de
000011e0: de ed 7b a1 ee 07 e4 ed dd ee 03 fd ef 01 fb eb
000011f0: ee 0c 90 ce ec 60 ef ed df 02 c0 ff ff a0 bf ee
00001200: 0c 80 ee fd ff f4 ff fe 01 e6 ff ff ff fe fd 7f
00001210: 40 ff fe ff ff ff fe 01 b0 ef fd 6e c0 fe 7e 00
00001220: e7 ce ff 0b 60 ee 0b 00 ec ff ff 03 b3 fe 05 10
00001230: ab dd ae 10 fe ee 00 a0 47 db 0a a0 ff ce 00 ca
00001240: 19 c9 00 e1 fe 8d 00 dd 9a cc 00 d8 fe 4e 40 cd
00001250: dc 5c 10 fe fb 1e a0 df cd 0a b0 ff ff 0e d0 ef
00001260: ff 25 f7 ff ff 0d f2 ff ff 11 fe ff cf 07 fa ff
00001270: 8f 20 ff ff 0e 00 fc ff 1f 60 ff ff 0a 00 fe fe
00001280: 0e a0 8f ff 02 30 ff ff 0e f0 ff cf 00 60 de ff
00001290: 09 f4 ff af 30 b0 3f fb 09 f8 ff af 20 d0 09 fc
000012a0: 03 fb ff 9f 80 f4 69 fe 02 fd fb af a0 fa ff ff
000012b0: 00 fe ff af 30 fa ff bf 00 ff ff 0f a0 f9 ff 3f
000012c0: 00 fe ff 0e e0 fa ff 3f 10 ff ff 0d f5 fc be 7f
000012d0: b0 df fd 0d f8 fb ff 4f c0 ff ff 0a f8 fd ff 0e
000012e0: f0 ff ff 08 ff ff ff 0c f8 ff ff 00 ff ff ff 0e
000012f0: f0 ff ff 20 ff ff fe 0a f2 ef cf 70 ff ff ff 04
00001300: f5 ff af 80 cf ff ff 01 f2 ff 5f d0 ff ff ff 00
00001310: f2 ff 5f 80 ff fd ff 05 f0 ff 8f 90 ff e9 ff 07
00001320: e0 ff bf 60 ff ff ff 04 d0 fe de 80 ff ff ff 00
00001330: c1 fd af b0 ff ef ff 00 82 ec df 70 ff 8e fe 00
00001340: 00 e9 df 70 ff 6d fe 00 71 ca ff 46 ff ff ff 00
00001350: c4 fd ff 25 ff ff ff 04 d2 ff ff 08 fe ff ff 05
00001360: e0 ff ff 06 f8 ff fc 0a e0 ff fb 08 f0 ff ff 0e
00001370: d0 ff fa 0c a0 ff ff 0f 70 ff fc 0f 60 de ff 0c
00001380: 00 ff fd 0f 20 ff ff 0a 00 ff ff 4f 00 ff ff 0f
00001390: 00 ff ff 9f 00 ff ff 3f 00 fb ff ff 00 ff ff af
000013a0: 00 f2 ff ff 00 af ff ff 00 f0 ff ff 06 3f fe ff
000013b0: 02 f0 ff ff 07 0f f8 ff 08 d0 ff ff 08 0f f1 ff
000013c0: 1f 80 ff ff 0d 0b f0 ff 0f 10 ff ff 4f 0f f0 ff
000013d0: 3f 00 fd ff ef 0f f0 ff 9f 00 f6 ff ff 1f f0 ff
000013e0: cf 00 f0 ff ff 4f 30 ff ff 00 b0 ff fc 8f 00 fc
000013f0: ff 00 00 ff ff af 00 f8 ff 04 00 f4 ff 6f 00 c0
00001400: ff 09 00 f0 ff e5 00 00 00 20 56 97 aa ac 07 00
00001410: 00 00 30 98 c9 eb dc 7a 00 00 00 00 82 da cc cc
00001420: 9c 03 00 00 00 c0 ec dd cc ac 59 00 00 80 a8 cc
00001430: dd bd ed bd 07 00 00 80 db ab dc ed df 00 00 00
00001440: 10 02 99 ee ee 7d 47 00 00 00 00 ea ff ff fe df
00001450: 79 00 00 b0 fe ff fe ff ff af 00 00 b3 ff fe ff
00001460: ff ff df 03 00 d2 ff ff ff ff ff 7f 00 00 85 ba
00001470: ff ff ff ff be 00 00 00 70 fd ff ff ff 5f 00 00
00001480: 00 00 eb fc ff ff 8c da 6c 05 40 fd ff 7c ff ff
00001490: ff ff 0c 50 fe ff fd ff ff ff ff 09 00 e9 ec ff
000014a0: ff ff ff 9f 00 00 00 60 fc ff ff ff 6f 00 00 00
000014b0: 00 98 ff ff ff 2d 8b 00 00 00 c3 ff ff ff fe ce
000014c0: 00 00 00 e2 ff ff fd ec bd 08 00 00 fb ff fe ff
000014d0: ff ef 0d 00 00 fa 96 ea ff ff ff 07 00 80 00 00
000014e0: e9 ff fe ef 1c 00 6a 00 70 fe ff ff ff 04 fe ef
000014f0: 2a b3 ef ff f9 3e ce fd ff 49 f9 ff ff ef fe fe
00001500: ef 7f 50 ef ef ff 55 b6 fe 4f 00 a2 ff ff 00 00
00001510: d6 0a 00 00 f6 ff 76 66 db 0d 00 00 50 fd fe ee
00001520: de dd 0a 00 00 e3 fe ee cc de cd cd 0a 50 ce d9
00001530: ca cc cc dd be 00 dd ed bd 9b db fc ff 3d da ee
00001540: cc 1a c9 dd fc ff 00 b3 ab 27 c9 ee e7 ff 00 00
00001550: 00 00 40 ea ef ef 20 02 00 00 00 50 eb ef ee df
00001560: 04 00 00 00 b0 fe ed fe fe ef ee 02 00 f9 fe fe
00001570: ef ef ff bf 00 20 fe ff ff ef ce ff 3e 00 74 a4
00001580: de ee ff ee ce 05 00 00 b2 fe ff ee ee 9e 00 00
00001590: 00 b5 ee fd ee ef 58 20 04 00 b5 ed cd ff ed dd
000015a0: cd 06 00 d8 de fe cd dc bc ac 00 60 de ff ed ec
000015b0: dc ab 08 00 ed fd ed cd bb 8a 69 00 90 fd da cc
000015c0: ab 17 96 05 00 91 10 75 a9 37 a6 ab 01 00 00 a8
000015d0: bc 8b ca ec bd 00 dc ee cd cc dd dd fe 0b ed bb
000015e0: dd de dd ed ee bf ed bd ed ee ee ff ee ff ee ed
000015f0: bf 40 fd ef ee eb 9d e3 be 00 00 c8 ff ff 1c d0
00001600: da 00 b5 85 fd ff 05 e1 ff 02 fb bf fd ff 99 fe
00001610: ff 0b fc ff b1 ff fe ff ff 8c fe ff 05 f1 fa ef
00001620: ee ef ff ff 0a 80 fd ec ee ff ef ff 0d 00 ff fd
00001630: ef de fe fd 7f 00 fd ff ef df fe ad ff 00 fd ff
00001640: ff 2e ed ed ff 0c fe ef 5a 96 fd ff ff 5f bd 00
00001650: 00 00 e5 ff ff ff 0a 40 ba 03 a0 ff ff ff 00 e5
00001660: ff 6f 00 fd ff ff 30 ff ff fd 05 f3 ff ff d0 ff
00001670: ee e1 0f e0 ff ff e5 ff ff ff bf 90 ff ff fc ff
00001680: ef ff ff 20 ff ff ff ff ef ff ff 04 ff ff ff fd
00001690: 9c ff ff 0a ff ff ff ff 08 f4 ff 0e f8 ff ff ff
000016a0: 03 a0 ff 4f a0 ff ff ff 00 b0 ff af 00 ff ff ff
000016b0: 01 a0 ff ff 00 fb ff ff 05 90 ff ff 09 fa fe df
000016c0: 08 00 fe ff 0b f6 ff ff 0f 00 fe ff 0b f0 ff ff
000016d0: 9f 00 fd fb 0b f0 cf fd ff 01 f3 ff 3f f0 2f f9
000016e0: ff 0c e0 ff 0f f0 0d f6 ff 0f e0 ff 0f c0 1f f9
000016f0: ff af 90 ef 1f 60 0e e0 ff ff 00 1e 0e 00 6e e0
00001700: ff ff 00 fc 3f 00 be 90 ff ff 00 fc 9f 00 cf 70
00001710: ff ff 07 ff df 00 fe 50 ff ff 05 fe ff 00 fd 00
00001720: fe ff 06 fc ff 02 ff 02 eb fd 07 fa ff 07 fd 07
00001730: f6 ff 0b f6 f9 08 ff 0e e3 dd 0a f0 ff 0e fe 1e
00001740: e2 2d 1c d0 ff 0e fe 0f c0 ce ce 30 fd 0f fe 3f
00001750: 50 ef ff 00 fe 3f ff 8f 10 ff ff 04 fd bf ee bf
00001760: 00 ff ff 02 fc cf ff ff 00 ff ff 0d fb ff ff ff
00001770: 00 ff ff 0f f7 ff ff fc 03 f3 ff 3f f2 ff ff fa
00001780: 0d d0 ff cf f0 ff ff ff 0f 80 ff ff d0 ff fe ff
00001790: 8f 40 ff fc 71 ff f6 ff df 10 ff ff a8 ff f7 df
000017a0: ff 00 ff ff ff ff fb ff ff 03 fb ff ff ff f4 df
000017b0: fe 09 e0 ff ff ff d0 ff ff 0f a0 ff ef ff 90 ff
000017c0: ff 2f 10 fc ff f4 50 ff ff 5f 00 20 ff ff 00 fe
000017d0: ff df 00 00 fc ff 00 fb 8f ff 02 00 f8 ff 00 f1
000017e0: df ff 0f 00 fa ef 03 90 ff ff 1f 00 f7 ff 09 00
000017f0: c5 ff ef 00 d0 af 1f 00 a0 ff ff 00 70 ff df 00
00001800: 70 ec ff 00 00 fe e6 01 00 00 65 a8 db 02 00 bb
00001810: 04 00 40 b9 cb 0d 00 dc 9c 02 00 a2 cd be 00 cc
00001820: de ad 00 00 d9 e9 2f ed dd cd 2a 00 50 fe ff c7
00001830: cd bc 99 02 00 f7 ff 00 b6 9b 77 89 00 90 ff 00
00001840: 00 a8 17 a7 2d 00 fc 0c 00 30 88 ba ec 06 70 df
00001850: 06 00 80 dc fd 8f 00 fc df 02 00 e9 cf ff 0a fd
00001860: ff 9f 00 20 dc fe cf e8 ff ff 4f 00 a0 ee ff 40
00001870: fc df ff 09 00 e9 ff 00 c0 df fe 6f 00 90 df 08
00001880: 00 fc ff ff 0e 00 fd 8f 00 a0 fe ff df 00 d0 fe
00001890: 1d 00 e9 cd ff 0c 00 fe ff 01 b0 ff ff 8f 00 f7
000018a0: fe 0c 00 f9 ff ff 06 80 ee ce 03 80 fe ff 8f 00
000018b0: a0 bd 1c 00 e8 ff fe 08 00 aa 69 00 00 ec fe 9e
000018c0: 00 70 16 06 00 f6 ff fe 0b 00 97 7a 00 a0 ef fe
000018d0: df 01 b3 db 0b 00 f8 ef ff 0c 60 dc ce 00 a0 fb
000018e0: ff be 02 ea cd 09 00 14 ec ef 07 90 ce b6 00 00
000018f0: 70 fe 3f 00 7c f8 0b 02 00 d4 df 00 f5 9e af 9d
00001900: 00 20 ff 09 b0 ff ff ee 1e 00 ad 6f 00 fa ff ee
00001910: df 00 e0 ff 0c a0 fe ee eb 07 a0 fe af 10 ed ee
00001920: fe 0e 00 fa ff 02 e4 fa ff de 00 b2 fe 0c 90 70
00001930: fd de 0b 10 ed be 00 00 d4 ce 9d 00 e9 ff 0a 00
00001940: 40 cc 1a 03 e0 ce 5f 1c 00 d6 ab 1b 00 fd ff ee
00001950: 00 90 dc cc 00 f6 ff ed 0d 20 ec fd 0c b0 ef fe
00001960: ef 04 c5 ee 6e 00 ea fe ff af b0 ee fe 02 a0 fd
00001970: ff ef 9f df ec 3d 00 a1 ff ff 7f eb fe ef 00 20
00001980: fe ff df 72 fe ee 0d 00 f3 ff ff 08 ea ff 6f 03
00001990: a0 ff 9f 3f e2 ff ff 0b 00 fc ef ff 58 ff ff df
000019a0: 00 80 ee ff 1d fb ff fc 08 00 fd ff 3f d0 ff fe
000019b0: be 00 e6 ff bf d1 ef ce fe 4f 10 fe ff b3 df dd
000019c0: ff ef 00 fa ff 68 df c1 ff ff 05 a0 ff 0c fd 80
000019d0: ff ff 0d 20 fe 1f f4 00 e7 ff ff 00 fa 1f b0 00
000019e0: 90 ff ff 0c fb 1f 40 0a 20 fd ff 3f f9 bf 30 8e
000019f0: 00 f7 ff bf f9 3f 10 fe 03 90 ff ca ff 0f 00 ff
00001a00: 0e 00 fe fd ff 0d 00 fe cf 00 e0 ff ff 0f 00 fd
00001a10: fe 09 50 ff ff 2f 00 fd fc 0f 00 fb df 5e 00 fe
00001a20: ff df 00 60 8e fe 02 fa df ff 07 30 ec ff 4f f1
00001a30: 9f fb 0e 00 fd ff cf 70 ff ff 0f 00 ff df 06 30
00001a40: ff ff 1f 00 ff 1f 00 00 fb ff 8f 00 fe 00 30 00
00001a50: f3 ff ff 0b fd 0a e6 01 f3 ff ff 06 f6 08 fc 09
00001a60: c0 ff ff 0d f0 bf b3 0d 20 ff ff 0f 10 ff 02 1d
00001a70: 00 ff ff 4f 00 be 00 6f 00 fe ff 9f 00 7f f6 bf
00001a80: 00 fc ff df 00 ff ff be 00 fa ff cf 00 ff ff ff
00001a90: 01 f7 ff 9f 00 f1 ff ff 01 f0 ff 8f 00 f0 ff ff
00001aa0: 04 f0 ff 4f 00 70 9f f6 06 d0 ff 1f 00 00 9d fc
00001ab0: 0b 50 ff 1f 00 00 f5 ff 0e 10 7f 0a 00 00 fe ff
00001ac0: 0f 00 1a ac 00 00 f9 ff 0f 00 fa ff 00 00 d2 ff
00001ad0: 3f 00 fb ff 01 00 c0 ff 6f 00 f7 ff 08 00 00 ff
00001ae0: 8f 00 f7 ff 0d 00 a0 ff ef 00 fb ff 08 00 f0 ff
00001af0: ef 00 f3 ff 0b 00 f0 ff bf 00 f0 ff 0f 00 f0 fe
00001b00: ff 00 b0 ff 0f 00 e0 fb ff 00 80 ff 0f 00 f0 f9
00001b10: ff 00 40 ff 3f 00 f2 f7 ff 00 70 ff 5f 00 f0 f5
00001b20: ff 02 40 ff 9f 00 c0 f1 ff 00 20 ff af 00 f0 f0
00001b30: fc 05 00 cf af 00 f0 e0 ff 0d 00 ff ff 00 60 b0
00001b40: ff 0f 00 ff ff 00 00 10 ff 0f 00 fb ff 02 00 00
00001b50: ff 0f 00 f8 ff 01 00 00 ba 0f 00 f0 ff 03 00 00
00001b60: b0 1f 00 f0 ff 0a 00 00 f3 ef 00 f0 ff 0c 00 00
00001b70: f0 ff 02 f0 ff 3f 00 00 d0 ff 09 b0 ff af 00 02
00001b80: c0 ff 0e 10 ff ff 01 0a a0 ff 0f 00 f3 ff 09 0c
00001b90: 00 ff 2f 00 a0 ff 3f 0a 00 ff fe 00 30 ff 7f 0f
00001ba0: 00 9d f2 05 00 ff 6f 1f 00 fc fd 0f 00 ff ff 3f
00001bb0: 00 fc ff 6f 00 fc ff 0f 00 fa ff ff 00 f0 ff 0e
00001bc0: 00 f0 2f fa 08 00 f1 9f 00 f0 ff f5 2f 00 f0 cf
00001bd0: 00 b0 ff fc bf 00 00 ef 00 00 fe ff ff 01 00 fe
00001be0: 04 00 f5 ff ff 0c 00 ff 07 00 d0 ff f4 0f 00 e9
00001bf0: 0e 00 60 ff ff 4f 00 dd 4d 00 00 fb fc 9f 00 ac
00001c00: 7b 00 00 f0 ff 8f 00 e7 e8 ce 2f 00 00 ec 80 00
00001c10: b0 ae ff 04 00 e0 dc 5f 00 d2 fe 3f 00 30 ff ff
00001c20: 00 80 ee ed 03 00 f8 ff 06 00 d9 cb 0b 00 e2 ce
00001c30: 7e 00 90 8b 59 00 00 cc fe 0a 20 48 97 00 00 a5
00001c40: fd af 00 02 84 0a 00 50 ff fe 0a 10 a8 9d 00 00
00001c50: e4 ed 7f 00 c9 dc 02 00 40 de dc 00 d2 ff 0d 00
00001c60: 00 e4 ff 08 80 fe bf 00 1c 10 fe 4e 00 fe ff 04
00001c70: ff 04 d1 ff 01 f9 ff 6f fe 3f 40 fe 0e d0 fd ff
00001c80: fe ff 03 ad af 70 ae fd ff fe 6d ba fc 04 8a fc
00001c90: ec ef df 89 fe 1e e2 fe 80 de fd 0e e5 6f a0 ed
00001ca0: 00 c5 df 8e 10 19 10 dc 00 00 cd de 0c 00 00 c4
00001cb0: 04 00 da bc 6c 00 00 70 3e 00 a0 8b a9 03 00 00
00001cc0: ce 00 00 04 96 8b 00 00 f8 0c 00 40 a8 db 05 00
00001cd0: ff ef 03 00 cb eb 0d 00 fe ee 0d 00 c4 dc 9e 00
00001ce0: fd de ae 00 60 dc cd 03 d1 df ea 01 00 db c9 3d
00001cf0: 10 fd ff 0a 00 d8 ce ee 00 d6 ee 0c 00 d0 de ec
00001d00: 04 d0 ff cf 00 40 9e ea 0c 60 fe ff 0b 00 aa da
00001d10: 4e 00 ec ee 1e 00 c0 db ee 02 e7 ec 8d 00 80 dc
00001d20: ee 0e b0 ce db 01 10 ab de be 00 cb bb 07 00 12
00001d30: d9 ee 00 c8 5a 0a 00 90 b0 dd 07 30 a9 3a 00 80
00001d40: 30 bc 0b 00 98 9a 00 10 04 92 8d 00 95 99 06 00
00001d50: 2c 60 cd 00 80 99 08 00 cd 50 cc 09 40 76 28 00
00001d60: ed 69 dc 0d 00 97 77 00 dc ae db 5d 00 66 87 04
00001d70: db bf ca 6c 00 74 87 07 e2 de cc 8d 00 80 88 38
00001d80: 80 bc dd 9c 00 50 86 88 00 c4 9a ec 00 00 a8 aa
00001d90: 00 80 cc ec 06 00 92 cb 09 00 dc e9 0d 00 80 79
00001da0: 2e 00 d8 ce 0c 00 00 00 cd 00 d0 cc 9d 00 00 b4
00001db0: fe 00 a0 cb cb 00 00 a2 fd 09 10 8a ba 09 00 90
00001dc0: fd 0f 00 17 b9 1a 00 70 fe 5e 00 94 ab bd 00 20
00001dd0: ff df 00 b0 dc ed 02 00 ff fc 00 b0 ae ea 0a 00
00001de0: ff ff 09 40 fe ee 0d 00 ff ff 0c 00 fc ed 9f 00
00001df0: ef ff 0e 00 e6 7f 9c 00 ed ff 1f 00 d0 cf bd 00
00001e00: e4 ff 4d 00 60 ef fd 05 80 ff 77 00 00 fe fe 0a
00001e10: 70 fb ff 09 00 fc ff 1f 00 f5 ff 0f 00 f8 ef 0f
00001e20: 00 c0 ff af 00 90 ff 3e 00 50 ff ff 02 00 e6 0c
00001e30: ff ad ff ff 08 00 d2 be fc ff ff ff 0a 00 c3 ff
00001e40: e0 bf f9 2d 0e 00 a0 ff 90 15 c0 ff 2f 00 b0 fd
00001e50: 76 cc e4 cf ae 00 e0 fd 3c d8 96 7e fb 05 e0 ef
00001e60: 4d f8 fe 5f de 05 50 ff a7 b7 c8 ff ff 08 00 fd
00001e70: 40 29 40 ff ff 0e 00 fa 02 02 00 e9 2c 03 00 a9
00001e80: 0c 00 00 00 00 00 00 c0 6f 00 00 10 00 00 00 e1
00001e90: cf 00 00 f5 06 00 00 a0 7e 00 00 10 fd 04 00 90
00001ea0: dc 01 00 00 ff 01 00 a0 fb 02 00 00 bc 00 00 30
00001eb0: ff 01 00 00 ca 15 00 00 ff 00 00 00 fa 08 00 00
00001ec0: ff 01 00 00 eb 1c 00 00 fe 04 00 00 f4 3e 00 00
00001ed0: bb 05 00 00 95 19 00 00 13 05 00 00 70 58 00 00
00001ee0: 00 00 00 00 02 00 00 00 ff 08 00 00 00 00 00 00
00001ef0: ff 2f 00 00 00 00 00 00 ff 3c 00 00 00 00 00 00
00001f00: bf 17 00 00 00 10 15 00 bf df 00 00 20 ee 06 00
00001f10: 9f fb 00 00 fb ff 2e 00 af ff 0e 20 ff f7 0f 00
00001f20: ff ff 0c 60 ff ef 8f 00 fc ff 06 10 ff ff 7f 00
00001f30: ff ff 01 10 ff ff 2f 00 ff fe 07 70 ff ff 3f 00
00001f40: ff ff 0f 00 ff ff 2f 00 ff ae 07 d0 ff ef 1f 00
00001f50: ff bf 04 90 ff ff 0c 00 b8 ff 0d 10 ff ff 07 00
00001f60: c3 ff 0e 00 fd fe 0d 00 f7 ff 09 00 ff ff 08 00
00001f70: ff ff 0f 50 ff fe 05 00 a2 ff 1f f0 ff ef 02 10
00001f80: 00 fe af f2 ff ff 00 00 00 fa ce ff ff bf 00 00
00001f90: 00 f4 ef ef ff 3f 00 20 00 c0 ff ff ff 0e 00 60
00001fa0: 01 00 fe df f7 0b 00 50 0e 00 30 ff f0 0b 00 90
00001fb0: ef 00 00 f5 ff 0f 00 c0 ff 06 00 f0 ff 2f 00 d0
00001fc0: fe 0f 00 00 ff 8f 00 70 ff ff 00 50 ff 3f 00 f8
00001fd0: ff ff 07 00 ff 6f 89 ff fc 7f 0f 00 d0 e1 cf ff
00001fe0: c0 ff 9f 00 00 c2 df cf 00 fd ff 00 00 60 97 fd
00001ff0: 00 f5 ff 05 00 00 10 72 00 a0 fc 0f 00 00 00 00
00002000: 00 00 d1 0c 00 00 00 00 de 44 06 56 00 32 00 3f
00002010: 00 40 00 45 00 39 00 41 00 67 00 6d 00 0c 01 2d
00002020: 01 76 01 76 02 44 04 39 08 df 62 10 66 51 15 05
00002030: 33 72 80 00 81 00 82 01 83 10 84 00 85 22 86 03
00002040: 87 01 88 01 89 02 8a 05 8b 2f 8c 2a 8d 00 8e 02
00002050: 8f 32 90 00 91 56 92 14 93 00 94 07 95 00 96 1f
00002060: 97 08 98 22 99 0c 9a 0e 9b 00 9c 00 9d 45 9e 00
00002070: 9f 00 a0 13 a1 03 a2 00 a3 00 a4 00 a5 00 a6 00
00002080: a7 08 a8 00 a9 40 aa 00 ab 00 ac 00 ad 00 ae 00
00002090: af 00 b0 00 b1 00 b2 00 b3 00 b4 05 b5 00 b6 00
000020a0: b7 00 b8 00 b9 00 ba 00 bb 00
UrbLink = 00000000
@juvenn
Copy link
Author

juvenn commented Apr 24, 2011

To reach the threshold of 10 minutiae of NBIS, I've enlarge the dimension by 2x.

@juvenn
Copy link
Author

juvenn commented Oct 25, 2013

For up-to-date progress, please checkout juvenn/aes3500.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment