diff options
author | Karl Kurbjun <kkurbjun@gmail.com> | 2009-12-02 04:30:08 +0000 |
---|---|---|
committer | Karl Kurbjun <kkurbjun@gmail.com> | 2009-12-02 04:30:08 +0000 |
commit | 30c3382a48904b4620d6803ea55f615748b5c231 (patch) | |
tree | 67fc628808bf1c317bd9b2e19ae8d0f744ee6ff2 /firmware/target | |
parent | f0092e739e9810903812f7cf131ebc66d96d18bf (diff) |
M:Robe 500: Improve audio DMA shutdown for Pause/Stop and significantly reduce the size of the DSP code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23817 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target')
-rw-r--r-- | firmware/target/arm/tms320dm320/dsp-dm320.c | 6 | ||||
-rw-r--r-- | firmware/target/arm/tms320dm320/dsp/arm.c | 24 | ||||
-rw-r--r-- | firmware/target/arm/tms320dm320/dsp/arm.h | 3 | ||||
-rw-r--r-- | firmware/target/arm/tms320dm320/dsp/dma.c | 267 | ||||
-rw-r--r-- | firmware/target/arm/tms320dm320/dsp/dma.h | 5 | ||||
-rw-r--r-- | firmware/target/arm/tms320dm320/dsp/dsp-image.h | 106 | ||||
-rw-r--r-- | firmware/target/arm/tms320dm320/dsp/ipc.h | 6 | ||||
-rw-r--r-- | firmware/target/arm/tms320dm320/dsp/linker.cmd | 36 | ||||
-rw-r--r-- | firmware/target/arm/tms320dm320/dsp/main.c | 10 | ||||
-rw-r--r-- | firmware/target/arm/tms320dm320/dsp/tsc2100.c | 10 | ||||
-rw-r--r-- | firmware/target/arm/tms320dm320/dsp/vectors.asm | 8 | ||||
-rw-r--r-- | firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c | 2 |
12 files changed, 241 insertions, 242 deletions
diff --git a/firmware/target/arm/tms320dm320/dsp-dm320.c b/firmware/target/arm/tms320dm320/dsp-dm320.c index f729cc4e90..5f0c997bd2 100644 --- a/firmware/target/arm/tms320dm320/dsp-dm320.c +++ b/firmware/target/arm/tms320dm320/dsp-dm320.c @@ -37,10 +37,8 @@ static void dsp_status(void) DEBUGF("dsp_status(): clkc_hpib=%u clkc_dsp=%u", !!(IO_CLK_MOD0 & (1 << 11)), !!(IO_CLK_MOD0 & (1 << 10))); - DEBUGF("dsp_status(): irq_dsphint=%u 7fff=%04x scratch_status=%04x" - " acked=%04x", - (IO_INTC_IRQ0 >> IRQ_DSPHINT) & 1, DSP_(0x7fff), DSP_(_status), - DSP_(_acked)); + DEBUGF("dsp_status(): irq_dsphint=%u 7fff=%04x scratch_status=%04x", + (IO_INTC_IRQ0 >> IRQ_DSPHINT) & 1, DSP_(0x7fff), DSP_(_status)); #define B(f,w,b,m) if ((w & (1 << b)) == 0) \ strcat(f, "!"); \ strcat(f, #m "|"); diff --git a/firmware/target/arm/tms320dm320/dsp/arm.c b/firmware/target/arm/tms320dm320/dsp/arm.c index a2c19c7f62..e0df31c7a1 100644 --- a/firmware/target/arm/tms320dm320/dsp/arm.c +++ b/firmware/target/arm/tms320dm320/dsp/arm.c @@ -28,17 +28,27 @@ volatile struct ipc_message status; -extern int waiting; -volatile int acked; +#if defined(HAVE_DEBUG) +static int acked; +#endif + interrupt void handle_int0(void) { IFR = 1; + +#if defined(HAVE_DEBUG) acked = 1; +#endif + waiting = 0; if(dma0_stopped==0) { if(!(DMPREC&0x01)) { + /* Give the HPIB access to refill first */ + rebuffer(); + + /* Start the MCBSP DMA */ DMPREC |= 1; audiohw_start(); } @@ -47,15 +57,20 @@ interrupt void handle_int0(void) { rebuffer(); } } + else + { + rebuffer(); + } } -void startack(void) +#if defined(HAVE_DEBUG) +static void startack(void) { acked = 0; int_arm(); } -void waitack(void) +static void waitack(void) { /* Wait until ARM has picked up data. */ while (!acked) @@ -78,3 +93,4 @@ void debugf(const char *fmt, ...) { acked = 2; } +#endif diff --git a/firmware/target/arm/tms320dm320/dsp/arm.h b/firmware/target/arm/tms320dm320/dsp/arm.h index 88b552c2ef..ff4a9a1c51 100644 --- a/firmware/target/arm/tms320dm320/dsp/arm.h +++ b/firmware/target/arm/tms320dm320/dsp/arm.h @@ -26,9 +26,6 @@ extern volatile struct ipc_message status; -void startack(void); -void waitack(void); - void debugf(const char *fmt, ...); inline void int_arm(void) { diff --git a/firmware/target/arm/tms320dm320/dsp/dma.c b/firmware/target/arm/tms320dm320/dsp/dma.c index 430cc909f7..590b35de80 100644 --- a/firmware/target/arm/tms320dm320/dsp/dma.c +++ b/firmware/target/arm/tms320dm320/dsp/dma.c @@ -23,185 +23,208 @@ #include "registers.h"
#include "arm.h"
-#include "dma.h"
+#include "ipc.h" + +/* Size of data buffer in words (16 bit) */ +#define DSP_BUFFER_SIZE (0x1000) -/* This is placed at the right (aligned) address using linker.cmd. */
+/* Put the "data" buffer in it's own .dma section so that it can + * be handled in the linker.cmd. */
#pragma DATA_SECTION (data, ".dma") -#define DSP_BUFFER_SIZE PCM_SIZE/2 - -/* This is the buffer on the DSP side used for SARAM to McBSP (IIS) */
-signed short data[DSP_BUFFER_SIZE];
+/* This is the "data" buffer on the DSP side used for SARAM to McBSP (IIS) */
+static signed short data[DSP_BUFFER_SIZE];
-/* These two describe the location of the buffer on the ARM (set in DSPHINT - * and dspinit) - */
+/* These two describe the location of the buffer on the ARM (set in DSPHINT) */
volatile unsigned short sdem_addrh;
volatile unsigned short sdem_addrl; -/* This is the size of the ARM buffer (set in DSPHINT and dspinit) */ +/* This is the size of the ARM buffer (set in DSPHINT) */ volatile unsigned short sdem_dsp_size; /* These two variables keep track of the buffer level in the DSP, dsp_level, - * (SARAM to McBSP) and the level on the ARM buffer (sdem_level). - */ -unsigned short dsp_level=0; -unsigned short sdem_level=0; + * (SARAM to McBSP) and the level on the ARM buffer (sdem_level). + * sdem_level is used in the main firmware to keep track of the current + * playback status. dsp_level is only used in this function. */ +static unsigned short dsp_level; +volatile unsigned short sdem_level; /* This is used to keep track of the last SDRAM to SARAM transfer */ -unsigned short last_size; +static unsigned short last_size; /* This tells us which half of the DSP buffer (data) is free */ -unsigned short dma0_unlocked; +static unsigned short dma0_unlocked; -volatile unsigned short dma0_stopped=1;
+/* This is used by the ARM to flag playback status and start/stop the DMA + * transfers. */ +volatile unsigned short dma0_stopped;
-short waiting=0; -/* rebuffer sets up the next SDRAM to SARAM transfer and tells the ARM when it - * is done with a buffer. - */ - -/* Notes: The upper limit on larger buffers is the size of a short. If larger +/* This is used to effectively flag whether the ARM has new data ready or not */ +short waiting; + + +/* rebuffer sets up the next SDRAM to SARAM transfer and tells the ARM when DMA + * needs a new buffer. + * + * Note: The upper limit on larger buffers is the size of a short. If larger * buffer sizes are needed the code on the ARM side needs to be changed to * update a full long. */ void rebuffer(void) { - unsigned long sdem_addr; - - if(dma0_stopped==1) /* Stop */ - { - DMPREC&=0xFFFE; /* Stop MCBSP DMA0 */ - audiohw_stop(); - DMSFC0 = 2 << 12 | 1 << 11; - sdem_level=0; - return; - } - - if(dsp_level==DSP_BUFFER_SIZE || sdem_level==sdem_dsp_size) - { - if(dma0_stopped==2) /* Pause */ - { - DMPREC&=0xFFFE; /* Stop MCBSP DMA0 */ - audiohw_stop(); - return; - } - } - - /* If the sdem_level is equal to the buffer size the ARM code gave - * (sdem_dsp_size) then reset the size and ask the arm for another buffer - */ - if(sdem_level==sdem_dsp_size) - { - sdem_level=0; - - /* Get a new buffer (location and size) from ARM */ - status.msg = MSG_REFILL; - waiting=1; -
- startack(); - } - - if(!waiting) - { - /* Size is in bytes (but forced 32 bit transfers */ - if( (dsp_level + (sdem_dsp_size - sdem_level) ) > DSP_BUFFER_SIZE) - { - last_size = DSP_BUFFER_SIZE-dsp_level; - } - else - { - last_size = sdem_dsp_size-sdem_level;
- } - - /* DSP addresses are 16 bit (word) */
- DSP_ADDRL = (unsigned short)data + (dma0_unlocked >> 1) + (dsp_level>>1);
- DSP_ADDRH = 0; - - /* SDRAM addresses are 8 bit (byte) - * Warning: These addresses are forced to 32 bit alignment! - */ - sdem_addr = ((unsigned long)sdem_addrh << 16 | sdem_addrl) + sdem_level; - SDEM_ADDRL = sdem_addr & 0xffff; - SDEM_ADDRH = sdem_addr >> 16; + unsigned long sdem_addr; + + if(dma0_stopped==1 || dma0_stopped==2) /* Stop / Pause */ + { + /* Stop MCBSP DMA0 */ + DMPREC &= 0xFFFE; + /* Shut the transmitter down */ + audiohw_stop(); + + /* Stop the HPIB transfer if it is running */ + DMA_TRG = 0; + + /* Reset the following variables for DMA restart */ + sdem_level = 0; + dsp_level = 0; + last_size = 0; + + return; + } - /* Set the size of the SDRAM to SARAM transfer (demac transfer) */ - DMA_SIZE = last_size; + /* If the sdem_level is equal to the buffer size the ARM code gave + * (sdem_dsp_size) then reset the size and ask the arm for another buffer + */ + if(sdem_level == sdem_dsp_size) + { + sdem_level=0; + + /* Get a new buffer (location and size) from ARM */ + status.msg = MSG_REFILL; + waiting=1; + + /* trigger DSPHINT on the ARM */
+ int_arm(); + } + + if(!waiting) + { + /* Size is in bytes (but forced 32 bit transfers). Comparison is + * against DSP_BUFFER_SIZE because it is in words and this needs to + * compare against half the total size in bytes. */ + if( dsp_level + sdem_dsp_size - sdem_level > DSP_BUFFER_SIZE) + { + last_size = DSP_BUFFER_SIZE - dsp_level; + } + else + { + last_size = sdem_dsp_size - sdem_level;
+ } + + /* DSP addresses are 16 bit (word). dsp_level is in bytes so it needs to + * be converted to words. */
+ DSP_ADDRL = (unsigned short)data + dma0_unlocked + (dsp_level >> 1);
+ DSP_ADDRH = 0; + + /* SDRAM addresses are 8 bit (byte) + * Warning: These addresses are forced to 32 bit alignment! + */ + sdem_addr = ((unsigned long)sdem_addrh << 16 | sdem_addrl) + sdem_level; + SDEM_ADDRL = sdem_addr & 0xffff; + SDEM_ADDRH = sdem_addr >> 16; + + /* Set the size of the SDRAM to SARAM transfer (demac transfer) */ + DMA_SIZE = last_size; - DMA_CTRL = 0;
- - /* These are just debug signals that are not used/needed right now */
- status.payload.refill._DMA_TRG = DMA_TRG;
- status.payload.refill._SDEM_ADDRH = SDEM_ADDRH;
- status.payload.refill._SDEM_ADDRL = SDEM_ADDRL;
- status.payload.refill._DSP_ADDRH = DSP_ADDRH;
- status.payload.refill._DSP_ADDRL = DSP_ADDRL;
- - /* Start the demac transfer */
- DMA_TRG = 1; - } + DMA_CTRL = 0;
+ + /* These are just debug signals that are not used/needed right now */
+ status.payload.refill._DMA_TRG = DMA_TRG;
+ status.payload.refill._SDEM_ADDRH = SDEM_ADDRH;
+ status.payload.refill._SDEM_ADDRL = SDEM_ADDRL;
+ status.payload.refill._DSP_ADDRH = DSP_ADDRH;
+ status.payload.refill._DSP_ADDRL = DSP_ADDRL;
+ + /* Start the demac transfer */
+ DMA_TRG = 1; + } } /* This interupt handler is for the SARAM (on DSP) to McBSP IIS DMA transfer. * It interupts at 1/2 empty and empty so that we can start filling a new buffer * from SDRAM when a half is free. dsp_level should always be full when this - * interupt occurs except for the initial start. - */
+ * interupt occurs except for the initial start. */
interrupt void handle_dma0(void) -{
+{ /* Byte offset to half-buffer locked by DMA0.
- 0 for top, PCM_SIZE/2 for bottom */
+ 0 for top, DSP_BUFFER_SIZE/2 for bottom */
unsigned short dma0_locked;
-
+
IFR = 1 << 6;
/* DMSRC0 is the beginning of the DMA0-locked SARAM half-buffer. */
- DMSA = 0x00 /* DMSRC0 */;
- dma0_locked = (DMSDN << 1) & (DSP_BUFFER_SIZE);
- dma0_unlocked = dma0_locked ^ (DSP_BUFFER_SIZE); + DMSA = 0x00 /* DMSRC0 (banked register, see page 133 of SPRU302B */; - dsp_level = 0; + /* Note that these address offsets (dma0_locked and dma0_unlocked are in + * words. */
+ dma0_locked = DMSDN & (DSP_BUFFER_SIZE>>1);
+ dma0_unlocked = dma0_locked ^ (DSP_BUFFER_SIZE>>1); + + dsp_level = 0; /* Start the SDRAM to SARAM copy */ - rebuffer();
+ rebuffer();
}
/* This interupt handler runs every time a DMA transfer is complete from SDRAM * to the SARAM buffer. It is used to update the SARAM buffer level * (dsp_level), the SDRAM buffer level (sdem_level) and to rebuffer if the dsp - * buffer is not full. - */
+ * buffer is not full. */
interrupt void handle_dmac(void) {
- IFR = 1 << 11; - - dsp_level+=last_size; - sdem_level+=last_size; - - if(dsp_level<DSP_BUFFER_SIZE) + IFR = 1 << 11; /* Clear interrupt */ + + /* dsp_level and sdem_level are in bytes */ + dsp_level += last_size; + sdem_level += last_size; + + /* compare to DSP_BUFFER_SIZE without a divide because it is in words and + * we want half the total size in bytes. */ + if(dsp_level < DSP_BUFFER_SIZE) { - rebuffer(); - }
+ rebuffer(); + }
}
-void dma_init(void) {
- /* Configure SARAM to McBSP DMA */ +void dma_init(void) { + /* Initialize some of the global variables to known values avoiding the + * .cinit section. */ + dsp_level = 0; + sdem_level = 0; + + last_size = 0; + dma0_unlocked = 0; + dma0_stopped = 1; + waiting = 0; +
+ /* Configure SARAM to McBSP DMA */ + /* Event XEVT0, 32-bit transfers, 0 frame count */
- DMSFC0 = 2 << 12 | 1 << 11; - + DMSFC0 = 2 << 12 | 1 << 11; + /* Interrupts generated, Half and full buffer. * ABU mode, From data space with postincrement, to data space with no * change */
- DMMCR0 = 1 << 14 | 1 << 13 |
- 1 << 12 | 1 << 8 | 1 << 6 | 1; + DMMCR0 = 1 << 14 | 1 << 13 |
+ 1 << 12 | 1 << 8 | 1 << 6 | 1; /* Set the source (incrementing) location */
DMSRC0 = (unsigned short)&data; - + /* Set the destination (static) location to the McBSP IIS interface */
DMDST0 = (unsigned short)&DXR20; - + /* Set the size of the buffer */
DMCTR0 = sizeof(data); diff --git a/firmware/target/arm/tms320dm320/dsp/dma.h b/firmware/target/arm/tms320dm320/dsp/dma.h index 5c483a503e..c55fc1507b 100644 --- a/firmware/target/arm/tms320dm320/dsp/dma.h +++ b/firmware/target/arm/tms320dm320/dsp/dma.h @@ -22,9 +22,10 @@ #ifndef DMA_H
#define DMA_H
-#include "ipc.h"
-
void dma_init(void); +void rebuffer(void); + +extern int waiting; extern volatile unsigned short dma0_stopped;
diff --git a/firmware/target/arm/tms320dm320/dsp/dsp-image.h b/firmware/target/arm/tms320dm320/dsp/dsp-image.h index 80f582d238..f7ec449a33 100644 --- a/firmware/target/arm/tms320dm320/dsp/dsp-image.h +++ b/firmware/target/arm/tms320dm320/dsp/dsp-image.h @@ -20,94 +20,46 @@ * */ static const unsigned short _section_text[] = { - 0xe808, 0x75f8, 0x0008, 0x0280, 0xfc00, 0xf495, 0x4a08, 0x4a09, 0x4a0a, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a10, 0x4a11, 0x4a12, 0x4a13, 0x4a14, 0x4a15, 0x4a16, 0x4a17, 0x4a17, 0x4a19, 0x4a0e, 0x4a06, 0x4a07, 0x4a1a, 0x4a1d, 0x4a1b, 0x4a1c, 0x68f8, 0x0007, 0x7d3f, 0x69f8, 0x0007, 0x4000, 0x68f8, 0x001d, 0xfffc, 0x4818, 0x68f8, 0x0018, 0xfffe, 0x7711, 0x0001, 0x4a08, 0x7681, 0x0001, 0x76f8, 0x28de, 0x0001, 0x10f8, 0x28e6, 0x76f8, 0x28e7, 0x0000, 0xfa44, 0x00ca, 0xf495, 0xeeff, 0x7712, 0x0054, 0x960f, 0xf830, 0x00c8, 0x7711, 0x0054, 0x6981, 0x0001, 0xf074, 0x02e4, 0xf073, 0x00ca, 0xf074, 0x0130, 0xee01, 0x8a18, 0xf495, 0x8a1c, 0x8a1b, 0x8a1d, 0x8a1a, 0x8a07, 0x8a06, 0x8a0e, 0x8a19, 0x8a17, 0x8a17, 0x8a16, 0x8a15, 0x8a14, 0x8a13, 0x8a12, 0x8a11, 0x8a10, 0x8a0d, 0x8a0c, 0x8a0b, 0x8a0a, 0x8a09, 0x8a08, 0xf4eb, 0xeeff, 0x76f8, 0x28de, 0x0000, 0xf074, 0x0080, 0xee01, 0xfc00, 0x10f8, 0x28de, 0xf844, 0x00f7, 0xf4e1, 0xf495, 0x10f8, 0x28de, 0xf845, 0x00f1, 0xfc00, 0xeefb, 0x4818, 0xf000, 0x0006, 0x76f8, 0x288d, 0x0002, 0x8004, 0x7600, 0x0051, 0x1006, 0x8001, 0x1004, 0x8002, 0xf274, 0x0396, 0xf020, 0x288e, 0xf074, 0x00e5, 0xf074, 0x00ed, 0xee05, 0x76f8, 0x28de, 0x0002, 0xfc00, 0x4a11, 0x7711, 0x0026, 0x7712, 0x0001, 0x7681, 0x0010, 0x7713, 0x0001, 0x7711, 0x0000, 0xeefe, 0x7681, 0xffff, 0xe501, 0xf495, 0xf6bb, 0xf074, 0x02b9, 0xf074, 0x028a, 0x7600, 0x2cad, 0xf074, 0x00f8, 0xf4e1, 0xf495, 0xf073, 0x012c, 0x4a11, 0x60f8, 0x28e2, 0x4000, 0xfa30, 0x013e, 0xf495, 0xeefe, 0x10f8, 0x28e3, 0x08f8, 0x28e1, 0xf844, 0x014b, 0x60f8, 0x28e6, 0x0002, 0xf820, 0x014b, 0x7711, 0x0054, 0x6881, 0xfffe, 0xf074, 0x02ef, 0xf073, 0x01b9, 0x10f8, 0x28e3, 0x08f8, 0x28e1, 0xf844, 0x015c, 0x76f8, 0x28e3, 0x0000, 0x76f8, 0x288d, 0x0003, 0x76f8, 0x28e7, 0x0001, 0xf074, 0x00e5, 0x10f8, 0x28e7, 0xf844, 0x01b9, 0x10f8, 0x28e1, 0x00f8, 0x28e2, 0x08f8, 0x28e3, 0x8811, 0xf495, 0x7710, 0x4000, 0xf6a9, 0xf820, 0x0173, 0xf020, 0x4000, 0xf273, 0x0177, 0x08f8, 0x28e2, 0x10f8, 0x28e1, 0x08f8, 0x28e3, 0x80f8, 0x28e4, 0xf6b8, 0xf020, 0x8000, 0x6ff8, 0x28e5, 0x0c1f, 0x6ff8, 0x28e2, 0x0c1f, 0x75f8, 0x0008, 0x8002, 0xe800, 0x75f8, 0x0008, 0x8003, 0x10f8, 0x28df, 0xf1ef, 0xf3e1, 0x10f8, 0x28e0, 0xf2a0, 0x00f8, 0x28e3, 0x4e00, 0xf020, 0xffff, 0x5700, 0xf280, 0x75f8, 0x0008, 0x8000, 0x5600, 0xf0f0, 0x75f8, 0x0008, 0x8001, 0xe800, 0x75f8, 0x28e4, 0x8004, 0x75f8, 0x0008, 0x8005, 0x74f8, 0x288f, 0x8006, 0x74f8, 0x2890, 0x8001, 0x74f8, 0x2891, 0x8000, 0x74f8, 0x2892, 0x8003, 0xe801, 0x74f8, 0x2893, 0x8002, 0x75f8, 0x0008, 0x8006, 0xee02, 0x8a11, 0xfc00, 0xf495, 0x4a08, 0x4a09, 0x4a0a, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a10, 0x4a11, 0x4a12, 0x4a13, 0x4a14, 0x4a15, 0x4a16, 0x4a17, 0x4a17, 0x4a19, 0x4a0e, 0x4a06, 0x4a07, 0x4a1a, 0x4a1d, 0x4a1b, 0x4a1c, 0x68f8, 0x0007, 0x7d3f, 0x69f8, 0x0007, 0x4000, 0x68f8, 0x001d, 0xfffc, 0x4818, 0x68f8, 0x0018, 0xfffe, 0x7711, 0x0001, 0x4a08, 0x7681, 0x0040, 0x7711, 0x0055, 0x7681, 0x0000, 0x7711, 0x0057, 0x6f81, 0x0c41, 0xeeff, 0xf030, 0x4000, 0x8000, 0xf020, 0x4000, 0x60f8, 0x28e6, 0x0001, 0x1c00, 0x76f8, 0x28e2, 0x0000, 0xfa20, 0x0212, 0x80f8, 0x28e5, 0x7711, 0x0054, 0x6881, 0xfffe, 0xf074, 0x02ef, 0x7711, 0x0055, 0x7681, 0x0003, 0x7711, 0x0057, 0x7681, 0x2800, 0x76f8, 0x28e3, 0x0000, 0xf073, 0x0214, 0xf074, 0x0130, 0xee01, 0x8a18, 0xf495, 0x8a1c, 0x8a1b, 0x8a1d, 0x8a1a, 0x8a07, 0x8a06, 0x8a0e, 0x8a19, 0x8a17, 0x8a17, 0x8a16, 0x8a15, 0x8a14, 0x8a13, 0x8a12, 0x8a11, 0x8a10, 0x8a0d, 0x8a0c, 0x8a0b, 0x8a0a, 0x8a09, 0x8a08, 0xf4eb, 0xf495, 0x4a08, 0x4a09, 0x4a0a, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a10, 0x4a11, 0x4a12, 0x4a13, 0x4a14, 0x4a15, 0x4a16, 0x4a17, 0x4a17, 0x4a19, 0x4a0e, 0x4a06, 0x4a07, 0x4a1a, 0x4a1d, 0x4a1b, 0x4a1c, 0x68f8, 0x0007, 0x7d3f, 0x69f8, 0x0007, 0x4000, 0x68f8, 0x001d, 0xfffc, 0x4818, 0x68f8, 0x0018, 0xfffe, 0x7711, 0x0001, 0x4a08, 0x7681, 0x0800, 0x10f8, 0x28e4, 0x00f8, 0x28e2, 0x80f8, 0x28e2, 0x7710, 0x4000, 0x7211, 0x28e2, 0x10f8, 0x28e4, 0xf5a9, 0xeeff, 0x00f8, 0x28e3, 0xfa20, 0x026f, 0x80f8, 0x28e3, 0xf074, 0x0130, 0xee01, 0x8a18, 0xf495, 0x8a1c, 0x8a1b, 0x8a1d, 0x8a1a, 0x8a07, 0x8a06, 0x8a0e, 0x8a19, 0x8a17, 0x8a17, 0x8a16, 0x8a15, 0x8a14, 0x8a13, 0x8a12, 0x8a11, 0x8a10, 0x8a0d, 0x8a0c, 0x8a0b, 0x8a0a, 0x8a09, 0x8a08, 0xf4eb, 0x4a11, 0x7711, 0x0055, 0x7681, 0x0003, 0x7711, 0x0057, 0x7681, 0x2800, 0x7711, 0x0055, 0x7681, 0x0004, 0x7711, 0x0057, 0x7681, 0x7141, 0x7711, 0x0055, 0x7681, 0x0000, 0x7711, 0x0057, 0x7681, 0x8000, 0x7711, 0x0055, 0x7681, 0x0001, 0x7711, 0x0057, 0x7681, 0x0022, 0x7711, 0x0055, 0x7681, 0x0002, 0x7711, 0x0057, 0x7681, 0x4000, 0x7711, 0x0054, 0x7681, 0x0080, 0x8a11, 0xfc00, 0x4a11, 0x7711, 0x0038, 0x7681, 0x0000, 0x7711, 0x0039, 0x7681, 0x0000, 0x7711, 0x0038, 0x7681, 0x0001, 0x7711, 0x0039, 0x7681, 0x0030, 0x7711, 0x0038, 0x7681, 0x000e, 0x7711, 0x0039, 0x7681, 0x0002, 0x7711, 0x0038, 0x7681, 0x0004, 0x7711, 0x0039, 0x7681, 0x00a0, 0x7711, 0x0038, 0x7681, 0x0005, 0x7711, 0x0039, 0x7681, 0x0000, 0x8a11, 0xfc00, 0x4a11, 0x7711, 0x0038, 0x7681, 0x0001, 0x7711, 0x0039, 0x6981, 0x0001, 0x8a11, 0xfc00, 0x4a11, 0x7711, 0x0038, 0x7681, 0x0001, 0x7711, 0x0039, 0x6881, 0xfffe, 0x8a11, 0xfc00, 0xf7be, 0xf6b9, 0xf4a0, 0xf6b7, 0xf6b5, 0xf6b6, 0xf7b8, 0x7718, 0x188d, 0x6bf8, 0x0018, 0x0fff, 0x68f8, 0x0018, 0xfffe, 0xf020, 0x2dbb, 0xf100, 0x0001, 0xf84d, 0x0326, 0xf6b8, 0xf495, 0xf020, 0x2dbb, 0xf073, 0x0320, 0x7ef8, 0x0012, 0xf000, 0x0001, 0x47f8, 0x0011, 0x7e92, 0x00f8, 0x0011, 0xf000, 0x0001, 0x7ef8, 0x0011, 0xf000, 0x0001, 0x6c89, 0x0315, 0xf7b8, 0xeefc, 0xf020, 0xffff, 0xf100, 0x0001, 0xf84d, 0x033e, 0xf6b8, 0xf495, 0xf020, 0xffff, 0xf273, 0x0338, 0x4e02, 0xf495, 0xf5e3, 0x5602, 0x7e00, 0x1100, 0xfa4c, 0x0336, 0x6b03, 0x0001, 0xf6b8, 0xee04, 0xf074, 0x0f88, 0xf074, 0x0344, 0x4a11, 0x4a16, 0xeeff, 0x10f8, 0x290b, 0xf4e3, 0x7211, 0x28e8, 0x10f8, 0x0011, 0xf845, 0x035c, 0x4811, 0xf000, 0x28e9, 0x8816, 0xf495, 0xf495, 0x10ee, 0xffff, 0xf4e3, 0x6ce9, 0xffff, 0x0356, 0x10f8, 0x290a, 0xf845, 0x0363, 0x10f8, 0x290a, 0xf4e3, 0x10f8, 0x2909, 0xf845, 0x036a, 0x10f8, 0x2909, 0xf4e3, 0x10f8, 0x290c, 0xf4e3, 0xf074, 0x0393, 0xf073, 0x036f, 0x4a11, 0x8811, 0x10f8, 0x290b, 0xf4e3, 0xf7b8, 0x10f8, 0x28e8, 0xf468, 0xf478, 0xf010, 0x0020, 0xf843, 0x0385, 0x10f8, 0x290c, 0xf4e3, 0xe801, 0xf073, 0x0391, 0x7212, 0x28e8, 0x10f8, 0x290c, 0x6bf8, 0x28e8, 0x0001, 0x70e2, 0x28e9, 0x0011, 0xf4e3, 0xe800, 0x8a11, 0xfc00, 0xf495, 0xf073, 0x0394, 0x4a11, 0xeef8, 0xf495, 0x710b, 0x0012, 0x110c, 0x710a, 0x0011, 0x7004, 0x0012, 0x8005, 0x7006, 0x0011, 0x4818, 0x7607, 0x0000, 0xf000, 0x0005, 0x8100, 0x8001, 0x7602, 0x03bd, 0x4818, 0x7603, 0x03d4, 0xf274, 0x0419, 0xf000, 0x0004, 0x4911, 0xf84d, 0x03ba, 0x7105, 0x0011, 0x7681, 0x0000, 0xee08, 0x8a11, 0xfc00, 0x4a11, 0xf495, 0x7102, 0x0011, 0x71e1, 0x0001, 0x0010, 0x71e1, 0x0002, 0x0012, 0xf5aa, 0xf820, 0x03cf, 0x7181, 0x0012, 0x8082, 0x6b81, 0x0001, 0x6be1, 0x0002, 0x0001, 0x8a11, 0xfc00, 0x4a11, 0xf110, 0x0001, 0x4a16, 0x8812, 0x4a17, 0x8913, 0xeefe, 0x7716, 0xffff, 0x7106, 0x0011, 0x11eb, 0x0001, 0xfa4c, 0x03e0, 0xf495, 0x6d96, 0x11e1, 0x0001, 0x8910, 0xf495, 0x71e1, 0x0002, 0x0013, 0xf5ab, 0xf820, 0x0407, 0x4813, 0xf520, 0x8910, 0xf495, 0xf495, 0xf6ae, 0xf820, 0x03fc, 0xf273, 0x03fd, 0xf495, 0x8917, 0xe767, 0x7000, 0x0012, 0x7001, 0x0017, 0x1081, 0xf074, 0x152d, 0x4817, 0x0081, 0x8081, 0x4816, 0x00e1, 0x0002, 0xee02, 0x80e1, 0x0002, 0x8a17, 0x4816, 0x8a16, 0x8a11, 0xfc00, 0xfc00, 0x80f8, 0x290b, 0xfc00, 0x80f8, 0x290c, 0xfc00, 0x4a11, 0x4a16, 0x4a17, 0xeef4, 0x8816, 0x1013, 0x8009, 0x1186, 0xf210, 0x0001, 0x8813, 0xf495, 0x7712, 0xffff, 0x7111, 0x0017, 0x7112, 0x0011, 0x10eb, 0x0001, 0xfa44, 0x042b, 0xf495, 0x6d92, 0x6ff8, 0x0012, 0x0e00, 0x800a, 0x4812, 0xfa45, 0x0513, 0x7604, 0x0000, 0x7605, 0x0000, 0x7606, 0x0000, 0x7607, 0xffff, 0xe925, 0x7608, 0x0000, 0x7186, 0x0012, 0x7182, 0x0012, 0x10f8, 0x0012, 0x08f8, 0x000b, 0xf845, 0x0465, 0x10f8, 0x0012, 0xf845, 0x0513, 0x1086, 0xf000, 0x0001, 0x4911, 0x8086, 0x8812, 0x7000, 0x0017, 0x10e2, 0xffff, 0xf5e3, 0x6b04, 0x0001, 0x7186, 0x0012, 0x7182, 0x0012, 0x6ce2, 0xffdb, 0x044d, 0x6b86, 0x0001, 0x4818, 0x7000, 0x0016, 0xf274, 0x0519, 0xf000, 0x0005, 0x4818, 0x7000, 0x0016, 0xf000, 0x0010, 0x8001, 0x4818, 0xf274, 0x056b, 0xf000, 0x0005, 0x7186, 0x0012, 0x1182, 0x7713, 0x004c, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf845, 0x04aa, 0x7713, 0x0068, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf845, 0x04a6, 0x7713, 0x006c, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf844, 0x04b3, 0x4812, 0xf000, 0x0001, 0x8812, 0x7086, 0x0012, 0x6082, 0x006c, 0xf830, 0x04a2, 0xf273, 0x04b2, 0x6905, 0x0040, 0xf273, 0x04ac, 0x6905, 0x0100, 0xf273, 0x04ac, 0x6905, 0x0020, 0x6905, 0x0080, 0x1086, 0xf000, 0x0001, 0x8812, 0xf495, 0x8086, 0x1182, 0x7712, 0x006e, 0x10f8, 0x000b, 0x8108, 0x08f8, 0x0012, 0xfa45, 0x04f0, 0x6b86, 0x0001, 0x7712, 0x0073, 0x10f8, 0x000b, 0x08f8, 0x0012, 0xf845, 0x04dd, 0x10f8, 0x290b, 0xf4e3, 0x4818, 0xf000, 0x0010, 0x8000, 0x4818, 0xf274, 0x073a, 0xf000, 0x0005, 0x7000, 0x0017, 0x1109, 0xf5e3, 0x0004, 0x8004, 0x10f8, 0x290c, 0xf4e3, 0xf073, 0x050c, 0x4818, 0x7000, 0x0017, 0xf000, 0x0010, 0x8001, 0x4818, 0xf000, 0x0004, 0x8002, 0x1009, 0x8003, 0x4818, 0xf274, 0x0632, 0xf000, 0x0005, 0xf073, 0x050c, 0xf020, 0x0160, 0x1805, 0x8812, 0xf495, 0xf495, 0x6ce2, 0xffc0, 0x0504, 0x6b10, 0x0001, 0x7110, 0x0012, 0xf7b8, 0x7182, 0x0012, 0xf273, 0x050c, 0x1004, 0x4e82, 0x6b10, 0x0001, 0x7110, 0x0012, 0x1004, 0x7182, 0x0012, 0x8082, 0x710a, 0x0010, 0x7186, 0x0012, 0xf5aa, 0xf830, 0x043a, 0x1004, 0xee0c, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0x8812, 0xf273, 0x0533, 0x7102, 0x0011, 0xf273, 0x0531, 0x6982, 0x0010, 0xf273, 0x0531, 0x6982, 0x0001, 0xf273, 0x0531, 0x6982, 0x0002, 0xf273, 0x0531, 0x6982, 0x0008, 0x6982, 0x0004, 0x6b81, 0x0001, 0x7181, 0x0013, 0xf7b8, 0x1183, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x002b, 0xf846, 0x0559, 0x7713, 0x002b, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf845, 0x0527, 0x7713, 0x0020, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf845, 0x052f, 0x7713, 0x0023, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf845, 0x052b, 0xf073, 0x0569, 0x7713, 0x002d, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf845, 0x0523, 0x7713, 0x0030, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf845, 0x051f, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x4a17, 0xeef6, 0xf495, 0x710e, 0x0011, 0x7181, 0x0012, 0x8816, 0x6082, 0x002a, 0xfa20, 0x0599, 0x710f, 0x0017, 0x1087, 0xf000, 0x0001, 0x8812, 0xf7b8, 0x8087, 0x1082, 0x80e6, 0x0001, 0x10e6, 0x0001, 0xf842, 0x058d, 0xf484, 0x80e6, 0x0001, 0x6986, 0x0001, 0x1081, 0xf000, 0x0001, 0x8812, 0xf495, 0x8081, 0x6082, 0x002e, 0xf830, 0x05de, 0xf073, 0x062d, 0xe782, 0x4812, 0xf010, 0x0001, 0x8813, 0xf495, 0xec09, 0x769b, 0x0000, 0x7181, 0x0013, 0xf7b8, 0x1183, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x0030, 0xf843, 0x05c6, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x003a, 0xf842, 0x05c6, 0x8192, 0x1081, 0xf000, 0x0001, 0x8813, 0xf495, 0x8081, 0x1183, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x0030, 0xf842, 0x05ae, 0x1000, 0xf844, 0x05d3, 0x7712, 0x002e, 0x10f8, 0x000b, 0x08f8, 0x0012, 0xf845, 0x05de, 0xf073, 0x062d, 0x4818, 0xf074, 0x0f9f, 0x80e6, 0x0001, 0x7181, 0x0012, 0x6082, 0x002e, 0xf820, 0x062d, 0x1081, 0xf000, 0x0001, 0x8812, 0xf495, 0x8081, 0x6082, 0x002a, 0xf830, 0x0622, 0xe782, 0x4812, 0xf010, 0x0001, 0x8813, 0xf495, 0xec09, 0x769b, 0x0000, 0x7181, 0x0013, 0xf7b8, 0x1183, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x0030, 0xf843, 0x0615, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x003a, 0xf842, 0x0615, 0x8192, 0x1081, 0xf000, 0x0001, 0x8813, 0xf495, 0x8081, 0x1183, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x0030, 0xf842, 0x05fd, 0x1000, 0xf845, 0x061d, 0x4818, 0xf074, 0x0f9f, 0xf073, 0x061e, 0xe800, 0xf273, 0x062d, 0x80e6, 0x0002, 0x1087, 0xf000, 0x0001, 0x8812, 0xf495, 0x8087, 0x1082, 0x80e6, 0x0002, 0x6b81, 0x0001, 0xee0a, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x4a17, 0xeefa, 0xf495, 0x8002, 0x100d, 0x710b, 0x0011, 0x8003, 0x710c, 0x0012, 0x1081, 0x710a, 0x0017, 0xf000, 0x0001, 0x8081, 0x8811, 0xf495, 0xf495, 0x1281, 0x8004, 0xf845, 0x072f, 0x7102, 0x0011, 0xf7b8, 0x71e1, 0x0002, 0x0011, 0x10f8, 0x0011, 0xf843, 0x0677, 0x1004, 0xf010, 0x0001, 0x8813, 0xf495, 0x7710, 0xffff, 0x10eb, 0x0001, 0xfa44, 0x065c, 0xf495, 0x6d90, 0xf5a9, 0xf820, 0x0677, 0x7005, 0x0011, 0x7102, 0x0011, 0x11e1, 0x0001, 0x10f8, 0x000b, 0xf468, 0x7105, 0x0011, 0xf478, 0x08f8, 0x0011, 0xf847, 0x0692, 0xf073, 0x0696, 0x1004, 0xf010, 0x0001, 0x8811, 0xf495, 0x7713, 0xffff, 0x10e9, 0x0001, 0xfa44, 0x067e, 0xf495, 0x6d93, 0x7102, 0x0011, 0x7005, 0x0013, 0x11e1, 0x0001, 0x10f8, 0x000b, 0xf468, 0xf478, 0x08f8, 0x0013, 0xf846, 0x0696, 0xf273, 0x0698, 0x7105, 0x0011, 0x8911, 0xf495, 0x4811, 0x0082, 0x8082, 0x4811, 0xf274, 0x15cd, 0xf000, 0x0001, 0x8816, 0x4808, 0xf845, 0x0735, 0xf7b8, 0xf495, 0x1105, 0xf768, 0xf778, 0x09f8, 0x0011, 0xe762, 0xf84a, 0x06cb, 0x7102, 0x0013, 0x961f, 0xf830, 0x06cb, 0x7105, 0x0010, 0x4916, 0xf4a9, 0xf310, 0x0001, 0x8913, 0xf830, 0x06c6, 0x4911, 0x0905, 0xf310, 0x0001, 0x891a, 0xf495, 0xf072, 0x06c5, 0x769b, 0x0020, 0x4911, 0x4812, 0x0905, 0xf600, 0x8812, 0x1105, 0xf640, 0x10f8, 0x0008, 0xf845, 0x06fa, 0x4812, 0xf010, 0x0001, 0x8813, 0x1004, 0xf010, 0x0001, 0x8814, 0xf640, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x06e8, 0x10ec, 0x0001, 0x809b, 0x10f8, 0x0008, 0xf845, 0x06e9, 0xf310, 0x0001, 0x8914, 0xf495, 0x7710, 0x0001, 0xf6ac, 0xfa20, 0x06fa, 0xf310, 0x0001, 0xf310, 0x0001, 0x891a, 0xf495, 0xf072, 0x06f9, 0x769b, 0x0000, 0x1105, 0x4812, 0xf600, 0xf768, 0xf778, 0x09f8, 0x0011, 0xf84a, 0x071b, 0x7102, 0x0013, 0x961f, 0xf820, 0x071b, 0x7105, 0x0010, 0xf4a9, 0xf010, 0x0001, 0x8812, 0xf830, 0x071b, 0x4910, 0x4811, 0xf620, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x071a, 0x769a, 0x0020, 0x4911, 0x4816, 0xf600, 0x8811, 0xf495, 0xf495, 0x7681, 0x0000, 0x7000, 0x0017, 0x1103, 0xf7e3, 0xf495, 0x4816, 0xf274, 0x1728, 0xf495, 0x4816, 0xf073, 0x0735, 0x7000, 0x0017, 0x1103, 0xf7e3, 0xf020, 0x2b68, 0xee06, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0xf120, 0x290d, 0x8811, 0x4a16, 0x4a17, 0x6fe1, 0x0001, 0x0e00, 0xeef6, 0x8817, 0xf495, 0x710e, 0x0013, 0xf200, 0x018f, 0x8004, 0xf210, 0x0001, 0x8812, 0x7605, 0x0000, 0x8006, 0xf070, 0x018f, 0x769a, 0x0020, 0x7104, 0x0012, 0x7682, 0x0000, 0xf120, 0x290d, 0x1004, 0xf7b8, 0xf010, 0x0001, 0x8107, 0x8004, 0x71e1, 0x0003, 0x0014, 0x11f8, 0x0014, 0xf768, 0xf778, 0xf310, 0x0064, 0x8812, 0xf84e, 0x07a7, 0xf495, 0x7715, 0x0064, 0x11f8, 0x0014, 0x09f8, 0x0015, 0xf84d, 0x07ea, 0x11f8, 0x0014, 0xf768, 0xf778, 0xf310, 0x0047, 0xf84e, 0x0795, 0xe947, 0x10f8, 0x0014, 0x08f8, 0x000b, 0xf845, 0x07fa, 0xe925, 0x10f8, 0x0014, 0x08f8, 0x000b, 0xf845, 0x07d8, 0xe945, 0x10f8, 0x0014, 0x08f8, 0x000b, 0xf845, 0x07fa, 0xf073, 0x0815, 0x7715, 0x0058, 0x11f8, 0x0014, 0x09f8, 0x0015, 0xf84d, 0x07ea, 0x7715, 0x0063, 0x11f8, 0x0014, 0x09f8, 0x0015, 0xf84d, 0x080a, 0xf073, 0x0815, 0x10f8, 0x0014, 0xf468, 0xf478, 0xf010, 0x0070, 0xf846, 0x07c8, 0x10f8, 0x0014, 0xf468, 0xf478, 0xf010, 0x006f, 0xf842, 0x07ea, 0xe742, 0x7710, 0x0002, 0x6dea, 0xff9b, 0xf6aa, 0xf820, 0x07fa, 0xe969, 0x10f8, 0x0014, 0x08f8, 0x000b, 0xf845, 0x07ea, 0xf073, 0x0815, 0xe975, 0x10f8, 0x0014, 0x08f8, 0x000b, 0xf845, 0x07ea, 0xe978, 0x10f8, 0x0014, 0x08f8, 0x000b, 0xf845, 0x07ea, 0xf073, 0x0815, 0x7713, 0x2b6f, 0x7107, 0x0012, 0xe510, 0x1183, 0x4812, 0xf84d, 0x08f2, 0x71eb, 0x0001, 0x0011, 0x6e81, 0x07e1, 0x709a, 0x0011, 0xf073, 0x08f2, 0x4818, 0xf000, 0x0005, 0x8000, 0x4818, 0xf000, 0x0004, 0x8001, 0x7002, 0x0013, 0xf274, 0x0d3e, 0xf495, 0x4811, 0xf073, 0x0815, 0x4818, 0xf000, 0x0005, 0x8000, 0x4818, 0xf000, 0x0004, 0x8001, 0x7002, 0x0013, 0xf274, 0x08f7, 0xf495, 0x4811, 0xf073, 0x0815, 0x1183, 0xf300, 0x0001, 0x8183, 0x8913, 0xf010, 0x0001, 0xe510, 0x8004, 0x6881, 0xfffd, 0x7181, 0x0012, 0x61f8, 0x0012, 0x0002, 0xfa20, 0x0842, 0x7716, 0x0000, 0x10e1, 0x0003, 0x7713, 0x0075, 0x11f8, 0x0008, 0x09f8, 0x0013, 0xf84d, 0x0842, 0x7713, 0x006f, 0x11f8, 0x0008, 0x09f8, 0x0013, 0xf84d, 0x0842, 0x7713, 0x0078, 0x11f8, 0x0008, 0x09f8, 0x0013, 0xf84d, 0x0842, 0x7713, 0x0058, 0x11f8, 0x0008, 0x09f8, 0x0013, 0xf84d, 0x0842, 0x7716, 0x0001, 0x1005, 0xf844, 0x0853, 0x10f8, 0x0016, 0xf845, 0x085b, 0x7104, 0x0012, 0x7682, 0x002b, 0x6b04, 0xffff, 0xf273, 0x085e, 0x7181, 0x0012, 0x7104, 0x0012, 0x7682, 0x002d, 0x6b04, 0xffff, 0x7181, 0x0012, 0x1005, 0xf844, 0x086d, 0x6c86, 0x086d, 0x61f8, 0x0012, 0x0004, 0xf820, 0x086d, 0x7104, 0x0012, 0x7682, 0x0020, 0x6b04, 0xffff, 0x7181, 0x0012, 0x61f8, 0x0012, 0x0001, 0xf830, 0x0885, 0x1007, 0x0804, 0xf7b8, 0xf000, 0x018f, 0x11f8, 0x0008, 0xf768, 0xf778, 0x09e1, 0x0001, 0xf84e, 0x0885, 0x4917, 0xf520, 0xf273, 0x0886, 0xf200, 0x0001, 0x1007, 0x8008, 0x1004, 0xf000, 0x0001, 0x8000, 0x7601, 0x0000, 0x7602, 0x0190, 0x1008, 0xf074, 0x150d, 0x8812, 0xf495, 0xe770, 0xf6aa, 0x8004, 0xf830, 0x08ad, 0xf010, 0x0002, 0x8812, 0x4817, 0x0804, 0xf000, 0x0001, 0x4808, 0xf845, 0x08ab, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x08aa, 0x769a, 0x0020, 0x7687, 0x0000, 0xe712, 0x960b, 0xf830, 0x08c7, 0x1107, 0x1008, 0xf620, 0xf010, 0x0001, 0x8812, 0xf495, 0x7710, 0xffff, 0xf4aa, 0xfa30, 0x08f1, 0x7106, 0x0011, 0x7312, 0x001a, 0xf072, 0x08c4, 0x7699, 0x0020, 0xf073, 0x08f1, 0x7107, 0x0010, 0x7108, 0x0013, 0xf4ab, 0xfa30, 0x08db, 0x7106, 0x0012, 0x4910, 0x4813, 0xf620, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x08da, 0x769a, 0x0030, 0x4816, 0x1a05, 0x8816, 0xf495, 0xf495, 0x6c86, 0x08e6, 0xe712, 0x960d, 0xf820, 0x08f1, 0xe731, 0xf4a9, 0xf830, 0x08f1, 0x7712, 0x290d, 0xe510, 0x7681, 0x0030, 0x7007, 0x0012, 0x1007, 0xee0a, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0x8812, 0xeefe, 0xf495, 0x7106, 0x0014, 0x1184, 0xf693, 0xf030, 0x0001, 0x7105, 0x0015, 0xf600, 0x7104, 0x0013, 0xf000, 0x0001, 0x8811, 0x7084, 0x0011, 0xf000, 0x0001, 0x5781, 0x8084, 0x56f8, 0x2b92, 0x4e00, 0xf274, 0x110b, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xfa42, 0x091f, 0x7711, 0x0000, 0x7711, 0x0001, 0x10f8, 0x0011, 0xfa45, 0x092a, 0x7083, 0x0011, 0xf274, 0x12ea, 0xf495, 0xf640, 0xf540, 0xf7b8, 0x71e2, 0x0003, 0x0011, 0x10f8, 0x0011, 0xf468, 0xf478, 0xf010, 0x0065, 0xf846, 0x0950, 0x7713, 0x0065, 0x10f8, 0x0011, 0x08f8, 0x0013, 0xf845, 0x0974, 0x7713, 0x0045, 0x10f8, 0x0011, 0x08f8, 0x0013, 0xf845, 0x0974, 0x7713, 0x0047, 0x10f8, 0x0011, 0x08f8, 0x0013, 0xf845, 0x0960, 0xf073, 0x097c, 0x7713, 0x0066, 0x10f8, 0x0011, 0x08f8, 0x0013, 0xf845, 0x096a, 0x7713, 0x0067, 0x10f8, 0x0011, 0x08f8, 0x0013, 0xf844, 0x097c, 0x7000, 0x0012, 0x7001, 0x0015, 0xf274, 0x0ae5, 0xf495, 0xf640, 0xf073, 0x097c, 0x7000, 0x0012, 0x7001, 0x0015, 0xf274, 0x097f, 0xf495, 0xf640, 0xf073, 0x097c, 0x7000, 0x0012, 0x7001, 0x0015, 0xf274, 0x09e7, 0xf495, 0xf640, 0xee02, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x4a17, 0x6bf8, 0x0018, 0xfe68, 0xf495, 0xf7b8, 0xe787, 0x11e7, 0x019c, 0x8912, 0x81e7, 0x0196, 0x11e2, 0x0002, 0x71e7, 0x019d, 0x0011, 0xf84a, 0x0998, 0x76e2, 0x0002, 0x0006, 0xe906, 0x8100, 0x4918, 0xf300, 0x0004, 0x8101, 0x4918, 0xf300, 0x0005, 0x8102, 0xf074, 0x12f8, 0xe783, 0x8814, 0x6deb, 0x0006, 0x1084, 0x8083, 0x10f8, 0x0008, 0xf845, 0x09b4, 0x71ec, 0x0001, 0x0012, 0x6e82, 0x09ad, 0x709b, 0x0012, 0x1004, 0x7181, 0x0016, 0x8000, 0x7601, 0x0001, 0x71e7, 0x0196, 0x0012, 0x10e2, 0x0002, 0x8002, 0x4818, 0x7003, 0x0011, 0xf274, 0x0b96, 0xf000, 0x0006, 0x7181, 0x0010, 0xf7ae, 0xe801, 0xf830, 0x09d4, 0x71e7, 0x0196, 0x0012, 0x960c, 0xf830, 0x09d4, 0xe800, 0x1104, 0x8100, 0x8001, 0x4818, 0x7002, 0x0011, 0xf274, 0x0cc3, 0xf000, 0x0006, 0x6bf8, 0x0018, 0x0198, 0xf495, 0xf495, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0xf7b8, 0x4a17, 0xee96, 0xf540, 0x716e, 0x0011, 0x71e1, 0x0002, 0x0012, 0x10f8, 0x0012, 0xfa42, 0x09fd, 0x716f, 0x0017, 0x7712, 0x0006, 0x76e1, 0x0002, 0x0006, 0x56f8, 0x2b94, 0x7716, 0x0000, 0x4e00, 0xf274, 0x110b, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf842, 0x0a55, 0x56f8, 0x2b96, 0x4e00, 0xf274, 0x110b, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf847, 0x0a31, 0x56f8, 0x2b92, 0x4e00, 0xf274, 0x110b, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf845, 0x0a6b, 0x56f8, 0x2b98, 0x4e00, 0xf274, 0x110b, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf843, 0x0a33, 0xf073, 0x0a47, 0x57f8, 0x2b96, 0x56f8, 0x2b9a, 0x4e00, 0xf274, 0x1277, 0x6d8e, 0xf640, 0xf540, 0x56f8, 0x2b98, 0x4e00, 0xf274, 0x110b, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf843, 0x0a33, 0x56f8, 0x2b9a, 0x4e00, 0xf274, 0x110b, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf842, 0x0a57, 0xf073, 0x0a6b, 0x57f8, 0x2b94, 0x56f8, 0x2b9a, 0x4e00, 0xf274, 0x112b, 0x6d96, 0xf640, 0xf540, 0x56f8, 0x2b9a, 0x4e00, 0xf274, 0x110b, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf842, 0x0a57, 0x4818, 0x7000, 0x0012, 0xf000, 0x0004, 0x8001, 0x4818, 0xf000, 0x0005, 0x8002, 0xf274, 0x12f8, 0xf495, 0xf640, 0xe783, 0x8814, 0x6deb, 0x0006, 0x1084, 0x8083, 0x10f8, 0x0008, 0xf845, 0x0a8a, 0x71ec, 0x0001, 0x0012, 0x6e82, 0x0a83, 0x709b, 0x0012, 0x6004, 0x0002, 0xf820, 0x0aa5, 0xe782, 0xf6b8, 0x6b04, 0xffff, 0x6dea, 0x0005, 0xf120, 0xffff, 0x10ea, 0x0001, 0xfa44, 0x0a96, 0xf300, 0x0001, 0x4818, 0xf000, 0x0005, 0xf600, 0x8812, 0xf495, 0x6d96, 0x7682, 0x0000, 0x10e1, 0x0003, 0x8000, 0x7001, 0x0017, 0xf274, 0x0c6f, 0xf495, 0x4816, 0x1004, 0x8000, 0x7601, 0x0001, 0x10e1, 0x0002, 0x8002, 0x4818, 0x7003, 0x0017, 0xf274, 0x0b96, 0xf000, 0x0006, 0xe782, 0xf6b8, 0x6dea, 0x0005, 0xf120, 0xffff, 0x10ea, 0x0001, 0xfa44, 0x0ac2, 0xf300, 0x0001, 0x1004, 0x08f8, 0x000b, 0xfa44, 0x0ad5, 0x7713, 0x0001, 0xe712, 0x960c, 0xf830, 0x0ad5, 0x7713, 0x0000, 0x1004, 0x8000, 0x7001, 0x0013, 0x4818, 0x7002, 0x0017, 0xf274, 0x0cc3, 0xf000, 0x0006, 0xee6a, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x4a17, 0xee96, 0x7711, 0x0000, 0x716e, 0x0016, 0x71e6, 0x0002, 0x0012, 0x11f8, 0x0012, 0xfa4d, 0x0b02, 0x716f, 0x0017, 0xf7b8, 0x11f8, 0x0012, 0xf84a, 0x0b07, 0x76e6, 0x0002, 0x0006, 0xf273, 0x0b07, 0x7712, 0x0006, 0x7712, 0x0001, 0x76e6, 0x0002, 0x0001, 0x4918, 0x7000, 0x0012, 0xf300, 0x0005, 0x8101, 0x4918, 0xf300, 0x0004, 0x8102, 0xf074, 0x0ff6, 0xe783, 0x8814, 0x6deb, 0x0006, 0x1084, 0x8083, 0x10f8, 0x0008, 0xf845, 0x0b24, 0x71ec, 0x0001, 0x0012, 0x6e82, 0x0b1d, 0x709b, 0x0012, 0xf7b8, 0xf495, 0x1005, 0xf468, 0xf478, 0xf010, 0xfffd, 0xf843, 0x0b4a, 0x11e6, 0x0002, 0x10f8, 0x000b, 0xf468, 0xf478, 0x0805, 0xf842, 0x0b63, 0x1005, 0xf468, 0xf478, 0xf010, 0x0002, 0xf843, 0x0b4a, 0x1005, 0xf010, 0x0001, 0x8005, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x0002, 0x6d91, 0xf842, 0x0b3d, 0x1005, 0xf846, 0x0b56, 0x1005, 0xf000, 0x0001, 0x8005, 0x10f8, 0x0008, 0x6d89, 0xf847, 0x0b4d, 0x10e6, 0x0003, 0xf000, 0xfffe, 0x8000, 0x7001, 0x0017, 0xf274, 0x0c6f, 0xf495, 0x4811, 0x11e6, 0x0002, 0x1005, 0x7187, 0x0011, 0x8000, 0x1286, 0xf47d, 0xf030, 0x0001, 0x8001, 0x8102, 0x4818, 0x7003, 0x0017, 0xf274, 0x0b96, 0xf000, 0x0006, 0x1005, 0x8000, 0x7187, 0x0010, 0xf4a9, 0x7712, 0x0000, 0xe900, 0xf830, 0x0b7f, 0xe901, 0xe808, 0x1886, 0xf2a0, 0x10f8, 0x0008, 0xf845, 0x0b88, 0x7712, 0x0001, 0x7001, 0x0012, 0x4818, 0x7002, 0x0017, 0xf274, 0x0cc3, 0xf000, 0x0006, 0xee6a, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0xeeff, 0xf495, 0x1103, 0x8100, 0xf110, 0x0001, 0x8913, 0xf495, 0x7711, 0xffff, 0x7104, 0x0015, 0x7105, 0x0014, 0x7106, 0x0010, 0xe732, 0x11ea, 0x0001, 0xfa4c, 0x0ba8, 0xf495, 0x6d91, 0x4911, 0xf500, 0xf7b8, 0xf210, 0x0001, 0x8812, 0x4814, 0x10f8, 0x0008, 0xf847, 0x0bdd, 0x4814, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x0bdc, 0xf6b8, 0xe731, 0xf120, 0xffff, 0x10e9, 0x0001, 0xfa44, 0x0bc4, 0xf300, 0x0001, 0xf7b8, 0xf495, 0x1000, 0xf468, 0xf478, 0x08f8, 0x000b, 0xf847, 0x0bdd, 0x10f8, 0x0015, 0xf845, 0x0bdd, 0x7180, 0x0011, 0x7681, 0x0030, 0x6b80, 0xffff, 0xf6b8, 0xe731, 0xf120, 0xffff, 0x10e9, 0x0001, 0xfa44, 0x0be1, 0xf300, 0x0001, 0xf7b8, 0xf495, 0x1000, 0xf468, 0xf478, 0x08f8, 0x000b, 0xf842, 0x0c25, 0x1000, 0xf843, 0x0c25, 0xf6b8, 0xe731, 0xf020, 0xffff, 0x11e9, 0x0001, 0xfa4c, 0x0bf7, 0xf000, 0x0001, 0x6e85, 0x0c15, 0xf495, 0x0800, 0xf7b8, 0x10f8, 0x0008, 0xf847, 0x0c15, 0x6082, 0x0030, 0xf820, 0x0c15, 0xf010, 0x0001, 0x10f8, 0x0008, 0x6d8a, 0xf847, 0x0c25, 0x6082, 0x0030, 0xf830, 0x0c0a, 0xf7b8, 0x10f8, 0x0008, 0xf847, 0x0c25, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x0c24, 0x7180, 0x0015, 0xe543, 0x6b80, 0xffff, 0x1000, 0xf842, 0x0c6a, 0x1000, 0xf484, 0x8811, 0x10f8, 0x0008, 0xf468, 0xf478, 0x08f8, 0x0014, 0xf842, 0x0c4d, 0xf6b8, 0xf495, 0xf020, 0xffff, 0x11eb, 0x0001, 0xfa4c, 0x0c37, 0xf000, 0x0001, 0xf7b8, 0x10f8, 0x0008, 0xf847, 0x0c4d, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x0c4c, 0x7180, 0x0013, 0xe541, 0x6b80, 0xffff, 0x4811, 0x10f8, 0x0008, 0xf468, 0xf478, 0x08f8, 0x0014, 0xf847, 0x0c5a, 0x4814, 0xe741, 0xf484, 0x8000, 0x1000, 0xf842, 0x0c6a, 0x4811, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x0c69, 0x7180, 0x0011, 0x7681, 0x0030, 0x6b80, 0xffff, 0xee01, 0x8a11, 0xfe00, 0xf495, 0x1080, 0x4a11, 0xf7b8, 0x4a16, 0x4a17, 0x8816, 0xeefc, 0x10f8, 0x0008, 0x7108, 0x0017, 0xfa47, 0x0c81, 0x7109, 0x0011, 0xf273, 0x0c83, 0xf495, 0x4816, 0x4816, 0xf484, 0x7600, 0x000a, 0x7601, 0x0064, 0x7002, 0x0011, 0xf274, 0x0f04, 0x10f8, 0x0008, 0xf7b8, 0x4816, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x000a, 0xf842, 0x0caf, 0x4816, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0xfff6, 0xf847, 0x0ca6, 0x7181, 0x0012, 0x7682, 0x0030, 0x6b81, 0xffff, 0x4816, 0x10f8, 0x0008, 0xf842, 0x0caf, 0xf273, 0x0cb0, 0xf495, 0xe82d, 0xe82b, 0x7181, 0x0012, 0x8082, 0x1081, 0xee04, 0xf010, 0x0001, 0x8812, 0x8081, 0x7082, 0x0017, 0x1081, 0xf010, 0x0001, 0x8081, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0xf7b8, 0x4a16, 0x7714, 0x0000, 0x7103, 0x0013, 0x11f8, 0x0013, 0x3004, 0xfa4f, 0x0cea, 0x7105, 0x0016, 0xf110, 0x0001, 0x8912, 0xf495, 0x7711, 0xffff, 0x11ea, 0x0001, 0xfa4c, 0x0cd7, 0xf495, 0x6d91, 0x11f8, 0x0013, 0xf768, 0xf778, 0x09f8, 0x0011, 0xf84e, 0x0cea, 0x4913, 0xf500, 0xf310, 0x0001, 0x8914, 0xf110, 0x0001, 0x8915, 0x11f8, 0x000e, 0xf84d, 0x0cf7, 0x7186, 0x0011, 0x7681, 0x002e, 0x6b86, 0xffff, 0x7712, 0xffff, 0xe751, 0x11e9, 0x0001, 0xfa4c, 0x0cfa, 0xf495, 0x6d92, 0x11f8, 0x0013, 0xf768, 0xf778, 0x09f8, 0x0012, 0xf84f, 0x0d20, 0x7186, 0x0011, 0x7681, 0x0030, 0xe752, 0x7711, 0xffff, 0x6b86, 0xffff, 0x11ea, 0x0001, 0xfa4c, 0x0d11, 0xf495, 0x6d91, 0x11f8, 0x0011, 0x6d8b, 0xf768, 0xf778, 0x09f8, 0x0013, 0xf84b, 0x0d08, 0x11f8, 0x0013, 0xf84f, 0x0d34, 0x8810, 0xf495, 0xf495, 0xf5ac, 0xf830, 0x0d3a, 0x7186, 0x0012, 0xe560, 0xf5ac, 0xfa20, 0x0d2a, 0x6b86, 0xffff, 0xf073, 0x0d3a, 0x7186, 0x0011, 0x7681, 0x0030, 0x6b86, 0xffff, 0x1086, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x8812, 0x4a17, 0xeefa, 0xf7b8, 0x8004, 0x10e2, 0x0002, 0x110c, 0x710a, 0x0017, 0xfa43, 0x0d52, 0x710b, 0x0011, 0xf273, 0x0d55, 0x6882, 0xffef, 0x76e2, 0x0002, 0x0001, 0x71e2, 0x0003, 0x0012, 0x7713, 0x0058, 0x10f8, 0x0012, 0x08f8, 0x0013, 0xf845, 0x0d7c, 0x7713, 0x006f, 0x10f8, 0x0012, 0x08f8, 0x0013, 0xf845, 0x0d80, 0x7713, 0x0070, 0x10f8, 0x0012, 0x08f8, 0x0013, 0xf845, 0x0d7c, 0x7713, 0x0078, 0x10f8, 0x0012, 0x08f8, 0x0013, 0xf845, 0x0d7c, 0xf273, 0x0d82, 0x7716, 0x000a, 0xf273, 0x0d82, 0x7716, 0x0010, 0x7716, 0x0008, 0x8100, 0x1004, 0xf074, 0x0e0c, 0x7104, 0x0012, 0x11e2, 0x0002, 0xf84c, 0x0d94, 0xf540, 0xf3e0, 0xf84c, 0x0d94, 0xf273, 0x0e07, 0xf495, 0xe801, 0x71e2, 0x0003, 0x0012, 0x7713, 0x0064, 0x11f8, 0x0012, 0x09f8, 0x0013, 0xf84d, 0x0da2, 0x6ce2, 0xff97, 0x0db0, 0xf540, 0xf7b8, 0xf768, 0xf778, 0xf84a, 0x0db0, 0x7687, 0x0001, 0x7104, 0x0012, 0xf484, 0x71e2, 0x0003, 0x0012, 0x7000, 0x0016, 0x7001, 0x0012, 0x7002, 0x0011, 0xf074, 0x0f04, 0xf7b8, 0xf000, 0x0001, 0x11f8, 0x0008, 0xf768, 0x7104, 0x0012, 0xf778, 0x09e2, 0x0002, 0xf84e, 0x0dd7, 0x7181, 0x0012, 0xf000, 0x0001, 0x7682, 0x0030, 0x11f8, 0x0008, 0x6b81, 0xffff, 0xf768, 0x7104, 0x0012, 0xf778, 0x09e2, 0x0002, 0xf84f, 0x0dc5, 0x71e2, 0x0003, 0x0013, 0xe978, 0x10f8, 0x0013, 0x08f8, 0x000b, 0xf845, 0x0de4, 0x6ce3, 0xffa8, 0x0dfa, 0x960c, 0xf820, 0x0dfa, 0x7181, 0x0012, 0x7082, 0x0013, 0x1081, 0xf010, 0x0001, 0x8812, 0xf495, 0x8081, 0x7682, 0x0030, 0x6b81, 0xffff, 0x7104, 0x0012, 0x71e2, 0x0003, 0x0013, 0x6ce3, 0xff91, 0x0e06, 0x960c, 0xf820, 0x0e06, 0x7181, 0x0012, 0x7682, 0x0030, 0x6b81, 0xffff, 0xe800, 0xee06, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x8813, 0x4a11, 0xe970, 0x71e3, 0x0003, 0x0011, 0x10f8, 0x0011, 0x08f8, 0x000b, 0xfa45, 0x0efb, 0x7102, 0x0012, 0x1183, 0xf330, 0x0160, 0x8913, 0xf495, 0x7710, 0x0020, 0xf4ab, 0xe800, 0xf830, 0x0eb6, 0x7710, 0x0040, 0xf4ab, 0xf830, 0x0e67, 0xf7b8, 0x11f8, 0x0011, 0xf768, 0xf778, 0xf310, 0x006f, 0xf84e, 0x0e55, 0x7713, 0x006f, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0efb, 0x7713, 0x0058, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0efb, 0x7713, 0x0064, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0ef3, 0x7713, 0x0069, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0ef3, 0xf073, 0x0f02, 0x7713, 0x0075, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0efb, 0x7713, 0x0078, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0efb, 0xf073, 0x0f02, 0xf7b8, 0x11f8, 0x0011, 0xf768, 0xf778, 0xf310, 0x006f, 0xf84e, 0x0e92, 0x7713, 0x006f, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0ea4, 0x7713, 0x0058, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0ea4, 0x7713, 0x0064, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0ea4, 0x7713, 0x0069, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0ea4, 0xf073, 0x0f02, 0x7713, 0x0075, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0ea4, 0x7713, 0x0078, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0ea4, 0xf073, 0x0f02, 0x1182, 0xf693, 0xf030, 0x0001, 0xf600, 0xf000, 0x0001, 0x8811, 0xf495, 0x4911, 0x7082, 0x0011, 0xf300, 0x0001, 0xf273, 0x0f02, 0x5681, 0x8182, 0xf7b8, 0x11f8, 0x0011, 0xf768, 0xf778, 0xf310, 0x006f, 0xf84e, 0x0ee1, 0x7713, 0x006f, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0efb, 0x7713, 0x0058, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0efb, 0x7713, 0x0064, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0ef3, 0x7713, 0x0069, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0ef3, 0xf073, 0x0f02, 0x7713, 0x0075, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0efb, 0x7713, 0x0078, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0efb, 0xf073, 0x0f02, 0x1082, 0xf000, 0x0001, 0x8811, 0xf273, 0x0f02, 0x8082, 0x1081, 0x1082, 0xf000, 0x0001, 0x8811, 0xf495, 0x8082, 0x1281, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x4a17, 0xeefa, 0xf495, 0x4e02, 0xf0e0, 0x710a, 0x0016, 0x710b, 0x0017, 0xfa44, 0x0f1b, 0x710c, 0x0011, 0x7181, 0x0012, 0x7682, 0x0030, 0xf273, 0x0f3e, 0x6b81, 0xffff, 0xf7b8, 0x7000, 0x0016, 0x5602, 0xf074, 0x0f52, 0x4e04, 0x4e00, 0xf7b8, 0xf274, 0x14ab, 0x10f8, 0x0016, 0xf7b8, 0x6ee7, 0xffa8, 0x0f30, 0x5702, 0xf520, 0xf300, 0x0010, 0x8912, 0xf495, 0x7181, 0x0013, 0xf6b8, 0x6dea, 0x2b71, 0xe501, 0x6b81, 0xffff, 0x5604, 0x4e02, 0xf844, 0x0f1b, 0x1081, 0xf6b8, 0xf010, 0x0001, 0x8811, 0xf020, 0xffff, 0x11e9, 0x0001, 0xfa4c, 0x0f45, 0xf000, 0x0001, 0xee06, 0x8a17, 0x8a16, 0x8a11, 0xfe00, 0xf010, 0x0001, 0x4a11, 0xeefe, 0x7712, 0x0008, 0x7104, 0x0011, 0x11f8, 0x0011, 0x09f8, 0x0012, 0xf84d, 0x0f68, 0x7712, 0x0010, 0x11f8, 0x0011, 0x09f8, 0x0012, 0xf84d, 0x0f6c, 0xf073, 0x0f70, 0xf273, 0x0f85, 0xf495, 0xf0fd, 0xf273, 0x0f85, 0xf495, 0xf0fc, 0xf540, 0xf6b8, 0xf3e0, 0xf310, 0xffff, 0xf84a, 0x0f7f, 0x7000, 0x0011, 0xf074, 0x17b8, 0xf273, 0x0f85, 0xf495, 0x4808, 0xf7b8, 0x11f8, 0x0011, 0x4f00, 0xf074, 0x1456, 0xee02, 0x8a11, 0xfc00, 0x4a11, 0x7711, 0xffff, 0xeefe, 0x6ce1, 0x0001, 0x0f93, 0xf273, 0x0f99, 0xe800, 0xe900, 0xf120, 0xffff, 0x10f8, 0xffff, 0xf300, 0x0001, 0x8100, 0xf074, 0x0113, 0xee02, 0x8a11, 0xfc00, 0x8813, 0x4a11, 0xf020, 0x2bac, 0xeefe, 0x1183, 0x8000, 0xf600, 0x8812, 0xf495, 0xf495, 0x6d92, 0x960c, 0xf820, 0x0fb9, 0x11eb, 0x0001, 0x1000, 0xf600, 0x8812, 0xf495, 0xf495, 0x6d92, 0x960c, 0xf830, 0x0fae, 0x8911, 0xf495, 0x7712, 0x002d, 0x11f8, 0x0011, 0x09f8, 0x0012, 0xe800, 0xf84d, 0x0fcb, 0x6ee1, 0xffd5, 0x0fd0, 0x7714, 0x0000, 0xf073, 0x0fcd, 0x7714, 0x0001, 0x71eb, 0x0001, 0x0011, 0x4911, 0x0100, 0x8912, 0xf495, 0xf495, 0x6d92, 0x960d, 0xf820, 0x0fee, 0x4911, 0x880e, 0x71eb, 0x0001, 0x0011, 0xf066, 0x000a, 0xf600, 0x7001, 0x0011, 0x1100, 0x0101, 0x8912, 0xf495, 0xf495, 0x6d92, 0x960d, 0xfa30, 0x0fd9, 0xf010, 0x0030, 0x11f8, 0x0014, 0xf84d, 0x0ff3, 0xf484, 0xee02, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x4a17, 0xeef8, 0xf7b8, 0x4e02, 0x710e, 0x0011, 0x710d, 0x0017, 0x710c, 0x0016, 0x56f8, 0x2b9c, 0x76f8, 0x2a9d, 0x0030, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0xe900, 0xf842, 0x1012, 0xe901, 0x56f8, 0x2b9c, 0x8181, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0xf842, 0x1022, 0x5602, 0xf074, 0x12ea, 0x4e02, 0x56f8, 0x2b9e, 0xf7b8, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0xfa47, 0x1042, 0x7711, 0x0000, 0x56f8, 0x2ba0, 0x4e00, 0x5602, 0xf074, 0x112b, 0x57f8, 0x2b9e, 0x4e02, 0x4f00, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0x6d91, 0xf846, 0x1030, 0xf020, 0x2a9d, 0x8004, 0x56f8, 0x2b9c, 0x4e00, 0x5602, 0xf274, 0x110b, 0xf495, 0x6d96, 0xf7b8, 0x10f8, 0x0008, 0xf845, 0x107c, 0x56f8, 0x2ba2, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0xf842, 0x107c, 0x56f8, 0x2ba0, 0x4e00, 0x5602, 0xf074, 0x1277, 0x4e02, 0xf7b8, 0x56f8, 0x2b9c, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0x6d89, 0xf845, 0x107c, 0x56f8, 0x2ba2, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0xf843, 0x105d, 0x1004, 0xf000, 0x0001, 0x8005, 0x5602, 0xf074, 0x1202, 0x1105, 0x8100, 0xf074, 0x14bf, 0xf540, 0x8006, 0x1004, 0xf500, 0xf300, 0x0001, 0x8912, 0x4811, 0x1106, 0xf500, 0xf7b8, 0x8187, 0x1106, 0xf768, 0xf778, 0x09f8, 0x0016, 0xf84a, 0x10c6, 0x4916, 0x0906, 0x8916, 0xf495, 0x4816, 0x10f8, 0x0008, 0xf847, 0x10cd, 0x4816, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x10c3, 0xf7b8, 0xf495, 0x5602, 0xf074, 0x1202, 0xf074, 0x124d, 0xf7b8, 0x4e00, 0x5602, 0xf074, 0x12ef, 0x4e02, 0x56f8, 0x2ba0, 0xf7b8, 0x4e00, 0x5602, 0xf074, 0x1277, 0x4e02, 0xf074, 0x11c6, 0xf000, 0x0030, 0x8092, 0xf073, 0x10cd, 0x1104, 0x4816, 0xf600, 0xf000, 0x0001, 0x8812, 0xf495, 0xf7b8, 0x10ea, 0xffff, 0xf468, 0xf478, 0xf010, 0x0035, 0xf843, 0x1103, 0x4812, 0xf010, 0x0001, 0x8811, 0xf495, 0xf495, 0x1081, 0xf000, 0x0001, 0x8081, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x003a, 0xf843, 0x10f6, 0x7689, 0x0030, 0x1081, 0xf000, 0x0001, 0x8081, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x003a, 0xf842, 0x10e8, 0x7104, 0x0010, 0xf7a9, 0xf830, 0x1103, 0x76ea, 0xffff, 0x0000, 0x4810, 0xf273, 0x1106, 0x6b87, 0x0001, 0x7682, 0x0000, 0x1005, 0xee08, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0xf7b8, 0xf468, 0xf478, 0x5704, 0xf842, 0x1118, 0xff4b, 0xf484, 0xf784, 0xf586, 0xf808, 0x1123, 0xf587, 0xf808, 0x1127, 0xf420, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf273, 0x111f, 0xe801, 0xf495, 0xf273, 0x111f, 0xf020, 0xffff, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a0e, 0xf6b7, 0xeef3, 0xf7b8, 0xf468, 0xf478, 0xf845, 0x1198, 0x6f05, 0x0c79, 0x800b, 0xf063, 0x007f, 0xf060, 0x0080, 0x820a, 0x5612, 0xf845, 0x11b6, 0x6f06, 0x0c79, 0x8009, 0xf063, 0x007f, 0xf060, 0x0080, 0x8208, 0x1005, 0x1c06, 0xf030, 0x0100, 0x8004, 0x1005, 0xf030, 0x00ff, 0x1106, 0xf330, 0x00ff, 0xf000, 0x007f, 0xf620, 0x8001, 0xf843, 0x11ae, 0xf010, 0x00ff, 0xf846, 0x119e, 0x560a, 0xf0e6, 0x5708, 0xf3e7, 0x4f08, 0xec0e, 0x1e08, 0x8002, 0x0a02, 0xec0a, 0x1e08, 0x6f03, 0x0c85, 0x3002, 0x2409, 0xf0ff, 0xec0b, 0x1e08, 0xf0e4, 0xf030, 0xffff, 0xf0e1, 0xf484, 0x0203, 0x3c02, 0x1101, 0xf48e, 0xf495, 0xf48f, 0x8c01, 0x0901, 0xf0ff, 0xf300, 0x0001, 0xf000, 0x0020, 0xf48e, 0xf495, 0xf48f, 0x8c01, 0x0901, 0x8101, 0xf84f, 0x11ae, 0xf310, 0x00ff, 0xf84a, 0x119e, 0xf0f9, 0x8003, 0xf038, 0x7f00, 0x8202, 0x4404, 0x3c01, 0xf0e7, 0x5002, 0xee0d, 0x8a0e, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0x7600, 0x0002, 0xf074, 0x11c5, 0xf483, 0xf061, 0x0081, 0x4504, 0xf84c, 0x1198, 0xf162, 0x8000, 0xf273, 0x1198, 0xf2c0, 0xf495, 0x7600, 0x0001, 0xf074, 0x11c5, 0xf273, 0x1198, 0xf420, 0xf495, 0x7600, 0x0003, 0xf074, 0x11c5, 0x4505, 0xf363, 0x0100, 0xf061, 0x0081, 0xf065, 0x8000, 0xf273, 0x1198, 0xf2a7, 0xf495, 0xfc00, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a0e, 0xf6b8, 0xeefd, 0xf845, 0x11e8, 0x6f01, 0x0c79, 0xf0e9, 0xf0f7, 0xf060, 0x0080, 0x6f02, 0x0c67, 0x1101, 0xf330, 0x00ff, 0xf310, 0x007f, 0xf84b, 0x11ee, 0xf310, 0x000e, 0xf84e, 0x11f2, 0x890e, 0x6101, 0x0100, 0x1402, 0xfd30, 0xf484, 0xee03, 0x8a0e, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf273, 0x11e8, 0xf420, 0xf495, 0x7600, 0x0002, 0xf074, 0x11c5, 0x6101, 0x0100, 0xf020, 0x7fff, 0xf820, 0x11e8, 0xf000, 0x0001, 0xf273, 0x11e8, 0xf484, 0xf495, 0xf845, 0x1235, 0x4a0e, 0x4a0d, 0x4a0b, 0x4a0c, 0xf6b8, 0xeefd, 0x6f01, 0x0c79, 0xf0e9, 0xf0f7, 0xf060, 0x0080, 0xf447, 0x1101, 0xf330, 0x00ff, 0xf310, 0x007f, 0xf84b, 0x1236, 0xf310, 0x001e, 0xf84e, 0x123a, 0xf84d, 0x122b, 0xf300, 0x0010, 0xf84a, 0x1226, 0xf273, 0x1228, 0xf0f0, 0xf495, 0xf310, 0x0010, 0x890e, 0xf495, 0xf48f, 0x6101, 0x0100, 0xf495, 0xfd30, 0xf484, 0xee03, 0x8a0c, 0x8a0b, 0x8a0d, 0x8a0e, 0xfc00, 0xf273, 0x1230, 0xf420, 0xf495, 0x7600, 0x0002, 0xf074, 0x11c5, 0x6101, 0x0100, 0xf062, 0x7fff, 0xf040, 0xffff, 0xf483, 0xf820, 0x1230, 0xf000, 0x0001, 0xf273, 0x1230, 0xf484, 0xf495, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a0e, 0xf7b8, 0xeefd, 0xf468, 0xf478, 0xf845, 0x126d, 0x8201, 0xf4ba, 0xf485, 0xf870, 0x1273, 0xf48e, 0xe99d, 0x8c00, 0x0900, 0xf48f, 0xf0e2, 0xf0fe, 0xf459, 0x6101, 0x8000, 0xf3ef, 0xf2a8, 0xf820, 0x126d, 0xf064, 0x8000, 0xee03, 0x8a0e, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf273, 0x126d, 0xf062, 0xcf00, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a0e, 0xf6b7, 0xeef3, 0xf7b8, 0xf468, 0xf478, 0xf845, 0x12d0, 0x6f05, 0x0c79, 0x800b, 0xf063, 0x007f, 0xf060, 0x0080, 0x820a, 0x5612, 0xf845, 0x12d0, 0x6f06, 0x0c79, 0x8009, 0xf063, 0x007f, 0xf060, 0x0080, 0x8208, 0x1005, 0x1c06, 0xf030, 0x0100, 0x8004, 0x1005, 0xf030, 0x00ff, 0x1106, 0xf330, 0x00ff, 0xf310, 0x007f, 0xf600, 0x8001, 0xf843, 0x12e2, 0xf010, 0x00ff, 0xf846, 0x12d6, 0x300b, 0x2409, 0x2508, 0xf510, 0x300a, 0x2409, 0xf600, 0x2508, 0x8102, 0x3c02, 0xf000, 0x0040, 0xf468, 0xf478, 0xf6b8, 0x1101, 0xf842, 0x12c1, 0xf0ff, 0xf300, 0x0001, 0x8101, 0xf84f, 0x12e2, 0xf310, 0x00ff, 0xf84a, 0x12d6, 0xf0f9, 0x8003, 0xf038, 0x7f00, 0x8202, 0x4404, 0x3c01, 0xf0e7, 0x5002, 0xee0d, 0x8a0e, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0x7600, 0x0002, 0xf074, 0x11c5, 0x4504, 0xf020, 0xffff, 0xf2a7, 0xf273, 0x12d0, 0xf060, 0x7f7f, 0x7600, 0x0001, 0xf074, 0x11c5, 0xf273, 0x12d0, 0xf420, 0xf495, 0xf495, 0xff44, 0xf065, 0x8000, 0xfc00, 0xf495, 0x6001, 0x0000, 0xf495, 0xff20, 0x6a01, 0x8000, 0xf073, 0x17c4, 0x4a11, 0x4a16, 0x4a17, 0xeefa, 0xf7b8, 0x4e02, 0x710c, 0x0011, 0x710b, 0x0017, 0x710a, 0x0016, 0x56f8, 0x2ba4, 0x76f8, 0x2b01, 0x0030, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0xe900, 0xf842, 0x1314, 0xe901, 0x56f8, 0x2ba4, 0x8181, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0xf842, 0x1324, 0x5602, 0xf074, 0x12ea, 0x4e02, 0x56f8, 0x2ba6, 0xf7b8, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0xfa47, 0x1344, 0x7711, 0x0000, 0x56f8, 0x2ba8, 0x4e00, 0x5602, 0xf074, 0x112b, 0x57f8, 0x2ba6, 0x4e02, 0x4f00, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0x6d91, 0xf846, 0x1332, 0xf020, 0x2b01, 0x8004, 0x56f8, 0x2ba4, 0x4e00, 0x5602, 0xf274, 0x110b, 0xf495, 0x6d96, 0xf7b8, 0x10f8, 0x0008, 0xf845, 0x137e, 0x56f8, 0x2baa, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0xf842, 0x137e, 0x56f8, 0x2ba8, 0x4e00, 0x5602, 0xf074, 0x1277, 0x4e02, 0xf7b8, 0x56f8, 0x2ba4, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0x6d89, 0xf845, 0x137e, 0x56f8, 0x2baa, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0xf843, 0x135f, 0x1004, 0xf000, 0x0001, 0x8005, 0x5602, 0xf074, 0x1202, 0x1105, 0x8100, 0xf074, 0x14bf, 0x8812, 0x1104, 0xf600, 0xf100, 0x0001, 0x8913, 0x4911, 0x4812, 0xf600, 0x8087, 0x4816, 0xf600, 0xf7b8, 0x8816, 0x10f8, 0x0008, 0xf847, 0x13bc, 0x4816, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x13bb, 0xf7b8, 0xf495, 0x5602, 0xf074, 0x1202, 0xf074, 0x124d, 0xf7b8, 0x4e00, 0x5602, 0xf074, 0x12ef, 0x4e02, 0x56f8, 0x2ba8, 0xf7b8, 0x4e00, 0x5602, 0xf074, 0x1277, 0x4e02, 0xf074, 0x11c6, 0xf000, 0x0030, 0x8093, 0xf7b8, 0x10eb, 0xffff, 0xf468, 0xf478, 0xf010, 0x0035, 0xf843, 0x13ea, 0x4813, 0xf010, 0x0001, 0x8811, 0xf495, 0xf495, 0x1081, 0xf000, 0x0001, 0x8081, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x003a, 0xf843, 0x13e5, 0x7689, 0x0030, 0x1081, 0xf000, 0x0001, 0x8081, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x003a, 0xf842, 0x13d7, 0x7104, 0x0010, 0xf4a9, 0xf830, 0x13f0, 0x7683, 0x0000, 0xf273, 0x1401, 0xf495, 0x1005, 0xf6ab, 0xf830, 0x13fc, 0x7711, 0x2b01, 0x76e1, 0x0001, 0x0000, 0xf273, 0x13fe, 0x7004, 0x0011, 0x7683, 0x0000, 0x6b87, 0x0001, 0x1004, 0xee06, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0xeefe, 0xf7b8, 0xf468, 0xf478, 0x4506, 0xf1c0, 0x8300, 0xf485, 0x5706, 0xf785, 0x4f06, 0xf520, 0xf84d, 0x1426, 0xf84e, 0x142a, 0xf074, 0x148b, 0x6100, 0x8000, 0xf820, 0x1421, 0xf484, 0xee02, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf273, 0x141c, 0xe801, 0xf495, 0xf273, 0x1421, 0xf420, 0xf495, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0xeefe, 0xf7b8, 0x8200, 0xf468, 0xf478, 0xf485, 0x5706, 0xf785, 0x4f06, 0xf520, 0xf84d, 0x144e, 0xf84e, 0x1452, 0xf074, 0x148b, 0x6100, 0x8000, 0xfa20, 0x1449, 0xf640, 0xf495, 0xf484, 0xee02, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf273, 0x1449, 0xf420, 0xf495, 0xf273, 0x1442, 0xf540, 0xf495, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0xeefe, 0xf6b8, 0xf0e0, 0x5706, 0xf520, 0xf84d, 0x146a, 0xf84e, 0x146e, 0xf074, 0x148b, 0xee02, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf273, 0x1465, 0xe801, 0xf495, 0xf273, 0x1465, 0xf420, 0xf495, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0xeefe, 0xf6b8, 0xf0e0, 0x5706, 0xf520, 0xf84d, 0x1487, 0xf84e, 0x1482, 0xf074, 0x148b, 0xf640, 0xee02, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf273, 0x1482, 0xf420, 0xf495, 0xf495, 0x4a11, 0xf6b8, 0xf273, 0x1493, 0x7711, 0x001f, 0x6d89, 0xf0e1, 0xf808, 0x1492, 0xe901, 0x5508, 0xf84b, 0x149e, 0xf273, 0x149f, 0xf040, 0x0001, 0x5308, 0x6c89, 0x14a3, 0x8a11, 0xfc00, 0xf3e1, 0xf0e1, 0xf808, 0x1497, 0xf273, 0x1497, 0xf340, 0x0001, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a0e, 0xeefd, 0xf495, 0x4e00, 0x3109, 0x4408, 0x3501, 0x2409, 0xf76f, 0xf601, 0xee03, 0x8a0e, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf540, 0x4a11, 0xf7b8, 0xf768, 0x7711, 0x0000, 0xeee8, 0xf778, 0xfa4a, 0x14cd, 0x711a, 0x0013, 0x7711, 0x0001, 0xe782, 0x6dea, 0x0015, 0xf540, 0x7682, 0x0000, 0xe80a, 0x4e00, 0xf274, 0x142e, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf485, 0xf000, 0x0030, 0x80ea, 0xffff, 0xe80a, 0x4e00, 0xf274, 0x1406, 0xf495, 0xf640, 0xf7b8, 0xf540, 0xf468, 0xf478, 0xf844, 0x14d3, 0x10f8, 0x0011, 0xf845, 0x14f4, 0x76ea, 0xffff, 0x002d, 0x4818, 0x4912, 0xf000, 0x0002, 0xf620, 0x7000, 0x0012, 0xf000, 0x0014, 0x10f8, 0x0008, 0x4e16, 0x8001, 0xf274, 0x152d, 0xf495, 0x4813, 0xf7b8, 0xf495, 0x5616, 0xee18, 0x8a11, 0xfe00, 0xf010, 0x0001, 0xf7b8, 0x4a11, 0x8812, 0x1004, 0x1103, 0xfa47, 0x152a, 0x7102, 0x0011, 0xf010, 0x0001, 0x881a, 0x6d89, 0xf072, 0x1529, 0x10e9, 0x0001, 0x8092, 0x10f8, 0x0008, 0x08f8, 0x000b, 0xf844, 0x1529, 0xf273, 0x152b, 0xf495, 0x4812, 0xf495, 0xe800, 0x8a11, 0xfc00, 0x1302, 0x7101, 0x0012, 0x8813, 0xf84d, 0x153a, 0xf310, 0x0001, 0x891a, 0xf495, 0xf072, 0x1539, 0xe589, 0xfc00, 0x4a11, 0x7211, 0x2b65, 0xf495, 0x8813, 0x6c81, 0x1546, 0xf273, 0x1571, 0x7313, 0x2b65, 0xf495, 0x7712, 0x0000, 0x1183, 0xf7b8, 0x10f8, 0x000b, 0xf468, 0xf478, 0x0881, 0xf842, 0x155a, 0xe712, 0x71e2, 0x0001, 0x0011, 0x6c81, 0x154a, 0xf073, 0x156e, 0x4811, 0xf845, 0x156e, 0x6c82, 0x1566, 0x70e3, 0x0001, 0x2b65, 0xf273, 0x1574, 0x7313, 0x2b65, 0x70e3, 0x0001, 0x0011, 0x70e2, 0x0001, 0x0013, 0xf073, 0x1574, 0x70e2, 0x0001, 0x0013, 0x76e3, 0x0001, 0x0000, 0x8a11, 0xfc00, 0x4a11, 0x8813, 0x7211, 0x2b65, 0x4811, 0xf845, 0x1599, 0xe730, 0xf4a9, 0xf830, 0x1594, 0xe712, 0x71e2, 0x0001, 0x0011, 0x4811, 0xf845, 0x1599, 0xf7a9, 0xf830, 0x1581, 0x4812, 0xf845, 0x1594, 0x10e3, 0x0001, 0xf273, 0x159c, 0x80e2, 0x0001, 0x71e3, 0x0001, 0x2b65, 0xf073, 0x159c, 0x76f8, 0x2b65, 0x0000, 0x8a11, 0xfc00, 0x4a11, 0x10f8, 0x290b, 0xf4e3, 0x7711, 0x2cbb, 0x61f8, 0x0011, 0x0001, 0xf830, 0x15b9, 0x4811, 0x7681, 0x0000, 0xf000, 0x0001, 0x80f8, 0x2b65, 0xf020, 0x00fe, 0x80f8, 0x2b66, 0xf484, 0xf273, 0x15c2, 0x80e1, 0x0001, 0xf020, 0x00ff, 0x80f8, 0x2b66, 0x7311, 0x2b65, 0xf484, 0x80f8, 0x2cbb, 0x7211, 0x2b65, 0xf495, 0x76e1, 0x0001, 0x0000, 0x10f8, 0x290c, 0xf4e3, 0x8a11, 0xfc00, 0x4a11, 0x8811, 0x4a16, 0xeeff, 0x10f8, 0x290b, 0xf4e3, 0x10f8, 0x2b67, 0xf845, 0x15dd, 0xf074, 0x159e, 0x76f8, 0x2b67, 0x0000, 0xf7b8, 0x4811, 0x10f8, 0x0008, 0xfa43, 0x15ff, 0x7216, 0x2b65, 0x61f8, 0x0011, 0x0001, 0xf830, 0x15eb, 0x6d91, 0x4811, 0xf484, 0x8811, 0x4816, 0xf845, 0x15ff, 0x1186, 0x10f8, 0x000b, 0xf468, 0xf478, 0x08f8, 0x0011, 0xf847, 0x160e, 0x71e6, 0x0001, 0x0016, 0x6c86, 0x1605, 0x10f8, 0x290c, 0xf4e3, 0xe800, 0xf073, 0x163a, 0x1186, 0x10f8, 0x000b, 0xf468, 0xf478, 0x08f8, 0x0011, 0xf846, 0x15fa, 0x8100, 0xf274, 0x1576, 0xf495, 0x4816, 0xf7b8, 0x4811, 0x0800, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x0002, 0xf842, 0x1622, 0xf273, 0x1632, 0xf495, 0xf640, 0x4911, 0x4816, 0xf620, 0xf000, 0x0001, 0x8812, 0x1000, 0xf620, 0xf000, 0x0001, 0x8082, 0xf274, 0x153b, 0xf495, 0x4812, 0x4811, 0xf484, 0x8086, 0x10f8, 0x290c, 0xf4e3, 0x4816, 0xf000, 0x0001, 0xee01, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0xf495, 0x3002, 0x20f8, 0x0008, 0xf274, 0x15cd, 0x8811, 0xf495, 0x8812, 0xf495, 0xf495, 0x6c82, 0x1650, 0xf273, 0x165e, 0xf495, 0xe800, 0x4911, 0xf495, 0x490b, 0xf84d, 0x165e, 0x4911, 0xf310, 0x0001, 0x891a, 0xf495, 0xf072, 0x165d, 0x7692, 0x0000, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0xf7b8, 0x4a17, 0x8817, 0xf010, 0x0001, 0xeefa, 0x8816, 0x110a, 0x10f8, 0x000b, 0x76f8, 0x2b66, 0x0100, 0x8911, 0xf843, 0x16db, 0x6c87, 0x167a, 0xf274, 0x15cd, 0xf495, 0xf640, 0xf073, 0x1723, 0x6c81, 0x1682, 0xf274, 0x1728, 0xf495, 0x4817, 0xf073, 0x16db, 0x1086, 0xfa47, 0x16db, 0xf495, 0x8002, 0x61f8, 0x0011, 0x0001, 0xf830, 0x168d, 0x6d91, 0x10f8, 0x0011, 0x1102, 0xf468, 0xf478, 0x08f8, 0x000b, 0xf847, 0x1706, 0xf640, 0x4916, 0xf600, 0xf000, 0x0001, 0x8003, 0x8004, 0x10f8, 0x290b, 0xf4e3, 0x6bf8, 0x2b66, 0xfffe, 0x7210, 0x2b66, 0x7103, 0x0012, 0x6de8, 0x2cbb, 0xf5aa, 0xf820, 0x16bb, 0xf7b8, 0xf495, 0x1182, 0xf84a, 0x16bb, 0x1002, 0xf620, 0x4911, 0xf620, 0xf100, 0x0001, 0x11f8, 0x000b, 0xf84a, 0x16df, 0xf274, 0x15cd, 0xf495, 0x4811, 0x8811, 0xf495, 0x4811, 0xf845, 0x16d8, 0x4816, 0xf000, 0x0001, 0x8000, 0x1002, 0x8001, 0xf274, 0x1863, 0xf495, 0x4811, 0xf274, 0x1728, 0xf495, 0x4817, 0x10f8, 0x290c, 0xf4e3, 0x4811, 0xf073, 0x1723, 0x10f8, 0x290c, 0xf4e3, 0xf273, 0x1723, 0xf495, 0xe800, 0xf274, 0x1576, 0xf495, 0x4812, 0xf7b8, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x0002, 0xf842, 0x16f1, 0x4811, 0xf273, 0x1701, 0xf500, 0x8186, 0x7086, 0x0011, 0x4816, 0x7002, 0x0011, 0x0002, 0xf000, 0x0001, 0x8816, 0xe801, 0xf620, 0x8086, 0xf274, 0x153b, 0xf495, 0x4816, 0x10f8, 0x290c, 0xf4e3, 0xf073, 0x1722, 0xf640, 0x4911, 0xf620, 0x8812, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x0002, 0xf843, 0x1722, 0x4816, 0xf600, 0x7086, 0x0011, 0xf000, 0x0001, 0x8816, 0x4812, 0xf010, 0x0001, 0x8086, 0x4816, 0xf274, 0x1728, 0xf000, 0x0001, 0x4817, 0xee06, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x8816, 0x4808, 0xeeff, 0xf845, 0x17b4, 0x10f8, 0x290b, 0xf4e3, 0xf020, 0x0100, 0x6d8e, 0x80f8, 0x2b66, 0x8000, 0x4816, 0x8810, 0xf495, 0x7712, 0x2cbb, 0xe721, 0xf5a9, 0xf830, 0x1748, 0xf7a9, 0xf830, 0x17b1, 0xf273, 0x175c, 0x7714, 0x0000, 0xf7b8, 0xf495, 0x1081, 0xe714, 0xf842, 0x174f, 0xf484, 0x4911, 0xf600, 0xf000, 0x0001, 0x8811, 0xf495, 0xf495, 0xf5a9, 0xf830, 0x1748, 0xf7a9, 0xf830, 0x17b1, 0xf7b8, 0xf495, 0x1081, 0xf843, 0x17b1, 0xf484, 0x8081, 0x4811, 0x0881, 0xf000, 0x0001, 0x8815, 0x1000, 0xf010, 0x0001, 0x80f8, 0x2b66, 0x4812, 0x0000, 0x8810, 0xf495, 0xf495, 0x6d88, 0xf6ad, 0xf820, 0x1778, 0x7715, 0x0000, 0x4814, 0xf845, 0x179f, 0x1084, 0xf842, 0x179f, 0x4815, 0xf845, 0x1795, 0x1085, 0xf842, 0x1795, 0xf274, 0x1576, 0xf495, 0x4814, 0xf274, 0x1576, 0xf495, 0x4815, 0x1085, 0x0084, 0x0081, 0xf010, 0x0002, 0xf273, 0x17af, 0x8084, 0x4814, 0xf274, 0x1576, 0xf495, 0x4814, 0x1081, 0x0084, 0xf273, 0x1791, 0xf010, 0x0001, 0x4815, 0xf845, 0x17ae, 0x1085, 0xf842, 0x17ae, 0xf274, 0x1576, 0xf495, 0x4815, 0x1085, 0x0081, 0xf010, 0x0001, 0x8081, 0x4811, 0xf074, 0x153b, 0x10f8, 0x290c, 0xf4e3, 0xee01, 0x8a16, 0x8a11, 0xfc00, 0xf6b8, 0x4808, 0xec0f, 0x1e01, 0xfc00, 0xf6b8, 0x4808, 0xec0f, 0x1e01, 0xfe00, 0xf0f0, 0xf495, 0xf495, 0x4a0e, 0x4a0b, 0x4a0c, 0x4a0d, 0xf6b7, 0xeef3, 0xf7b8, 0xf468, 0xf478, 0xf845, 0x183d, 0xf540, 0xf6b8, 0xf0e1, 0x6f05, 0x0c78, 0xf0e8, 0xf0f7, 0xf060, 0x0080, 0xfd4b, 0xf484, 0xf7b8, 0x4e0a, 0x5612, 0xf845, 0x1841, 0xf540, 0xf0e1, 0x6f06, 0x0c78, 0xf6b8, 0xf0e8, 0xf0f7, 0xf060, 0x0080, 0xfd4b, 0xf484, 0xf7b8, 0x4e08, 0x1005, 0x1106, 0xf520, 0xf84b, 0x181c, 0xf84e, 0x182d, 0x560a, 0x5008, 0xf845, 0x185f, 0x1105, 0x8204, 0xf485, 0xf0e6, 0xf48e, 0xf495, 0xf48f, 0x8c01, 0xf300, 0x0001, 0x0901, 0x8101, 0xf84f, 0x185b, 0xf310, 0x00ff, 0xf84a, 0x184e, 0xf0f9, 0x8003, 0xf038, 0x7f00, 0x8202, 0x6f04, 0x0c49, 0xf063, 0x0100, 0x3c01, 0xf0e7, 0x5002, 0xee0d, 0x8a0d, 0x8a0c, 0x8a0b, 0x8a0e, 0xfc00, 0xf785, 0xf310, 0x0018, 0xf84a, 0x1841, 0xf300, 0x0017, 0x8104, 0x5608, 0x4704, 0xf47f, 0x1105, 0x500a, 0xf844, 0x17f9, 0xf073, 0x1816, 0xf310, 0x0018, 0xf84a, 0x183d, 0xf300, 0x0017, 0x8104, 0x560a, 0x4704, 0xf47f, 0x1106, 0x5008, 0xf844, 0x17f9, 0xf073, 0x1816, 0xf273, 0x1816, 0x5612, 0xf495, 0x560a, 0xf846, 0x1847, 0xf484, 0x6b05, 0x0100, 0xf061, 0x0080, 0x4505, 0xf273, 0x1816, 0xf3e7, 0xf600, 0x7600, 0x0002, 0xf074, 0x11c5, 0x4404, 0xf063, 0x1f40, 0xf040, 0xffff, 0xf273, 0x1816, 0xf060, 0x7f7f, 0x7600, 0x0001, 0xf074, 0x11c5, 0xf273, 0x1816, 0xf420, 0xf495, 0x4a11, 0x8811, 0xf495, 0xeefe, 0xe710, 0x7104, 0x0012, 0xf6aa, 0x1105, 0xf820, 0x1875, 0x7000, 0x0012, 0x8101, 0xf074, 0x152d, 0xf073, 0x188a, 0x00f8, 0x000b, 0x8813, 0x4812, 0x00f8, 0x000b, 0x490b, 0x8812, 0xf84d, 0x1889, 0xf310, 0x0001, 0x891a, 0xf495, 0xf072, 0x1888, 0x10ea, 0xffff, 0x80eb, 0xffff, 0x4811, 0xee02, 0x8a11, 0xfc00, -}; -static const unsigned short _section_cinit[] = { - 0x0001, 0x28e2, 0x0000, 0x0001, 0x28e3, 0x0000, 0x0001, 0x28e6, 0x0001, 0x0001, 0x28e7, 0x0000, 0x0001, 0x28e8, 0x0000, 0x0001, 0x2909, 0x0000, 0x0001, 0x290a, 0x0000, 0x0001, 0x290b, 0x0412, 0x0001, 0x290c, 0x0412, 0x0001, 0x2b67, 0x0001, 0x0000, -}; -static const unsigned short _section_const[] = { - 0x0028, 0x006e, 0x0075, 0x006c, 0x006c, 0x0029, 0x0000, 0x0025, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0000, 0x0000, 0x0000, 0x7f7f, 0xffff, 0xff7f, 0xffff, 0x3f80, 0x0000, 0x4120, 0x0000, 0x0000, 0x0000, 0x4f00, 0x0000, 0x4120, 0x0000, 0x3f80, 0x0000, 0x0000, 0x0000, 0x4f00, 0x0000, 0x4120, 0x0000, 0x3f80, 0x0000, 0x0000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0088, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0010, 0x0010, 0x0010, 0x0010, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0044, 0x0053, 0x0050, 0x0020, 0x0069, 0x006e, 0x0069, 0x0074, 0x0065, 0x0064, 0x002e, 0x002e, 0x002e, 0x0000, + 0xf495, 0x4a08, 0x4a09, 0x4a0a, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a10, 0x4a11, 0x4a12, 0x4a13, 0x4a14, 0x4a15, 0x4a16, 0x4a17, 0x4a17, 0x4a19, 0x4a0e, 0x4a06, 0x4a07, 0x4a1a, 0x4a1d, 0x4a1b, 0x4a1c, 0x68f8, 0x0007, 0x7d3f, 0x69f8, 0x0007, 0x4000, 0x68f8, 0x001d, 0xfffc, 0x4818, 0x68f8, 0x0018, 0xfffe, 0x7711, 0x0001, 0x4a08, 0x7681, 0x0001, 0x10f8, 0x031d, 0x76f8, 0x031e, 0x0000, 0xfa44, 0x00c2, 0xf495, 0xeeff, 0x7712, 0x0054, 0x960f, 0xf830, 0x00c2, 0xf074, 0x00fc, 0x7711, 0x0054, 0x6981, 0x0001, 0xf074, 0x02af, 0xf073, 0x00c4, 0xf074, 0x00fc, 0xee01, 0x8a18, 0xf495, 0x8a1c, 0x8a1b, 0x8a1d, 0x8a1a, 0x8a07, 0x8a06, 0x8a0e, 0x8a19, 0x8a17, 0x8a17, 0x8a16, 0x8a15, 0x8a14, 0x8a13, 0x8a12, 0x8a11, 0x8a10, 0x8a0d, 0x8a0c, 0x8a0b, 0x8a0a, 0x8a09, 0x8a08, 0xf4eb, 0x4a11, 0x7711, 0x0026, 0x7712, 0x0001, 0x7713, 0x0001, 0x7681, 0x0010, 0x7711, 0x0000, 0x7681, 0xffff, 0xe501, 0xf495, 0xf6bb, 0xf074, 0x0284, 0xf074, 0x0243, 0xf4e1, 0xf495, 0xf073, 0x00f3, 0xe808, 0x75f8, 0x0008, 0x0280, 0xfc00, 0x4a11, 0x60f8, 0x031d, 0x0001, 0xfa30, 0x0109, 0xf495, 0xeefe, 0x60f8, 0x031d, 0x0002, 0xf820, 0x011e, 0x7711, 0x0054, 0x6881, 0xfffe, 0xf074, 0x02ba, 0xe800, 0x75f8, 0x0008, 0x8006, 0x76f8, 0x031b, 0x0000, 0x76f8, 0x0319, 0x0000, 0x76f8, 0x031a, 0x0000, 0xf073, 0x018b, 0x10f8, 0x031a, 0x08f8, 0x0318, 0xf844, 0x012f, 0x76f8, 0x031a, 0x0000, 0x76f8, 0x031e, 0x0001, 0x76f8, 0x02c5, 0x0003, 0xf074, 0x00f7, 0x10f8, 0x031e, 0xf844, 0x018b, 0x10f8, 0x0318, 0x00f8, 0x0319, 0x08f8, 0x031a, 0x8811, 0xf495, 0x7710, 0x1000, 0xf6a9, 0xf820, 0x0146, 0xf020, 0x1000, 0xf273, 0x014a, 0x08f8, 0x0319, 0x10f8, 0x0318, 0x08f8, 0x031a, 0x80f8, 0x031b, 0x10f8, 0x031c, 0xf6b8, 0xf000, 0x8000, 0x6ff8, 0x0319, 0x0c1f, 0x75f8, 0x0008, 0x8002, 0xe800, 0x75f8, 0x0008, 0x8003, 0x10f8, 0x0316, 0xf1ef, 0xf3e1, 0x10f8, 0x0317, 0xf2a0, 0x00f8, 0x031a, 0x4e00, 0xf020, 0xffff, 0x5700, 0xf280, 0x75f8, 0x0008, 0x8000, 0x5600, 0xf0f0, 0x75f8, 0x0008, 0x8001, 0xe800, 0x75f8, 0x031b, 0x8004, 0x75f8, 0x0008, 0x8005, 0x74f8, 0x02c7, 0x8006, 0x74f8, 0x02c8, 0x8001, 0x74f8, 0x02c9, 0x8000, 0x74f8, 0x02ca, 0x8003, 0xe801, 0x74f8, 0x02cb, 0x8002, 0x75f8, 0x0008, 0x8006, 0xee02, 0x8a11, 0xfc00, 0xf495, 0x4a08, 0x4a09, 0x4a0a, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a10, 0x4a11, 0x4a12, 0x4a13, 0x4a14, 0x4a15, 0x4a16, 0x4a17, 0x4a17, 0x4a19, 0x4a0e, 0x4a06, 0x4a07, 0x4a1a, 0x4a1d, 0x4a1b, 0x4a1c, 0x68f8, 0x0007, 0x7d3f, 0x69f8, 0x0007, 0x4000, 0x68f8, 0x001d, 0xfffc, 0x4818, 0x68f8, 0x0018, 0xfffe, 0x7711, 0x0001, 0x4a08, 0x7681, 0x0040, 0x7711, 0x0055, 0x7681, 0x0000, 0xf020, 0x0800, 0x7711, 0x0057, 0xeeff, 0x1881, 0x8000, 0xf020, 0x0800, 0x1c00, 0x76f8, 0x0319, 0x0000, 0x80f8, 0x031c, 0xf074, 0x00fc, 0xee01, 0x8a18, 0xf495, 0x8a1c, 0x8a1b, 0x8a1d, 0x8a1a, 0x8a07, 0x8a06, 0x8a0e, 0x8a19, 0x8a17, 0x8a17, 0x8a16, 0x8a15, 0x8a14, 0x8a13, 0x8a12, 0x8a11, 0x8a10, 0x8a0d, 0x8a0c, 0x8a0b, 0x8a0a, 0x8a09, 0x8a08, 0xf4eb, 0xf495, 0x4a08, 0x4a09, 0x4a0a, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a10, 0x4a11, 0x4a12, 0x4a13, 0x4a14, 0x4a15, 0x4a16, 0x4a17, 0x4a17, 0x4a19, 0x4a0e, 0x4a06, 0x4a07, 0x4a1a, 0x4a1d, 0x4a1b, 0x4a1c, 0x68f8, 0x0007, 0x7d3f, 0x69f8, 0x0007, 0x4000, 0x68f8, 0x001d, 0xfffc, 0x4818, 0x68f8, 0x0018, 0xfffe, 0x7711, 0x0001, 0x4a08, 0x7681, 0x0800, 0x10f8, 0x031b, 0x00f8, 0x0319, 0x80f8, 0x0319, 0x7710, 0x1000, 0x7211, 0x0319, 0x10f8, 0x031b, 0xf5a9, 0xeeff, 0x00f8, 0x031a, 0xfa20, 0x0228, 0x80f8, 0x031a, 0xf074, 0x00fc, 0xee01, 0x8a18, 0xf495, 0x8a1c, 0x8a1b, 0x8a1d, 0x8a1a, 0x8a07, 0x8a06, 0x8a0e, 0x8a19, 0x8a17, 0x8a17, 0x8a16, 0x8a15, 0x8a14, 0x8a13, 0x8a12, 0x8a11, 0x8a10, 0x8a0d, 0x8a0c, 0x8a0b, 0x8a0a, 0x8a09, 0x8a08, 0xf4eb, 0x4a11, 0x7711, 0x0055, 0x76f8, 0x031a, 0x0000, 0x76f8, 0x0319, 0x0000, 0x76f8, 0x031b, 0x0000, 0x76f8, 0x031c, 0x0000, 0x76f8, 0x031e, 0x0000, 0x76f8, 0x031d, 0x0001, 0x7681, 0x0003, 0x7711, 0x0057, 0x7681, 0x2800, 0x7711, 0x0055, 0x7681, 0x0004, 0x7711, 0x0057, 0x7681, 0x7141, 0x7711, 0x0055, 0x7681, 0x0000, 0x7711, 0x0057, 0x7681, 0x8000, 0x7711, 0x0055, 0x7681, 0x0001, 0x7711, 0x0057, 0x7681, 0x0022, 0x7711, 0x0055, 0x7681, 0x0002, 0x7711, 0x0057, 0x7681, 0x1000, 0x7711, 0x0054, 0x7681, 0x0080, 0x8a11, 0xfc00, 0x4a11, 0x7711, 0x0038, 0x7681, 0x0000, 0x7711, 0x0039, 0x7681, 0x0000, 0x7711, 0x0038, 0x7681, 0x0001, 0x7711, 0x0039, 0x7681, 0x0030, 0x7711, 0x0038, 0x7681, 0x000e, 0x7711, 0x0039, 0x7681, 0x0002, 0x7711, 0x0038, 0x7681, 0x0004, 0x7711, 0x0039, 0x7681, 0x00a0, 0x7711, 0x0038, 0x7681, 0x0005, 0x7711, 0x0039, 0x7681, 0x0000, 0x8a11, 0xfc00, 0x4a11, 0x7711, 0x0038, 0x7681, 0x0001, 0x7711, 0x0039, 0x6981, 0x0001, 0x8a11, 0xfc00, 0x4a11, 0x7711, 0x0038, 0x7681, 0x0001, 0x7711, 0x0039, 0x6881, 0xfffe, 0x8a11, 0xfc00, }; static const unsigned short _section_vectors[] = { - 0xf273, 0x02fa, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf273, 0x0085, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf273, 0x01bc, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf273, 0x022f, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, + 0xf273, 0x00df, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf273, 0x0080, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf273, 0x018e, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf273, 0x01e8, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, }; static const struct dsp_section dsp_image[] = { - {_section_text, 0x0080, 0x180d}, - {_section_cinit, 0x2dbb, 0x001f}, - {NULL /* .bss */, 0x288d, 0x02db}, - {_section_const, 0x2b68, 0x0153}, - {NULL /* .sysmem */, 0x2cbb, 0x0100}, - {NULL /* .stack */, 0x188d, 0x1000}, + {_section_text, 0x0080, 0x0245}, + {NULL /* .bss */, 0x02c5, 0x005a}, {_section_vectors, 0x7f80, 0x0080}, - {NULL /* .dma */, 0x8000, 0x4000}, + {NULL /* .dma */, 0x8000, 0x1000}, {NULL, 0, 0} }; /* Symbol table, usable with the DSP_() macro (see dsp-target.h). */ -#define _waitack 0x00ed -#define _acked 0x28de -#define _startack 0x00e5 -#define _debugf 0x00f8 -#define _handle_int0 0x0085 -#define _status 0x288d -#define _audiohw_start 0x02e4 -#define _dma0_stopped 0x28e6 -#define _waiting 0x28e7 -#define _vsnprintf 0x0396 -#define _rebuffer 0x0130 -#define _main 0x0113 -#define _dma_init 0x028a -#define _audiohw_init 0x02b9 -#define _c_int00 0x02fa -#define _handle_dma0 0x01bc -#define _handle_dmac 0x022f -#define _last_size 0x28e4 -#define _dsp_level 0x28e2 -#define _dma0_unlocked 0x28e5 -#define _data 0x8000 -#define _sdem_addrh 0x28df -#define _sdem_addrl 0x28e0 -#define _sdem_level 0x28e3 -#define _sdem_dsp_size 0x28e1 -#define _audiohw_stop 0x02ef -#define cinit 0x2dbb -#define __args_main 0x0f88 -#define _exit 0x0344 -#define _atexit 0x0371 -#define __dtors_ptr 0x290a -#define __cleanup_ptr 0x2909 -#define _abort 0x0393 -#define __lock 0x290b -#define __unlock 0x290c -#define __printfi 0x0419 -#define _memcpy 0x152d -#define __register_lock 0x0413 -#define __register_unlock 0x0416 -#define __nop 0x0412 -#define _malloc 0x15cd -#define _memccpy 0x150d -#define _ecvt 0x0ff6 -#define _fcvt 0x12f8 -#define _atoi 0x0f9f -#define _free 0x1728 -#define __ctypes_ 0x2bac -#define _ltoa 0x14bf -#define __sys_memory 0x2cbb -#define _minit 0x159e -#define _realloc 0x1660 -#define _calloc 0x163e -#define _memmove 0x1863 +#define _handle_int0 0x0080 +#define _status 0x02c5 +#define _audiohw_start 0x02af +#define _dma0_stopped 0x031d +#define _waiting 0x031e +#define _rebuffer 0x00fc +#define _main 0x00df +#define _dma_init 0x0243 +#define _audiohw_init 0x0284 +#define _handle_dma0 0x018e +#define _handle_dmac 0x01e8 +#define _sdem_addrh 0x0316 +#define _sdem_addrl 0x0317 +#define _sdem_level 0x031a +#define _sdem_dsp_size 0x0318 +#define _audiohw_stop 0x02ba #define ___text__ 0x0080 -#define etext 0x188d -#define ___etext__ 0x188d -#define ___cinit__ 0x2dbb -#define ___bss__ 0x288d -#define end 0x2b68 -#define ___end__ 0x2b68 -#define ___data__ 0x0000 -#define edata 0x0000 -#define ___edata__ 0x0000 +#define etext 0x02c5 +#define ___etext__ 0x02c5 +#define ___data__ 0x0080 +#define edata 0x0080 +#define ___edata__ 0x0080 +#define ___bss__ 0x02c5 +#define end 0x031f +#define ___end__ 0x031f #endif diff --git a/firmware/target/arm/tms320dm320/dsp/ipc.h b/firmware/target/arm/tms320dm320/dsp/ipc.h index b307753c0f..030febd021 100644 --- a/firmware/target/arm/tms320dm320/dsp/ipc.h +++ b/firmware/target/arm/tms320dm320/dsp/ipc.h @@ -34,15 +34,15 @@ #define PACKED #endif -#define PCM_SIZE 0x8000 /* bytes */ +/* Define this if you want to use debugf on the DSP. This consumes quite a bit + * of space so it is disabled by default. */ +/* #define HAVE_DEBUG */ struct sdram_buffer { unsigned long addr; unsigned short bytes; } PACKED; -#define SDRAM_BUFFERS 4 - struct ipc_message { unsigned short msg; union { diff --git a/firmware/target/arm/tms320dm320/dsp/linker.cmd b/firmware/target/arm/tms320dm320/dsp/linker.cmd index 844fe25903..c2ae5f0c6b 100644 --- a/firmware/target/arm/tms320dm320/dsp/linker.cmd +++ b/firmware/target/arm/tms320dm320/dsp/linker.cmd @@ -1,29 +1,39 @@ --c +-c -x -stack 0x1000 -heap 0x100 --l rts500.lib + +/* The rtx500.lib should be included if you want proper initialization, + * currently the program is setup so that it is not necessary to save space. + * reset vector should jump to _c_int00 if initialization is needed. + * + * -l rts500.lib*/ MEMORY { PAGE 0: - DARAM: origin = 80h, length = 7F80h - SARAM: origin = 8000h, length = 4000h + DARAM (RWIX): origin = 80h, length = 7F00h + VECS (RIX) : origin = 7F80h, length = 80h + + /* SARAM can be read and written to, but it cannot execute and does not need + * to be initialized. */ + SARAM (RW) : origin = 8000h, length = 4000h } SECTIONS { - .text PAGE 0 - .cinit PAGE 0 - .switch PAGE 0 + .text > DARAM PAGE 0 + .cinit > DARAM PAGE 0 + .switch > DARAM PAGE 0 + .data > DARAM PAGE 0 - .bss PAGE 0 - .const PAGE 0 - .sysmem PAGE 0 - .stack PAGE 0 + .bss > DARAM PAGE 0 + .const > DARAM PAGE 0 + .sysmem > DARAM PAGE 0 + .stack > DARAM PAGE 0 - .vectors : PAGE 0 load = 7F80h + .vectors > VECS PAGE 0 /* DMA buffers for ABU mode must start on a 2*size boundary. */ - .dma : PAGE 0 load = 0x8000 + .dma > SARAM PAGE 0 } diff --git a/firmware/target/arm/tms320dm320/dsp/main.c b/firmware/target/arm/tms320dm320/dsp/main.c index 8c36e6a88b..a62bb50ba2 100644 --- a/firmware/target/arm/tms320dm320/dsp/main.c +++ b/firmware/target/arm/tms320dm320/dsp/main.c @@ -24,7 +24,6 @@ #include "ipc.h" #include "dma.h" #include "audio.h" -#include <math.h> void main(void) { TCR = 1 << 4; /* Stop the timer. */ @@ -36,7 +35,9 @@ void main(void) { dma_init(); +#if defined(HAVE_DEBUG) debugf("DSP inited..."); +#endif for (;;) { asm(" IDLE 1"); @@ -45,13 +46,6 @@ void main(void) { } /* Obsoleted/testing snippets: */ -#ifdef REMAP_VECTORS - /* Remap vectors to 0x3F80 (set in linker.cmd). */ - PMST = (PMST & 0x7f) | 0x3F80; - - /* Make sure working interrupts aren't a fluke. */ - memset((unsigned short *)0x7f80, 0, 0x80); -#endif #ifdef DATA_32_SINE for (i = 0; i < 32; i++) { diff --git a/firmware/target/arm/tms320dm320/dsp/tsc2100.c b/firmware/target/arm/tms320dm320/dsp/tsc2100.c index 5127681269..3a02eb92b4 100644 --- a/firmware/target/arm/tms320dm320/dsp/tsc2100.c +++ b/firmware/target/arm/tms320dm320/dsp/tsc2100.c @@ -39,9 +39,11 @@ void audiohw_start(void) {
/* Trigger first XEVT0 */
SPCR20 |= 1;
-}
-audiohw_stop(void) +} +
+void audiohw_stop(void) { - /* Reset the transmitter */ - SPCR20&=0xFFFE; + /* Reset the transmitter */ + SPCR20&=0xFFFE; } + diff --git a/firmware/target/arm/tms320dm320/dsp/vectors.asm b/firmware/target/arm/tms320dm320/dsp/vectors.asm index 1551d996fc..98d1409cb3 100644 --- a/firmware/target/arm/tms320dm320/dsp/vectors.asm +++ b/firmware/target/arm/tms320dm320/dsp/vectors.asm @@ -27,13 +27,17 @@ ; External Functions .global _handle_int0 - .global _c_int00 + .global _main .global _handle_dma0 .global _handle_dmac .sect ".vectors" ; Reset Interrupt -RS_V: BD _c_int00 +; The rtx500.lib should be included if you want proper initialization, +; currently the program is setup so that it is not necessary to save space. +; reset vector should jump to _c_int00 instead of main if initialization is +; needed. +RS_V: BD _main NOP NOP diff --git a/firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c b/firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c index 3f15bd6dd0..cdec2ab77c 100644 --- a/firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c +++ b/firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c @@ -91,6 +91,7 @@ void pcm_play_dma_start(const void *addr, size_t size) void pcm_play_dma_stop(void) { DSP_(_dma0_stopped)=1; + dsp_wake(); } void pcm_play_lock(void) @@ -108,6 +109,7 @@ void pcm_play_dma_pause(bool pause) if (pause) { DSP_(_dma0_stopped)=2; + dsp_wake(); } else { |