diff options
| author | dante <dante@NetBSD.org> | 2000-04-30 18:52:14 +0000 |
|---|---|---|
| committer | dante <dante@NetBSD.org> | 2000-04-30 18:52:14 +0000 |
| commit | 1dbea6c0f9735fa208f0d09565b34a62b9aa1648 (patch) | |
| tree | 208fff6023ba39553a7400a52e6590e2b4583c6c /sys/dev | |
| parent | ff84aeb762c982848b553b64400dae8f193ee77e (diff) | |
Add new microcode for all of the supported boards.
Fix minor glitches.
Add preliminary support for ASB-3940U3W host adapters; it might work w/ autotermination on.
ASB-3940U3W support is not yet tested due to lack of board.
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/ic/adw.c | 56 | ||||
| -rw-r--r-- | sys/dev/ic/adw.h | 9 | ||||
| -rw-r--r-- | sys/dev/ic/adwlib.c | 1304 | ||||
| -rw-r--r-- | sys/dev/ic/adwlib.h | 315 | ||||
| -rw-r--r-- | sys/dev/ic/adwmcode.c | 1678 | ||||
| -rw-r--r-- | sys/dev/ic/adwmcode.h | 6 | ||||
| -rw-r--r-- | sys/dev/pci/adw_pci.c | 28 |
7 files changed, 2462 insertions, 934 deletions
diff --git a/sys/dev/ic/adw.c b/sys/dev/ic/adw.c index 86cf1c5057c..2520f8880ad 100644 --- a/sys/dev/ic/adw.c +++ b/sys/dev/ic/adw.c @@ -1,4 +1,4 @@ -/* $NetBSD: adw.c,v 1.15 2000/03/23 07:01:28 thorpej Exp $ */ +/* $NetBSD: adw.c,v 1.16 2000/04/30 18:52:15 dante Exp $ */ /* * Generic driver for the Advanced Systems Inc. SCSI controllers @@ -535,9 +535,22 @@ adw_init(sc) } else { AdvResetChip(sc->sc_iot, sc->sc_ioh); - warn_code = (sc->chip_type == ADV_CHIP_ASC3550)? - AdvInitFrom3550EEP(sc) : - AdvInitFrom38C0800EEP(sc); + switch(sc->chip_type) { + case ADV_CHIP_ASC3550: + warn_code = AdvInitFrom3550EEP(sc); + break; + + case ADV_CHIP_ASC38C0800: + warn_code = AdvInitFrom38C0800EEP(sc); + break; + + case ADV_CHIP_ASC38C1600: + warn_code = AdvInitFrom38C1600EEP(sc); + break; + + default: + return -1; + } if (warn_code & ASC_WARN_EEPROM_CHKSUM) printf("%s: Bad checksum found. " @@ -552,7 +565,7 @@ adw_init(sc) sc->isr_callback = (ADW_CALLBACK) adw_isr_callback; sc->async_callback = (ADW_CALLBACK) adw_async_callback; - return (0); + return 0; } @@ -612,11 +625,25 @@ adw_attach(sc) /* - * Initialize the ASC3550. + * Initialize the adapter */ - error = (sc->chip_type == ADV_CHIP_ASC3550)? - AdvInitAsc3550Driver(sc) : - AdvInitAsc38C0800Driver(sc); + switch(sc->chip_type) { + case ADV_CHIP_ASC3550: + error = AdvInitAsc3550Driver(sc); + break; + + case ADV_CHIP_ASC38C0800: + error = AdvInitAsc38C0800Driver(sc); + break; + + case ADV_CHIP_ASC38C1600: + error = AdvInitAsc38C1600Driver(sc); + break; + + default: + return; + } + switch (error) { case ASC_IERR_MCODE_CHKSUM: panic("%s: Microcode checksum error", @@ -837,8 +864,13 @@ adw_build_req(xs, ccb, flags) /* * Set CDB length and copy it to the request structure. + * For wide boards a CDB length maximum of 16 bytes + * is supported. */ - bcopy(xs->cmd, &scsiqp->cdb, scsiqp->cdb_len = xs->cmdlen); + bcopy(xs->cmd, &scsiqp->cdb, ((scsiqp->cdb_len = xs->cmdlen) <= 12)? + xs->cmdlen : 12 ); + if(xs->cmdlen > 12) + bcopy(&(xs->cmd[12]), &scsiqp->cdb16, xs->cmdlen - 12); scsiqp->target_id = sc_link->scsipi_scsi.target; scsiqp->target_lun = sc_link->scsipi_scsi.lun; @@ -981,9 +1013,11 @@ adw_intr(arg) */ if ((xs = TAILQ_FIRST(&sc->sc_queue)) != NULL) (void) adw_scsi_cmd(xs); + + return (1); } - return (1); + return (0); } diff --git a/sys/dev/ic/adw.h b/sys/dev/ic/adw.h index a7654c543d8..ea3c0565792 100644 --- a/sys/dev/ic/adw.h +++ b/sys/dev/ic/adw.h @@ -1,4 +1,4 @@ -/* $NetBSD: adw.h,v 1.5 2000/02/03 20:29:15 dante Exp $ */ +/* $NetBSD: adw.h,v 1.6 2000/04/30 18:52:15 dante Exp $ */ /* * Generic driver definitions and exported functions for the Advanced @@ -80,10 +80,11 @@ typedef struct adw_carrier ADW_CARRIER; /* * Mask used to eliminate low 4 bits of carrier 'next_vpa' field. */ -#define ASC_NEXT_VPA_MASK 0xFFFFFFF0 +#define ASC_NEXT_VPA_MASK 0xFFFFFFF0 -#define ASC_RQ_DONE 0x00000001 -#define ASC_CQ_STOPPER 0x00000000 +#define ASC_RQ_DONE 0x00000001 +#define ASC_RQ_GOOD 0x00000002 +#define ASC_CQ_STOPPER 0x00000000 #define ASC_GET_CARRP(carrp) ((carrp) & ASC_NEXT_VPA_MASK) diff --git a/sys/dev/ic/adwlib.c b/sys/dev/ic/adwlib.c index 51015a6ed98..38634730abf 100644 --- a/sys/dev/ic/adwlib.c +++ b/sys/dev/ic/adwlib.c @@ -1,4 +1,4 @@ -/* $NetBSD: adwlib.c,v 1.9 2000/02/04 16:23:14 dante Exp $ */ +/* $NetBSD: adwlib.c,v 1.10 2000/04/30 18:52:15 dante Exp $ */ /* * Low level routines for the Advanced Systems Inc. SCSI controllers chips @@ -42,7 +42,7 @@ /* * advansys.c - Linux Host Driver for AdvanSys SCSI Adapters * - * Copyright (c) 1995-1999 Advanced System Products, Inc. + * Copyright (c) 1995-2000 Advanced System Products, Inc. * All Rights Reserved. * * Redistribution and use in source and binary forms, with or without @@ -83,12 +83,16 @@ static u_int16_t AdvGet3550EEPConfig __P((bus_space_tag_t, bus_space_handle_t, ADW_EEP_3550_CONFIG *)); static u_int16_t AdvGet38C0800EEPConfig __P((bus_space_tag_t, bus_space_handle_t, ADW_EEP_38C0800_CONFIG *)); +static u_int16_t AdvGet38C1600EEPConfig __P((bus_space_tag_t, bus_space_handle_t, + ADW_EEP_38C1600_CONFIG *)); static u_int16_t AdvReadEEPWord __P((bus_space_tag_t, bus_space_handle_t, int)); static void AdvWaitEEPCmd __P((bus_space_tag_t, bus_space_handle_t)); static void AdvSet3550EEPConfig __P((bus_space_tag_t, bus_space_handle_t, ADW_EEP_3550_CONFIG *)); static void AdvSet38C0800EEPConfig __P((bus_space_tag_t, bus_space_handle_t, ADW_EEP_38C0800_CONFIG *)); +static void AdvSet38C1600EEPConfig __P((bus_space_tag_t, bus_space_handle_t, + ADW_EEP_38C1600_CONFIG *)); static void AdvInquiryHandling __P((ADW_SOFTC *, ADW_SCSI_REQ_Q *)); static void AdvSleepMilliSecond __P((u_int32_t)); @@ -206,6 +210,71 @@ Default_38C0800_EEPROM_Config = { 0 /* 63 reserved */ }; +static ADW_EEP_38C1600_CONFIG +Default_38C1600_EEPROM_Config = { + ADW_EEPROM_BIOS_ENABLE, /* 00 cfg_lsw */ + 0x0000, /* 01 cfg_msw */ + 0xFFFF, /* 02 disc_enable */ + 0xFFFF, /* 03 wdtr_able */ + 0x5555, /* 04 sdtr_speed1 */ + 0xFFFF, /* 05 start_motor */ + 0xFFFF, /* 06 tagqng_able */ + 0xFFFF, /* 07 bios_scan */ + 0, /* 08 scam_tolerant */ + 7, /* 09 adapter_scsi_id */ + 0, /* bios_boot_delay */ + 3, /* 10 scsi_reset_delay */ + 0, /* bios_id_lun */ + 0, /* 11 termination_se */ + 0, /* termination_lvd */ + 0xFFE7, /* 12 bios_ctrl */ + 0x5555, /* 13 sdtr_speed2 */ + 0x5555, /* 14 sdtr_speed3 */ + ASC_DEF_MAX_HOST_QNG, /* 15 max_host_qng */ + ASC_DEF_MAX_DVC_QNG, /* max_dvc_qng */ + 0, /* 16 dvc_cntl */ + 0x5555, /* 17 sdtr_speed4 */ + 0, /* 18 serial_number_word1 */ + 0, /* 19 serial_number_word2 */ + 0, /* 20 serial_number_word3 */ + 0, /* 21 check_sum */ + { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, /* 22-29 oem_name[16] */ + 0, /* 30 dvc_err_code */ + 0, /* 31 adv_err_code */ + 0, /* 32 adv_err_addr */ + 0, /* 33 saved_dvc_err_code */ + 0, /* 34 saved_adv_err_code */ + 0, /* 35 saved_adv_err_addr */ + 0, /* 36 reserved */ + 0, /* 37 reserved */ + 0, /* 38 reserved */ + 0, /* 39 reserved */ + 0, /* 40 reserved */ + 0, /* 41 reserved */ + 0, /* 42 reserved */ + 0, /* 43 reserved */ + 0, /* 44 reserved */ + 0, /* 45 reserved */ + 0, /* 46 reserved */ + 0, /* 47 reserved */ + 0, /* 48 reserved */ + 0, /* 49 reserved */ + 0, /* 50 reserved */ + 0, /* 51 reserved */ + 0, /* 52 reserved */ + 0, /* 53 reserved */ + 0, /* 54 reserved */ + 0, /* 55 reserved */ + 0, /* 56 cisptr_lsw */ + 0, /* 57 cisprt_msw */ + PCI_VENDOR_ADVSYS, /* 58 subsysvid */ + PCI_PRODUCT_ADVSYS_U3W, /* 59 subsysid */ + 0, /* 60 reserved */ + 0, /* 61 reserved */ + 0, /* 62 reserved */ + 0 /* 63 reserved */ +}; + /* * Initialize the ASC3550. * @@ -247,7 +316,7 @@ ADW_SOFTC *sc; * that a chip reset does not clear RISC LRAM. */ for (i = 0; i < ASC_MC_BIOSLEN/2; i++) { - ADW_READ_WORD_LRAM(iot, ioh, ASC_MC_BIOSMEM + (2*i), bios_mem[i]); + ADW_READ_WORD_LRAM(iot, ioh, ASC_MC_BIOSMEM+(2*i), bios_mem[i]); } /* @@ -314,7 +383,7 @@ ADW_SOFTC *sc; word++; } else { ADW_WRITE_WORD_AUTO_INC_LRAM(iot, ioh, (((u_int16_t) - adv_asc3550_mcode[(adv_asc3550_mcode[i] * 2) + 1] <<8) | + adv_asc3550_mcode[(adv_asc3550_mcode[i] * 2) + 1] <<8)| adv_asc3550_mcode[adv_asc3550_mcode[i] * 2])); word++; } @@ -389,11 +458,6 @@ ADW_SOFTC *sc; * to ignore DMA parity errors. */ if (sc->cfg.control_flag & CONTROL_FLAG_IGNORE_PERR) { - /* - * Note: Don't remove the use of a temporary variable in - * the following code, otherwise some C compiler - * might turn the following lines into a no-op. - */ ADW_READ_WORD_LRAM(iot, ioh, ASC_MC_CONTROL_FLAG, word); word |= CONTROL_FLAG_IGNORE_PERR; ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_CONTROL_FLAG, word); @@ -488,8 +552,8 @@ ADW_SOFTC *sc; * after it is started below. */ ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_DEFAULT_SCSI_CFG0, - ADW_PARITY_EN | ADW_SEL_TMO_LONG | ADW_OUR_ID_EN | - sc->chip_scsi_id); + ADW_PARITY_EN | ADW_QUEUE_128 | ADW_SEL_TMO_LONG | + ADW_OUR_ID_EN | sc->chip_scsi_id); /* * Determine SCSI_CFG1 Microcode Default Value. @@ -505,7 +569,7 @@ ADW_SOFTC *sc; * If all three connectors are in use, return an error. */ if ((scsi_cfg1 & CABLE_ILLEGAL_A) == 0 || - (scsi_cfg1 & CABLE_ILLEGAL_B) == 0) { + (scsi_cfg1 & CABLE_ILLEGAL_B) == 0) { return ASC_IERR_ILLEGAL_CONNECTION; } @@ -537,15 +601,19 @@ ADW_SOFTC *sc; */ if (sc->cfg.termination == 0) { /* - * The software always controls termination by setting TERM_CTL_SEL. - * If TERM_CTL_SEL were set to 0, the hardware would set termination. + * The software always controls termination by setting + * TERM_CTL_SEL. + * If TERM_CTL_SEL were set to 0, the hardware would set + * termination. */ sc->cfg.termination |= ADW_TERM_CTL_SEL; switch(scsi_cfg1 & ADW_CABLE_DETECT) { /* TERM_CTL_H: on, TERM_CTL_L: on */ - case 0x3: case 0x7: case 0xB: case 0xD: case 0xE: case 0xF: - sc->cfg.termination |= (ADW_TERM_CTL_H | ADW_TERM_CTL_L); + case 0x3: case 0x7: case 0xB: + case 0xD: case 0xE: case 0xF: + sc->cfg.termination |= + (ADW_TERM_CTL_H | ADW_TERM_CTL_L); break; /* TERM_CTL_H: on, TERM_CTL_L: off */ @@ -655,11 +723,6 @@ ADW_SOFTC *sc; ADW_WRITE_BYTE_REGISTER(iot, ioh, IOPB_INTR_ENABLES, (ADW_INTR_ENABLE_HOST_INTR | ADW_INTR_ENABLE_GLOBAL_INTR)); - /* - * Note: Don't remove the use of a temporary variable in - * the following code, otherwise some C compiler - * might turn the following lines into a no-op. - */ ADW_READ_WORD_LRAM(iot, ioh, ASC_MC_CODE_BEGIN_ADDR, word); ADW_WRITE_WORD_REGISTER(iot, ioh, IOPW_PC, word); @@ -954,11 +1017,6 @@ ADW_SOFTC *sc; * to ignore DMA parity errors. */ if (sc->cfg.control_flag & CONTROL_FLAG_IGNORE_PERR) { - /* - * Note: Don't remove the use of a temporary variable in - * the following code, otherwise some C compiler - * might turn the following lines into a no-op. - */ ADW_READ_WORD_LRAM(iot, ioh, ASC_MC_CONTROL_FLAG, word); word |= CONTROL_FLAG_IGNORE_PERR; ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_CONTROL_FLAG, word); @@ -1014,8 +1072,8 @@ ADW_SOFTC *sc; * after it is started below. */ ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_DEFAULT_SCSI_CFG0, - ADW_PARITY_EN | ADW_SEL_TMO_LONG | ADW_OUR_ID_EN | - sc->chip_scsi_id); + ADW_PARITY_EN | ADW_QUEUE_128 | ADW_SEL_TMO_LONG | + ADW_OUR_ID_EN | sc->chip_scsi_id); /* * Determine SCSI_CFG1 Microcode Default Value. @@ -1214,8 +1272,542 @@ ADW_SOFTC *sc; /* * Restore per TID negotiated values. */ - ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_WDTR_ABLE, wdtr_able); - ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_SDTR_ABLE, sdtr_able); + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_WDTR_ABLE, + wdtr_able); + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_SDTR_ABLE, + sdtr_able); + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_TAGQNG_ABLE, + tagqng_able); + for (tid = 0; tid <= ADW_MAX_TID; tid++) { + ADW_WRITE_BYTE_LRAM(iot, ioh, + ASC_MC_NUMBER_OF_MAX_CMD + tid, + max_cmd[tid]); + } + } else { + if (AdvResetCCB(sc) != ADW_TRUE) { + warn_code = ASC_WARN_BUSRESET_ERROR; + } + } + } + + return warn_code; +} + + +/* + * Initialize the ASC-38C1600. + * + * On failure set the ASC_DVC_VAR field 'err_code' and return ADV_ERROR. + * + * For a non-fatal error return a warning code. If there are no warnings + * then 0 is returned. + */ +int +AdvInitAsc38C1600Driver(sc) +ADW_SOFTC *sc; +{ + bus_space_tag_t iot = sc->sc_iot; + bus_space_handle_t ioh = sc->sc_ioh; + u_int16_t warn_code; + u_int32_t sum; + int begin_addr; + int end_addr; + u_int16_t code_sum; + int word; + int i, j; + int adv_asc38C1600_expanded_size; + u_int16_t scsi_cfg1; + u_int8_t byte; + u_int8_t tid; + u_int16_t bios_mem[ASC_MC_BIOSLEN/2]; /* BIOS RISC Memory + 0x40-0x8F. */ + u_int16_t wdtr_able, sdtr_able, ppr_able, tagqng_able; + u_int8_t max_cmd[ADW_MAX_TID + 1]; + + + warn_code = 0; + + + /* + * Save the RISC memory BIOS region before writing the microcode. + * The BIOS may already be loaded and using its RISC LRAM region + * so its region must be saved and restored. + * + * Note: This code makes the assumption, which is currently true, + * that a chip reset does not clear RISC LRAM. + */ + for (i = 0; i < ASC_MC_BIOSLEN/2; i++) { + ADW_READ_WORD_LRAM(iot, ioh, ASC_MC_BIOSMEM + (2 * i), bios_mem[i]); + } + + /* + * Save current per TID negotiated values. + */ + ADW_READ_WORD_LRAM(iot, ioh, ASC_MC_WDTR_ABLE, wdtr_able); + ADW_READ_WORD_LRAM(iot, ioh, ASC_MC_SDTR_ABLE, sdtr_able); + ADW_READ_WORD_LRAM(iot, ioh, ASC_MC_PPR_ABLE, ppr_able); + ADW_READ_WORD_LRAM(iot, ioh, ASC_MC_TAGQNG_ABLE, tagqng_able); + for (tid = 0; tid <= ADW_MAX_TID; tid++) { + ADW_READ_BYTE_LRAM(iot, ioh, ASC_MC_NUMBER_OF_MAX_CMD + tid, + max_cmd[tid]); + } + + /* + * RAM BIST (RAM Built-In Self Test) + * + * Address : I/O base + offset 0x38h register (byte). + * Function: Bit 7-6(RW) : RAM mode + * Normal Mode : 0x00 + * Pre-test Mode : 0x40 + * RAM Test Mode : 0x80 + * Bit 5 : unused + * Bit 4(RO) : Done bit + * Bit 3-0(RO) : Status + * Host Error : 0x08 + * Int_RAM Error : 0x04 + * RISC Error : 0x02 + * SCSI Error : 0x01 + * No Error : 0x00 + * + * Note: RAM BIST code should be put right here, before loading the + * microcode and after saving the RISC memory BIOS region. + */ + + /* + * LRAM Pre-test + * + * Write PRE_TEST_MODE (0x40) to register and wait for 10 milliseconds. + * If Done bit not set or low nibble not PRE_TEST_VALUE (0x05), return + * an error. Reset to NORMAL_MODE (0x00) and do again. If cannot reset + * to NORMAL_MODE, return an error too. + */ + for (i = 0; i < 2; i++) { + ADW_WRITE_BYTE_REGISTER(iot, ioh, IOPB_RAM_BIST, PRE_TEST_MODE); + AdvSleepMilliSecond(10); /* Wait for 10ms before reading back. */ + byte = ADW_READ_BYTE_REGISTER(iot, ioh, IOPB_RAM_BIST); + if ((byte & RAM_TEST_DONE) == 0 || (byte & 0x0F) != + PRE_TEST_VALUE) { + return ASC_IERR_BIST_PRE_TEST; + } + + ADW_WRITE_BYTE_REGISTER(iot, ioh, IOPB_RAM_BIST, NORMAL_MODE); + AdvSleepMilliSecond(10); /* Wait for 10ms before reading back. */ + if (ADW_READ_BYTE_REGISTER(iot, ioh, IOPB_RAM_BIST) + != NORMAL_VALUE) { + return ASC_IERR_BIST_PRE_TEST; + } + } + + /* + * LRAM Test - It takes about 1.5 ms to run through the test. + * + * Write RAM_TEST_MODE (0x80) to register and wait for 10 milliseconds. + * If Done bit not set or Status not 0, save register byte, set the + * err_code, and return an error. + */ + ADW_WRITE_BYTE_REGISTER(iot, ioh, IOPB_RAM_BIST, RAM_TEST_MODE); + AdvSleepMilliSecond(10); /* Wait for 10ms before checking status. */ + + byte = ADW_READ_BYTE_REGISTER(iot, ioh, IOPB_RAM_BIST); + if ((byte & RAM_TEST_DONE) == 0 || (byte & RAM_TEST_STATUS) != 0) { + /* Get here if Done bit not set or Status not 0. */ + return ASC_IERR_BIST_RAM_TEST; + } + + /* We need to reset back to normal mode after LRAM test passes. */ + ADW_WRITE_BYTE_REGISTER(iot, ioh, IOPB_RAM_BIST, NORMAL_MODE); + + + /* + * Load the Microcode + * + * Write the microcode image to RISC memory starting at address 0. + * + */ + ADW_WRITE_WORD_REGISTER(iot, ioh, IOPW_RAM_ADDR, 0); + + /* Assume the following compressed format of the microcode buffer: + * + * 254 word (508 byte) table indexed by byte code followed + * by the following byte codes: + * + * 1-Byte Code: + * 00: Emit word 0 in table. + * 01: Emit word 1 in table. + * . + * FD: Emit word 253 in table. + * + * Multi-Byte Code: + * FE WW WW: (3 byte code) Word to emit is the next word WW WW. + * FF BB WW WW: (4 byte code) Emit BB count times next word WW WW. + */ + word = 0; + for (i = 253 * 2; i < adv_asc38C1600_mcode_size; i++) { + if (adv_asc38C1600_mcode[i] == 0xff) { + for (j = 0; j < adv_asc38C1600_mcode[i + 1]; j++) { + ADW_WRITE_WORD_AUTO_INC_LRAM(iot, ioh, + (((u_int16_t) + adv_asc38C1600_mcode[i + 3] << 8) | + adv_asc38C1600_mcode[i + 2])); + word++; + } + i += 3; + } else if (adv_asc38C1600_mcode[i] == 0xfe) { + ADW_WRITE_WORD_AUTO_INC_LRAM(iot, ioh, (((u_int16_t) + adv_asc38C1600_mcode[i + 2] << 8) | + adv_asc38C1600_mcode[i + 1])); + i += 2; + word++; + } else { + ADW_WRITE_WORD_AUTO_INC_LRAM(iot, ioh, (((u_int16_t) + adv_asc38C1600_mcode[(adv_asc38C1600_mcode[i] * 2) + 1] << 8) | + adv_asc38C1600_mcode[adv_asc38C1600_mcode[i] * 2])); + word++; + } + } + + /* + * Set 'word' for later use to clear the rest of memory and save + * the expanded mcode size. + */ + word *= 2; + adv_asc38C1600_expanded_size = word; + + /* + * Clear the rest of ASC-38C0800 Internal RAM (16KB). + */ + for (; word < ADV_38C1600_MEMSIZE; word += 2) { + ADW_WRITE_WORD_AUTO_INC_LRAM(iot, ioh, 0); + } + + /* + * Verify the microcode checksum. + */ + sum = 0; + ADW_WRITE_WORD_REGISTER(iot, ioh, IOPW_RAM_ADDR, 0); + + for (word = 0; word < adv_asc38C1600_expanded_size; word += 2) { + sum += ADW_READ_WORD_AUTO_INC_LRAM(iot, ioh); + } + + if (sum != adv_asc38C1600_mcode_chksum) { + return ASC_IERR_MCODE_CHKSUM; + } + + /* + * Restore the RISC memory BIOS region. + */ + for (i = 0; i < ASC_MC_BIOSLEN/2; i++) { + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_BIOSMEM + (2 * i), + bios_mem[i]); + } + + /* + * Calculate and write the microcode code checksum to the microcode + * code checksum location ASC_MC_CODE_CHK_SUM (0x2C). + */ + ADW_READ_WORD_LRAM(iot, ioh, ASC_MC_CODE_BEGIN_ADDR, begin_addr); + ADW_READ_WORD_LRAM(iot, ioh, ASC_MC_CODE_END_ADDR, end_addr); + code_sum = 0; + ADW_WRITE_WORD_REGISTER(iot, ioh, IOPW_RAM_ADDR, begin_addr); + for (word = begin_addr; word < end_addr; word += 2) { + code_sum += ADW_READ_WORD_AUTO_INC_LRAM(iot, ioh); + } + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_CODE_CHK_SUM, code_sum); + + /* + * Read microcode version and date. + */ + ADW_READ_WORD_LRAM(iot, ioh, ASC_MC_VERSION_DATE, + sc->cfg.mcode_date); + ADW_READ_WORD_LRAM(iot, ioh, ASC_MC_VERSION_NUM, + sc->cfg.mcode_version); + + /* + * Set the chip type to indicate the ASC38C1600. + */ + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_CHIP_TYPE, ADV_CHIP_ASC38C1600); + + /* + * Write 1 to bit 14 'DIS_TERM_DRV' in the SCSI_CFG1 register. + * When DIS_TERM_DRV set to 1, C_DET[3:0] will reflect current + * cable detection and then we are able to read C_DET[3:0]. + * + * Note: We will reset DIS_TERM_DRV to 0 in the 'Set SCSI_CFG1 + * Microcode Default Value' section below. + */ + scsi_cfg1 = ADW_READ_WORD_REGISTER(iot, ioh, IOPW_SCSI_CFG1); + ADW_WRITE_WORD_REGISTER(iot, ioh, IOPW_SCSI_CFG1, + scsi_cfg1 | ADW_DIS_TERM_DRV); + + /* + * If the PCI Configuration Command Register "Parity Error Response + * Control" Bit was clear (0), then set the microcode variable + * 'control_flag' CONTROL_FLAG_IGNORE_PERR flag to tell the microcode + * to ignore DMA parity errors. + */ + if (sc->cfg.control_flag & CONTROL_FLAG_IGNORE_PERR) { + ADW_READ_WORD_LRAM(iot, ioh, ASC_MC_CONTROL_FLAG, word); + word |= CONTROL_FLAG_IGNORE_PERR; + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_CONTROL_FLAG, word); + } + + /* + * If the BIOS control flag AIPP (Asynchronous Information + * Phase Protection) disable bit is not set, then set the firmware + * 'control_flag' CONTROL_FLAG_ENABLE_AIPP bit to enable + * AIPP checking and encoding. + */ + if ((sc->bios_ctrl & BIOS_CTRL_AIPP_DIS) == 0) { + ADW_READ_WORD_LRAM(iot, ioh, ASC_MC_CONTROL_FLAG, word); + word |= CONTROL_FLAG_ENABLE_AIPP; + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_CONTROL_FLAG, word); + } + + /* + * For ASC-38C1600 use DMA_CFG0 default values: FIFO_THRESH_80B [6:4], + * and START_CTL_TH [3:2]. + */ + ADW_WRITE_BYTE_REGISTER(iot, ioh, IOPB_DMA_CFG0, + FIFO_THRESH_80B | START_CTL_TH | READ_CMD_MRM); + + /* + * Microcode operating variables for WDTR, SDTR, and command tag + * queuing will be set in AdvInquiryHandling() based on what a + * device reports it is capable of in Inquiry byte 7. + * + * If SCSI Bus Resets have been disabled, then directly set + * SDTR and WDTR from the EEPROM configuration. This will allow + * the BIOS and warm boot to work without a SCSI bus hang on + * the Inquiry caused by host and target mismatched DTR values. + * Without the SCSI Bus Reset, before an Inquiry a device can't + * be assumed to be in Asynchronous, Narrow mode. + */ + if ((sc->bios_ctrl & BIOS_CTRL_RESET_SCSI_BUS) == 0) { + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_WDTR_ABLE, sc->wdtr_able); + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_SDTR_ABLE, sc->sdtr_able); + } + + /* + * Set microcode operating variables for DISC and SDTR_SPEED1, + * SDTR_SPEED2, SDTR_SPEED3, and SDTR_SPEED4 based on the EEPROM + * configuration values. + * + * The SDTR per TID bitmask overrides the SDTR_SPEED1, SDTR_SPEED2, + * SDTR_SPEED3, and SDTR_SPEED4 values so it is safe to set them + * without determining here whether the device supports SDTR. + */ + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_DISC_ENABLE, sc->cfg.disc_enable); + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_SDTR_SPEED1, sc->sdtr_speed1); + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_SDTR_SPEED2, sc->sdtr_speed2); + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_SDTR_SPEED3, sc->sdtr_speed3); + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_SDTR_SPEED4, sc->sdtr_speed4); + + /* + * Set SCSI_CFG0 Microcode Default Value. + * + * The microcode will set the SCSI_CFG0 register using this value + * after it is started below. + */ + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_DEFAULT_SCSI_CFG0, + ADW_PARITY_EN | ADW_QUEUE_128 | ADW_SEL_TMO_LONG | + ADW_OUR_ID_EN | sc->chip_scsi_id); + + /* + * Calculate SCSI_CFG1 Microcode Default Value. + * + * The microcode will set the SCSI_CFG1 register using this value + * after it is started below. + * + * Each ASC-38C1600 function has only two cable detect bits. + * The bus mode override bits are in IOPB_SOFT_OVER_WR. + */ + scsi_cfg1 = ADW_READ_WORD_REGISTER(iot, ioh, IOPW_SCSI_CFG1); + + /* + * If the cable is reversed all of the SCSI_CTRL register signals + * will be set. Check for and return an error if this condition is + * found. + */ + if ((ADW_READ_WORD_REGISTER(iot, ioh, IOPW_SCSI_CTRL) & 0x3F07) == + 0x3F07) { + return ASC_IERR_REVERSED_CABLE; + } + + /* + * Each ASC-38C1600 function has two connectors. Only an HVD device + * can not be connected to either connector. An LVD device or SE device + * may be connected to either connecor. If an SE device is connected, + * then at most Ultra speed (20 Mhz) can be used on both connectors. + * + * If an HVD device is attached, return an error. + */ + if (scsi_cfg1 & ADW_HVD) { + return ASC_IERR_HVD_DEVICE; + } + + /* + * Each function in the ASC-38C1600 uses only the SE cable detect and + * termination because there are two connectors for each function. Each + * function may use either LVD or SE mode. Corresponding the SE automatic + * termination control EEPROM bits are used for each function. Each + * function has its own EEPROM. If SE automatic control is enabled for + * the function, then set the termination value based on a table listed + * in a_condor.h. + * + * If manual termination is specified in the EEPROM for the function, + * then 'termination' was set-up in AscInitFrom38C1600EEPROM() and is + * ready to be 'ored' into SCSI_CFG1. + */ + if ((sc->cfg.termination & ADW_TERM_SE) == 0) { + /* SE automatic termination control is enabled. */ + switch(scsi_cfg1 & ADW_C_DET_SE) { + /* TERM_SE_HI: on, TERM_SE_LO: on */ + case 0x1: case 0x2: case 0x3: + sc->cfg.termination |= ADW_TERM_SE; + break; + + case 0x0: + /* !!!!TODO!!!! */ +// if (ASC_PCI_ID2FUNC(asc_dvc->cfg->pci_slot_info) == 0) { + /* Function 0 - TERM_SE_HI: off, TERM_SE_LO: off */ +// } +// else +// { + /* Function 1 - TERM_SE_HI: on, TERM_SE_LO: off */ + sc->cfg.termination |= ADW_TERM_SE_HI; +// } + break; + } + } + + /* + * Clear any set TERM_SE bits. + */ + scsi_cfg1 &= ~ADW_TERM_SE; + + /* + * Invert the TERM_SE bits and then set 'scsi_cfg1'. + */ + scsi_cfg1 |= (~sc->cfg.termination & ADW_TERM_SE); + + /* + * Clear Big Endian and Terminator Polarity bits and set possibly + * modified termination control bits in the Microcode SCSI_CFG1 + * Register Value. + */ + scsi_cfg1 &= (~ADW_BIG_ENDIAN & ~ADW_DIS_TERM_DRV & ~ADW_TERM_POL); + + /* + * Set SCSI_CFG1 Microcode Default Value + * + * Set possibly modified termination control bits in the Microcode + * SCSI_CFG1 Register Value. + * + * The microcode will set the SCSI_CFG1 register using this value + * after it is started below. + */ + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_DEFAULT_SCSI_CFG1, scsi_cfg1); + + /* + * Set MEM_CFG Microcode Default Value + * + * The microcode will set the MEM_CFG register using this value + * after it is started below. + * + * MEM_CFG may be accessed as a word or byte, but only bits 0-7 + * are defined. + * + * ASC-38C1600 has 32KB internal memory. + */ + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_DEFAULT_MEM_CFG, + ADW_BIOS_EN | ADW_RAM_SZ_32KB); + + /* + * Set SEL_MASK Microcode Default Value + * + * The microcode will set the SEL_MASK register using this value + * after it is started below. + */ + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_DEFAULT_SEL_MASK, + ADW_TID_TO_TIDMASK(sc->chip_scsi_id)); + + /* + * Set-up the Host->RISC Initiator Command Queue (ICQ). + */ + + if ((sc->icq_sp = sc->carr_freelist) == NULL) { + return ASC_IERR_NO_CARRIER; + } + sc->carr_freelist = adw_carrier_phys_kv(sc, + ASC_GET_CARRP(sc->icq_sp->next_vpa)); + + /* + * The first command issued will be placed in the stopper carrier. + */ + sc->icq_sp->next_vpa = ASC_CQ_STOPPER; + + /* + * Set RISC ICQ physical address start value. Initialize the + * COMMA register to the same value otherwise the RISC will + * prematurely detect a command is available. + */ + ADW_WRITE_DWORD_LRAM(iot, ioh, ASC_MC_ICQ, sc->icq_sp->carr_pa); + ADW_WRITE_DWORD_REGISTER(iot, ioh, IOPDW_COMMA, sc->icq_sp->carr_pa); + + /* + * Set-up the RISC->Host Initiator Response Queue (IRQ). + */ + if ((sc->irq_sp = sc->carr_freelist) == NULL) { + return ASC_IERR_NO_CARRIER; + } + sc->carr_freelist = adw_carrier_phys_kv(sc, + ASC_GET_CARRP(sc->irq_sp->next_vpa)); + + /* + * The first command completed by the RISC will be placed in + * the stopper. + * + * Note: Set 'next_vpa' to ASC_CQ_STOPPER. When the request is + * completed the RISC will set the ASC_RQ_STOPPER bit. + */ + sc->irq_sp->next_vpa = ASC_CQ_STOPPER; + + /* + * Set RISC IRQ physical address start value. + */ + ADW_WRITE_DWORD_LRAM(iot, ioh, ASC_MC_IRQ, sc->irq_sp->carr_pa); + sc->carr_pending_cnt = 0; + + ADW_WRITE_BYTE_REGISTER(iot, ioh, IOPB_INTR_ENABLES, + (ADW_INTR_ENABLE_HOST_INTR | ADW_INTR_ENABLE_GLOBAL_INTR)); + ADW_READ_WORD_LRAM(iot, ioh, ASC_MC_CODE_BEGIN_ADDR, word); + ADW_WRITE_WORD_REGISTER(iot, ioh, IOPW_PC, word); + + /* finally, finally, gentlemen, start your engine */ + ADW_WRITE_WORD_REGISTER(iot, ioh, IOPW_RISC_CSR, ADW_RISC_CSR_RUN); + + /* + * Reset the SCSI Bus if the EEPROM indicates that SCSI Bus + * Resets should be performed. The RISC has to be running + * to issue a SCSI Bus Reset. + */ + if (sc->bios_ctrl & BIOS_CTRL_RESET_SCSI_BUS) { + /* + * If the BIOS Signature is present in memory, restore the + * per TID microcode operating variables. + */ + if (bios_mem[(ASC_MC_BIOS_SIGNATURE - ASC_MC_BIOSMEM)/2] == + 0x55AA) { + /* + * Restore per TID negotiated values. + */ + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_WDTR_ABLE, + wdtr_able); + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_SDTR_ABLE, + sdtr_able); + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_PPR_ABLE, + ppr_able); ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_TAGQNG_ABLE, tagqng_able); for (tid = 0; tid <= ADW_MAX_TID; tid++) { @@ -1263,6 +1855,8 @@ ADW_SOFTC *sc; * Read the board's EEPROM configuration. * * Set default values if a bad checksum is found. + * + * XXX - Don't handle big-endian access to EEPROM yet. */ if (AdvGet3550EEPConfig(iot, ioh, &eep_config) != eep_config.check_sum){ warn_code |= ASC_WARN_EEPROM_CHKSUM; @@ -1292,8 +1886,8 @@ ADW_SOFTC *sc; AdvSet3550EEPConfig(iot, ioh, &eep_config); } /* - * Set sc_VAR and sc_CFG variables from the - * EEPROM configuration that was read. + * Set sc and sc->cfg variables from the EEPROM configuration + * that was read. * * This is the mapping of EEPROM fields to Adv Library fields. */ @@ -1364,29 +1958,22 @@ ADW_SOFTC *sc; * value check that a legal value is set and set the ADV_DVC_CFG * 'termination' field appropriately. */ - if (eep_config.termination == 0) { - sc->cfg.termination = 0; /* auto termination */ - } else { - /* Enable manual control with low off / high off. */ - if (eep_config.termination == 1) { - sc->cfg.termination = ADW_TERM_CTL_SEL; - - /* Enable manual control with low off / high on. */ - } else if (eep_config.termination == 2) { - sc->cfg.termination = ADW_TERM_CTL_SEL | ADW_TERM_CTL_H; + sc->cfg.termination = 0; /* auto termination */ + switch(eep_config.termination) { + case 3: /* Enable manual control with low on / high on. */ - } else if (eep_config.termination == 3) { - sc->cfg.termination = ADW_TERM_CTL_SEL | - ADW_TERM_CTL_H | ADW_TERM_CTL_L; - } else { - /* - * The EEPROM 'termination' field contains a bad value. Use - * automatic termination instead. - */ - sc->cfg.termination = 0; - warn_code |= ASC_WARN_EEPROM_TERMINATION; - } + sc->cfg.termination |= ADW_TERM_CTL_L; + case 2: + /* Enable manual control with low off / high on. */ + sc->cfg.termination |= ADW_TERM_CTL_H; + case 1: + /* Enable manual control with low off / high off. */ + sc->cfg.termination |= ADW_TERM_CTL_SEL; + case 0: + break; + default: + warn_code |= ASC_WARN_EEPROM_TERMINATION; } return warn_code; @@ -1547,57 +2134,305 @@ ADW_SOFTC *sc; * value check that a legal value is set and set the ADV_DVC_CFG * 'termination' field appropriately. */ - if (eep_config.termination_se == 0) { - termination = 0; /* auto termination for SE */ - } else { - /* Enable manual control with low off / high off. */ - if (eep_config.termination_se == 1) { - termination = 0; + switch(eep_config.termination_se) { + case 0: + /* auto termination for SE */ + termination = 0; + break; + case 1: + /* Enable manual control with low off / high off. */ + termination = 0; + break; + case 2: /* Enable manual control with low off / high on. */ - } else if (eep_config.termination_se == 2) { - termination = ADW_TERM_SE_HI; - + termination = ADW_TERM_SE_HI; + break; + case 3: /* Enable manual control with low on / high on. */ - } else if (eep_config.termination_se == 3) { - termination = ADW_TERM_SE; - } else { - /* - * The EEPROM 'termination_se' field contains - * a bad value. - * Use automatic termination instead. - */ - termination = 0; - warn_code |= ASC_WARN_EEPROM_TERMINATION; - } + termination = ADW_TERM_SE; + break; + default: + /* + * The EEPROM 'termination_se' field contains a bad value. + * Use automatic termination instead. + */ + termination = 0; + warn_code |= ASC_WARN_EEPROM_TERMINATION; } - if (eep_config.termination_lvd == 0) { + switch(eep_config.termination_lvd) { + case 0: /* auto termination for LVD */ sc->cfg.termination = termination; - } else - { + break; + case 1: /* Enable manual control with low off / high off. */ - if (eep_config.termination_lvd == 1) { - sc->cfg.termination = termination; - + sc->cfg.termination = termination; + break; + case 2: /* Enable manual control with low off / high on. */ - } else if (eep_config.termination_lvd == 2) { - sc->cfg.termination = termination | ADW_TERM_LVD_HI; - + sc->cfg.termination = termination | ADW_TERM_LVD_HI; + break; + case 3: /* Enable manual control with low on / high on. */ - } else if (eep_config.termination_lvd == 3) { - sc->cfg.termination = termination | ADW_TERM_LVD; + sc->cfg.termination = termination | ADW_TERM_LVD; + break; + default: + /* + * The EEPROM 'termination_lvd' field contains a bad value. + * Use automatic termination instead. + */ + sc->cfg.termination = termination; + warn_code |= ASC_WARN_EEPROM_TERMINATION; + } + + return warn_code; +} + + +/* + * Read the board's EEPROM configuration. Set fields in ASC_DVC_VAR and + * ASC_DVC_CFG based on the EEPROM settings. The chip is stopped while + * all of this is done. + * + * On failure set the ASC_DVC_VAR field 'err_code' and return ADV_ERROR. + * + * For a non-fatal error return a warning code. If there are no warnings + * then 0 is returned. + * + * Note: Chip is stopped on entry. + */ +int +AdvInitFrom38C1600EEP(sc) +ADW_SOFTC *sc; +{ + bus_space_tag_t iot = sc->sc_iot; + bus_space_handle_t ioh = sc->sc_ioh; + u_int16_t warn_code; + ADW_EEP_38C1600_CONFIG eep_config; + int i; + u_int8_t tid, termination; + u_int16_t sdtr_speed = 0; + + + warn_code = 0; + + /* + * Read the board's EEPROM configuration. + * + * Set default values if a bad checksum is found. + */ + if (AdvGet38C1600EEPConfig(iot, ioh, &eep_config) != + eep_config.check_sum) { + warn_code |= ASC_WARN_EEPROM_CHKSUM; + + /* + * Set EEPROM default values. + */ + for (i = 0; i < sizeof(ADW_EEP_38C1600_CONFIG); i++) { + /* !!!!TODO!!!! */ +// if (i == 1 && ASC_PCI_ID2FUNC(sc->cfg.pci_slot_info) != 0) { + if (i == 1 ) { + /* + * Set Function 1 EEPROM Word 0 MSB + * + * Clear the BIOS_ENABLE (bit 14) and INTAB (bit 11) + * EEPROM bits. + * + * Disable Bit 14 (BIOS_ENABLE) to fix SPARC Ultra 60 and + * old Mac system booting problem. The Expansion ROM must + * be disabled in Function 1 for these systems. + * + */ + *((u_int8_t *) &eep_config + i) = + ((*((u_int8_t *) &Default_38C1600_EEPROM_Config + i)) & + (~(((ADW_EEPROM_BIOS_ENABLE | ADW_EEPROM_INTAB) >> 8) & + 0xFF))); + + /* + * Set the INTAB (bit 11) if the GPIO 0 input + * indicates the Function 1 interrupt line is + * wired to INTA. + * + * Set/Clear Bit 11 (INTAB) from the GPIO bit 0 input: + * 1 - Function 1 interrupt line wired to INT A. + * 0 - Function 1 interrupt line wired to INT B. + * + * Note: Adapter boards always have Function 0 + * wired to INTA. + * Put all 5 GPIO bits in input mode and then + * read their input values. + */ + ADW_WRITE_BYTE_REGISTER(iot, ioh, + IOPB_GPIO_CNTL, 0); + if (ADW_READ_BYTE_REGISTER(iot, ioh, + IOPB_GPIO_DATA) & 0x01) { + /* Function 1 interrupt wired to INTA; + Set EEPROM bit. */ + *((u_int8_t *) &eep_config + i) |= + ((ADW_EEPROM_INTAB >> 8) &0xFF); + } + } else { + *((u_int8_t *)&eep_config + i) = + *((u_int8_t *)&Default_38C1600_EEPROM_Config+i); + } + } + + /* + * Assume the 6 byte board serial number that was read + * from EEPROM is correct even if the EEPROM checksum + * failed. + */ + eep_config.serial_number_word3 = + AdvReadEEPWord(iot, ioh, ASC_EEP_DVC_CFG_END - 1); + + eep_config.serial_number_word2 = + AdvReadEEPWord(iot, ioh, ASC_EEP_DVC_CFG_END - 2); + + eep_config.serial_number_word1 = + AdvReadEEPWord(iot, ioh, ASC_EEP_DVC_CFG_END - 3); + + AdvSet38C1600EEPConfig(iot, ioh, &eep_config); + } + + /* + * Set ASC_DVC_VAR and ASC_DVC_CFG variables from the + * EEPROM configuration that was read. + * + * This is the mapping of EEPROM fields to Adv Library fields. + */ + sc->wdtr_able = eep_config.wdtr_able; + sc->sdtr_speed1 = eep_config.sdtr_speed1; + sc->sdtr_speed2 = eep_config.sdtr_speed2; + sc->sdtr_speed3 = eep_config.sdtr_speed3; + sc->sdtr_speed4 = eep_config.sdtr_speed4; + sc->ppr_able = 0; + sc->tagqng_able = eep_config.tagqng_able; + sc->cfg.disc_enable = eep_config.disc_enable; + sc->max_host_qng = eep_config.max_host_qng; + sc->max_dvc_qng = eep_config.max_dvc_qng; + sc->chip_scsi_id = (eep_config.adapter_scsi_id & ADW_MAX_TID); + sc->start_motor = eep_config.start_motor; + sc->scsi_reset_wait = eep_config.scsi_reset_delay; + sc->bios_ctrl = eep_config.bios_ctrl; + sc->no_scam = eep_config.scam_tolerant; + + /* + * For every Target ID if any of its 'sdtr_speed[1234]' bits + * are set, then set an 'sdtr_able' bit for it. + */ + sc->sdtr_able = 0; + for (tid = 0; tid <= ADW_MAX_TID; tid++) { + if (tid == 0) { + sdtr_speed = sc->sdtr_speed1; + } else if (tid == 4) { + sdtr_speed = sc->sdtr_speed2; + } else if (tid == 8) { + sdtr_speed = sc->sdtr_speed3; + } else if (tid == 12) { + sdtr_speed = sc->sdtr_speed4; + } + if (sdtr_speed & ADW_MAX_TID) { + sc->sdtr_able |= (1 << tid); + } + sdtr_speed >>= 4; + } + + /* + * Set the host maximum queuing (max. 253, min. 16) and the per device + * maximum queuing (max. 63, min. 4). + */ + if (eep_config.max_host_qng > ASC_DEF_MAX_HOST_QNG) { + eep_config.max_host_qng = ASC_DEF_MAX_HOST_QNG; + } else if (eep_config.max_host_qng < ASC_DEF_MIN_HOST_QNG) { + /* If the value is zero, assume it is uninitialized. */ + if (eep_config.max_host_qng == 0) { + eep_config.max_host_qng = ASC_DEF_MAX_HOST_QNG; } else { - /* - * The EEPROM 'termination_lvd' field contains a bad value. - * Use automatic termination instead. - */ - sc->cfg.termination = termination; - warn_code |= ASC_WARN_EEPROM_TERMINATION; + eep_config.max_host_qng = ASC_DEF_MIN_HOST_QNG; + } + } + + if (eep_config.max_dvc_qng > ASC_DEF_MAX_DVC_QNG) { + eep_config.max_dvc_qng = ASC_DEF_MAX_DVC_QNG; + } else if (eep_config.max_dvc_qng < ASC_DEF_MIN_DVC_QNG) { + /* If the value is zero, assume it is uninitialized. */ + if (eep_config.max_dvc_qng == 0) { + eep_config.max_dvc_qng = ASC_DEF_MAX_DVC_QNG; + } else { + eep_config.max_dvc_qng = ASC_DEF_MIN_DVC_QNG; } } + /* + * If 'max_dvc_qng' is greater than 'max_host_qng', then + * set 'max_dvc_qng' to 'max_host_qng'. + */ + if (eep_config.max_dvc_qng > eep_config.max_host_qng) { + eep_config.max_dvc_qng = eep_config.max_host_qng; + } + + /* + * Set ASC_DVC_VAR 'max_host_qng' and ASC_DVC_VAR 'max_dvc_qng' + * values based on possibly adjusted EEPROM values. + */ + sc->max_host_qng = eep_config.max_host_qng; + sc->max_dvc_qng = eep_config.max_dvc_qng; + + /* + * If the EEPROM 'termination' field is set to automatic (0), then set + * the ASC_DVC_CFG 'termination' field to automatic also. + * + * If the termination is specified with a non-zero 'termination' + * value check that a legal value is set and set the ASC_DVC_CFG + * 'termination' field appropriately. + */ + + switch(eep_config.termination_se) { + case 0: /* auto termination for SE */ + termination = 0; + break; + case 1: /* Enable manual control with low off / high off. */ + termination = 0; + break; + case 2: /* Enable manual control with low off / high on. */ + termination = ADW_TERM_SE_HI; + break; + case 3: /* Enable manual control with low on / high on. */ + termination = ADW_TERM_SE; + break; + default: + /* + * The EEPROM 'termination_se' field contains a bad value. + * Use automatic termination instead. + */ + termination = 0; + warn_code |= ASC_WARN_EEPROM_TERMINATION; + } + + switch(eep_config.termination_lvd) { + case 0: /* auto termination for LVD */ + sc->cfg.termination = termination; + break; + case 1: /* Enable manual control with low off / high off. */ + sc->cfg.termination = termination; + break; + case 2: /* Enable manual control with low off / high on. */ + sc->cfg.termination = termination | ADW_TERM_LVD_HI; + break; + case 3: /* Enable manual control with low on / high on. */ + sc->cfg.termination = termination | ADW_TERM_LVD; + break; + default: + /* + * The EEPROM 'termination_lvd' field contains a bad value. + * Use automatic termination instead. + */ + sc->cfg.termination = termination; + warn_code |= ASC_WARN_EEPROM_TERMINATION; + } + return warn_code; } @@ -1622,8 +2457,8 @@ AdvGet3550EEPConfig(iot, ioh, cfg_buf) chksum = 0; for (eep_addr = ASC_EEP_DVC_CFG_BEGIN; - eep_addr < ASC_EEP_DVC_CFG_END; - eep_addr++, wbuf++) { + eep_addr < ASC_EEP_DVC_CFG_END; + eep_addr++, wbuf++) { wval = AdvReadEEPWord(iot, ioh, eep_addr); chksum += wval; *wbuf = wval; @@ -1661,8 +2496,47 @@ AdvGet38C0800EEPConfig(iot, ioh, cfg_buf) chksum = 0; for (eep_addr = ASC_EEP_DVC_CFG_BEGIN; - eep_addr < ASC_EEP_DVC_CFG_END; + eep_addr < ASC_EEP_DVC_CFG_END; + eep_addr++, wbuf++) { + wval = AdvReadEEPWord(iot, ioh, eep_addr); + chksum += wval; + *wbuf = wval; + } + + *wbuf = AdvReadEEPWord(iot, ioh, eep_addr); + wbuf++; + for (eep_addr = ASC_EEP_DVC_CTL_BEGIN; + eep_addr < ASC_EEP_MAX_WORD_ADDR; eep_addr++, wbuf++) { + *wbuf = AdvReadEEPWord(iot, ioh, eep_addr); + } + + return chksum; +} + + +/* + * Read EEPROM configuration into the specified buffer. + * + * Return a checksum based on the EEPROM configuration read. + */ +static u_int16_t +AdvGet38C1600EEPConfig(iot, ioh, cfg_buf) + bus_space_tag_t iot; + bus_space_handle_t ioh; + ADW_EEP_38C1600_CONFIG *cfg_buf; +{ + u_int16_t wval, chksum; + u_int16_t *wbuf; + int eep_addr; + + + wbuf = (u_int16_t *) cfg_buf; + chksum = 0; + + for (eep_addr = ASC_EEP_DVC_CFG_BEGIN; + eep_addr < ASC_EEP_DVC_CFG_END; + eep_addr++, wbuf++) { wval = AdvReadEEPWord(iot, ioh, eep_addr); chksum += wval; *wbuf = wval; @@ -1841,6 +2715,66 @@ AdvSet38C0800EEPConfig(iot, ioh, cfg_buf) /* + * Write the EEPROM from 'cfg_buf'. + */ +static void +AdvSet38C1600EEPConfig(iot, ioh, cfg_buf) + bus_space_tag_t iot; + bus_space_handle_t ioh; + ADW_EEP_38C1600_CONFIG *cfg_buf; +{ + u_int16_t *wbuf; + u_int16_t addr, chksum; + + + wbuf = (u_int16_t *) cfg_buf; + chksum = 0; + + ADW_WRITE_WORD_REGISTER(iot, ioh, IOPW_EE_CMD, ASC_EEP_CMD_WRITE_ABLE); + AdvWaitEEPCmd(iot, ioh); + + /* + * Write EEPROM from word 0 to word 20 + */ + for (addr = ASC_EEP_DVC_CFG_BEGIN; + addr < ASC_EEP_DVC_CFG_END; addr++, wbuf++) { + chksum += *wbuf; + ADW_WRITE_WORD_REGISTER(iot, ioh, IOPW_EE_DATA, *wbuf); + ADW_WRITE_WORD_REGISTER(iot, ioh, IOPW_EE_CMD, + ASC_EEP_CMD_WRITE | addr); + AdvWaitEEPCmd(iot, ioh); + AdvSleepMilliSecond(ASC_EEP_DELAY_MS); + } + + /* + * Write EEPROM checksum at word 21 + */ + ADW_WRITE_WORD_REGISTER(iot, ioh, IOPW_EE_DATA, chksum); + ADW_WRITE_WORD_REGISTER(iot, ioh, IOPW_EE_CMD, + ASC_EEP_CMD_WRITE | addr); + AdvWaitEEPCmd(iot, ioh); + wbuf++; /* skip over check_sum */ + + /* + * Write EEPROM OEM name at words 22 to 29 + */ + for (addr = ASC_EEP_DVC_CTL_BEGIN; + addr < ASC_EEP_MAX_WORD_ADDR; addr++, wbuf++) { + ADW_WRITE_WORD_REGISTER(iot, ioh, IOPW_EE_DATA, *wbuf); + ADW_WRITE_WORD_REGISTER(iot, ioh, IOPW_EE_CMD, + ASC_EEP_CMD_WRITE | addr); + AdvWaitEEPCmd(iot, ioh); + } + + ADW_WRITE_WORD_REGISTER(iot, ioh, IOPW_EE_CMD, + ASC_EEP_CMD_WRITE_DISABLE); + AdvWaitEEPCmd(iot, ioh); + + return; +} + + +/* * AdvExeScsiQueue() - Send a request to the RISC microcode program. * * Allocate a carrier structure, point the carrier to the ADW_SCSI_REQ_Q, @@ -1867,9 +2801,7 @@ ADW_SCSI_REQ_Q *scsiq; ADW_CCB *ccb; long req_size; u_int32_t req_paddr; - ADW_CARRIER *new_carrp/*, *ccb_carr; - int i*/; - + ADW_CARRIER *new_carrp; /* * The ADW_SCSI_REQ_Q 'target_id' field should never exceed ADW_MAX_TID. @@ -1880,8 +2812,12 @@ ADW_SCSI_REQ_Q *scsiq; return ADW_ERROR; } + /* + * Begin of CRITICAL SECTION: Must be protected within splbio/splx pair + */ + ccb = adw_ccb_phys_kv(sc, scsiq->ccb_ptr); - ccb->carr_list = sc->icq_sp; +// ccb->carr_list = sc->icq_sp; /* * Allocate a carrier ensuring at least one carrier always @@ -1933,52 +2869,46 @@ ADW_SCSI_REQ_Q *scsiq; * Set the host adapter stopper pointer to point to the new carrier. */ sc->icq_sp = new_carrp; - -/* ccb_carr = ccb->carr_list; - while(ccb_carr != ASC_CQ_STOPPER) { - bus_dmamap_load(sc->sc_dmat, ccb_carr->dmamap_xfer, - ccb_carr, ADW_CARRIER_SIZE, - NULL, BUS_DMA_NOWAIT); - bus_dmamap_sync(sc->sc_dmat, ccb_carr->dmamap_xfer, 0, - ccb_carr->dmamap_xfer->dm_mapsize, - BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); - ccb_carr = adw_carrier_phys_kv(sc, - ASC_GET_CARRP(ccb_carr->next_vpa)); - } - - ccb_carr = sc->irq_sp; - for(i=0; i<2 && ccb_carr != ASC_CQ_STOPPER; i++) { - bus_dmamap_load(sc->sc_dmat, ccb_carr->dmamap_xfer, - ccb_carr, ADW_CARRIER_SIZE, - NULL, BUS_DMA_NOWAIT); - bus_dmamap_sync(sc->sc_dmat, ccb_carr->dmamap_xfer, 0, - ccb_carr->dmamap_xfer->dm_mapsize, - BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); - ccb_carr = adw_carrier_phys_kv(sc, - ASC_GET_CARRP(ccb_carr->next_vpa)); - } -*/ +/* bus_dmamap_load(sc->sc_dmat, sc->sc_control->dmamap_xfer, - sc->sc_control->carriers, ADW_CARRIER_SIZE * ADW_MAX_CARRIER, + sc->sc_control->carriers, + ADW_CARRIER_SIZE * ADW_MAX_CARRIER, NULL, BUS_DMA_NOWAIT); bus_dmamap_sync(sc->sc_dmat, sc->sc_control->dmamap_xfer, 0, sc->sc_control->dmamap_xfer->dm_mapsize, BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); - - /* - * Tickle the RISC to tell it to read its Command Queue Head pointer. - */ - ADW_WRITE_BYTE_REGISTER(iot, ioh, IOPB_TICKLE, ADV_TICKLE_A); - if (sc->chip_type == ADV_CHIP_ASC3550) +*/ + if (sc->chip_type == ADV_CHIP_ASC3550 || + sc->chip_type == ADV_CHIP_ASC38C0800) { /* - * Clear the tickle value. In the ASC-3550 the RISC flag - * command 'clr_tickle_a' does not work unless the host - * value is cleared. + * Tickle the RISC to tell it to read its Command Queue Head + * pointer. */ - ADW_WRITE_BYTE_REGISTER(iot, ioh, IOPB_TICKLE, ADV_TICKLE_NOP); + ADW_WRITE_BYTE_REGISTER(iot, ioh, IOPB_TICKLE, ADV_TICKLE_A); + if (sc->chip_type == ADV_CHIP_ASC3550) + { + /* + * Clear the tickle value. In the ASC-3550 the RISC flag + * command 'clr_tickle_a' does not work unless the host + * value is cleared. + */ + ADW_WRITE_BYTE_REGISTER(iot, ioh, IOPB_TICKLE, + ADV_TICKLE_NOP); + } + } else if (sc->chip_type == ADV_CHIP_ASC38C1600) { + /* + * Notify the RISC a carrier is ready by writing the physical + * address of the new carrier stopper to the COMMA register. + */ + ADW_WRITE_DWORD_REGISTER(iot, ioh, IOPDW_COMMA, + new_carrp->carr_pa); } + /* + * End of CRITICAL SECTION: Must be protected within splbio/splx pair + */ + return ADW_SUCCESS; } @@ -2063,7 +2993,7 @@ ADW_SOFTC *sc; bus_space_tag_t iot = sc->sc_iot; bus_space_handle_t ioh = sc->sc_ioh; int status; - u_int16_t wdtr_able, sdtr_able, tagqng_able; + u_int16_t wdtr_able, sdtr_able, ppr_able, tagqng_able; u_int8_t tid, max_cmd[ADW_MAX_TID + 1]; u_int16_t bios_sig; @@ -2073,6 +3003,9 @@ ADW_SOFTC *sc; */ ADW_READ_WORD_LRAM(iot, ioh, ASC_MC_WDTR_ABLE, wdtr_able); ADW_READ_WORD_LRAM(iot, ioh, ASC_MC_SDTR_ABLE, sdtr_able); + if (sc->chip_type == ADV_CHIP_ASC38C1600) { + ADW_READ_WORD_LRAM(iot, ioh, ASC_MC_PPR_ABLE, ppr_able); + } ADW_READ_WORD_LRAM(iot, ioh, ASC_MC_TAGQNG_ABLE, tagqng_able); for (tid = 0; tid <= ADW_MAX_TID; tid++) { @@ -2103,7 +3036,9 @@ ADW_SOFTC *sc; * Reset Adv Library error code, if any, and try * re-initializing the chip. */ - if (sc->chip_type == ADV_CHIP_ASC38C0800) { + if (sc->chip_type == ADV_CHIP_ASC38C1600) { + status = AdvInitAsc38C1600Driver(sc); + } else if (sc->chip_type == ADV_CHIP_ASC38C0800) { status = AdvInitAsc38C0800Driver(sc); } else { status = AdvInitAsc3550Driver(sc); @@ -2126,6 +3061,9 @@ ADW_SOFTC *sc; */ ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_WDTR_ABLE, wdtr_able); ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_SDTR_ABLE, sdtr_able); + if (sc->chip_type == ADV_CHIP_ASC38C1600) { + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_PPR_ABLE, ppr_able); + } ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_TAGQNG_ABLE, tagqng_able); for (tid = 0; tid <= ADW_MAX_TID; tid++) { ADW_WRITE_BYTE_LRAM(iot, ioh, ASC_MC_NUMBER_OF_MAX_CMD + tid, @@ -2167,7 +3105,6 @@ ADW_SOFTC *sc; u_int32_t irq_next_pa; ADW_SCSI_REQ_Q *scsiq; ADW_CCB *ccb; -// int i; /* Reading the register clears the interrupt. */ @@ -2183,16 +3120,6 @@ ADW_SOFTC *sc; BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); bus_dmamap_unload(sc->sc_dmat, sc->sc_control->dmamap_xfer); -/* ccb_carr = sc->irq_sp; - for(i=0; i<2 && ccb_carr != ASC_CQ_STOPPER; i++) { - bus_dmamap_sync(sc->sc_dmat, ccb_carr->dmamap_xfer, 0, - ccb_carr->dmamap_xfer->dm_mapsize, - BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); - bus_dmamap_unload(sc->sc_dmat, ccb_carr->dmamap_xfer); - ccb_carr = adw_carrier_phys_kv(sc, - ASC_GET_CARRP(ccb_carr->next_vpa)); - } -*/ /* * Notify the driver of an asynchronous microcode condition by * calling the ADV_DVC_VAR.async_callback function. The function @@ -2202,12 +3129,18 @@ ADW_SOFTC *sc; u_int8_t intrb_code; ADW_READ_BYTE_LRAM(iot, ioh, ASC_MC_INTRB_CODE, intrb_code); - if (intrb_code == ADV_ASYNC_CARRIER_READY_FAILURE && - sc->carr_pending_cnt != 0) { - ADW_WRITE_BYTE_REGISTER(iot, ioh, IOPB_TICKLE, ADV_TICKLE_A); - if (sc->chip_type == ADV_CHIP_ASC3550) { - ADW_WRITE_BYTE_REGISTER(iot, ioh, IOPB_TICKLE, ADV_TICKLE_NOP); - } + + if (sc->chip_type == ADV_CHIP_ASC3550 || + sc->chip_type == ADV_CHIP_ASC38C0800) { + if (intrb_code == ADV_ASYNC_CARRIER_READY_FAILURE && + sc->carr_pending_cnt != 0) { + ADW_WRITE_BYTE_REGISTER(iot, ioh, + IOPB_TICKLE, ADV_TICKLE_A); + if (sc->chip_type == ADV_CHIP_ASC3550) { + ADW_WRITE_BYTE_REGISTER(iot, ioh, + IOPB_TICKLE, ADV_TICKLE_NOP); + } + } } if (sc->async_callback != 0) { @@ -2221,33 +3154,30 @@ ADW_SOFTC *sc; while (((irq_next_pa = sc->irq_sp->next_vpa) & ASC_RQ_DONE) != 0) { /* - * Get a pointer to the newly completed ADW_SCSI_REQ_Q structure. + * Get a pointer to the newly completed ADW_SCSI_REQ_Q + * structure. * The RISC will have set 'areq_vpa' to a virtual address. * * The firmware will have copied the ASC_SCSI_REQ_Q.ccb_ptr - * field to the carrier ADV_CARR_T.areq_vpa field. The conversion - * below complements the conversion of ASC_SCSI_REQ_Q.scsiq_ptr' - * in AdvExeScsiQueue(). + * field to the carrier ADV_CARR_T.areq_vpa field. + * The conversion below complements the conversion of + * ASC_SCSI_REQ_Q.scsiq_ptr' in AdvExeScsiQueue(). */ ccb = adw_ccb_phys_kv(sc, sc->irq_sp->areq_vpa); scsiq = &ccb->scsiq; scsiq->ccb_ptr = sc->irq_sp->areq_vpa; -/* ccb_carr = ccb->carr_list; - while(ccb_carr != ASC_CQ_STOPPER) { - bus_dmamap_sync(sc->sc_dmat, ccb_carr->dmamap_xfer, 0, - ccb_carr->dmamap_xfer->dm_mapsize, - BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); - bus_dmamap_unload(sc->sc_dmat, ccb_carr->dmamap_xfer); - ccb_carr = adw_carrier_phys_kv(sc, - ASC_GET_CARRP(ccb_carr->next_vpa)); + /* + * Request finished with good status and the queue was not + * DMAed to host memory by the firmware. Set all status fields + * to indicate good status. + */ + if ((irq_next_pa & ASC_RQ_GOOD) != 0) { + scsiq->done_status = QD_NO_ERROR; + scsiq->host_status = scsiq->scsi_status = 0; + scsiq->data_cnt = 0L; } - bus_dmamap_sync(sc->sc_dmat, sc->irq_sp->dmamap_xfer, 0, - sc->irq_sp->dmamap_xfer->dm_mapsize, - BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); - bus_dmamap_unload(sc->sc_dmat, sc->irq_sp->dmamap_xfer); -*/ /* * Advance the stopper pointer to the next carrier * ignoring the lower four bits. Free the previous @@ -2277,8 +3207,8 @@ ADW_SOFTC *sc; * command information for the device. */ if (scsiq->done_status == QD_NO_ERROR && - scsiq->cdb[0] == INQUIRY && - scsiq->target_lun == 0) { + scsiq->cdb[0] == INQUIRY && + scsiq->target_lun == 0) { AdvInquiryHandling(sc, scsiq); } @@ -2306,7 +3236,7 @@ ADW_SOFTC *sc; * Command completion is polled for once per microsecond. * * The function can be called from anywhere including an interrupt handler. - * But the function is not re-entrant, so it uses the DvcEnter/LeaveCritical() + * But the function is not re-entrant, so it uses the splbio/splx() * functions to prevent reentrancy. * * Return Values: @@ -2323,8 +3253,9 @@ u_int32_t idle_cmd_parameter; bus_space_tag_t iot = sc->sc_iot; bus_space_handle_t ioh = sc->sc_ioh; int result; - u_int32_t i, j; + u_int32_t i, j, s; + s = splbio(); /* * Clear the idle command status which is set by the microcode @@ -2363,12 +3294,14 @@ u_int32_t idle_cmd_parameter; for (j = 0; j < SCSI_US_PER_MSEC; j++) { ADW_READ_WORD_LRAM(iot, ioh, ASC_MC_IDLE_CMD_STATUS, result); if (result != 0) { + splx(s); return result; } AdvDelayMicroSecond(1); } } + splx(s); return ADW_ERROR; } @@ -2497,6 +3430,31 @@ ADW_SCSI_REQ_Q *scsiq; cfg_word); } } + /* + * If the Inquiry data included enough space for the SPI-3 + * Clocking field, then check if DT mode is supported. + */ + if (sc->chip_type == ADV_CHIP_ASC38C1600 && + (scsiq->cdb[4] >= 57 || + (scsiq->cdb[4] - scsiq->data_cnt) >= 57)) { + /* + * PPR (Parallel Protocol Request) Capable + * + * If the device supports DT mode, then it must be + * PPR capable. + * The PPR message will be used in place of the SDTR + * and WDTR messages to negotiate synchronous speed + * and offset, transfer width, and protocol options. + */ + if (inq->Clocking & INQ_CLOCKING_DT_ONLY) + { + ADW_READ_WORD_LRAM(iot, ioh, ASC_MC_PPR_ABLE, + sc->ppr_able); + sc->ppr_able |= tidmask; + ADW_WRITE_WORD_LRAM(iot, ioh, ASC_MC_PPR_ABLE, + sc->ppr_able); + } + } /* * If the EEPROM enabled Tag Queuing for the device and the diff --git a/sys/dev/ic/adwlib.h b/sys/dev/ic/adwlib.h index 0dfe5948621..692e15c871e 100644 --- a/sys/dev/ic/adwlib.h +++ b/sys/dev/ic/adwlib.h @@ -1,4 +1,4 @@ -/* $NetBSD: adwlib.h,v 1.7 2000/02/03 20:29:16 dante Exp $ */ +/* $NetBSD: adwlib.h,v 1.8 2000/04/30 18:52:15 dante Exp $ */ /* * Definitions for low level routines and data structures @@ -42,10 +42,10 @@ */ /* * advansys.c - Linux Host Driver for AdvanSys SCSI Adapters - * - * Copyright (c) 1995-1996 Advanced System Products, Inc. + * + * Copyright (c) 1995-2000 Advanced System Products, Inc. * All Rights Reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that redistributions of source * code retain the above copyright notice and this comment without @@ -61,7 +61,7 @@ */ #define ADW_LIB_VERSION_MAJOR 5 -#define ADW_LIB_VERSION_MINOR 2 +#define ADW_LIB_VERSION_MINOR 8 /* * Define Adv Reset Hold Time grater than 25 uSec. @@ -100,8 +100,7 @@ * this field may be set, but later if a device is found to be incapable * of the feature, the field is cleared. * - * Default values are maintained in a_init.c in the structure - * Default_EEPROM_Config. + * Default values are maintained in the structure Default_EEPROM_Config. */ #define ADV_EEPROM_BIG_ENDIAN 0x8000 /* EEPROM Bit 15 */ #define ADV_EEPROM_BIOS_ENABLE 0x4000 /* EEPROM Bit 14 */ @@ -113,6 +112,19 @@ #define ADV_EEPROM_TERM_POL 0x2000 /* EEPROM Bit 13 */ #define ADV_EEPROM_CIS_LD 0x2000 /* EEPROM Bit 13 */ +/* + * ASC38C1600 Bit 11 + * + * If EEPROM Bit 11 is 0 for Function 0, then Function 0 will specify + * INT A in the PCI Configuration Space Int Pin field. If it is 1, then + * Function 0 will specify INT B. + * + * If EEPROM Bit 11 is 0 for Function 1, then Function 1 will specify + * INT B in the PCI Configuration Space Int Pin field. If it is 1, then + * Function 1 will specify INT A. + */ +#define ADW_EEPROM_INTAB 0x0800 /* EEPROM Bit 11 */ + typedef struct adw_eep_3550_config { /* Word Offset, Description */ @@ -121,7 +133,7 @@ typedef struct adw_eep_3550_config /* bit 13 set - Term Polarity Control */ /* bit 14 set - BIOS Enable */ /* bit 15 set - Big Endian Mode */ - u_int16_t cfg_msw; /* 01 unused */ + u_int16_t cfg_msw; /* 01 unused */ u_int16_t disc_enable; /* 02 disconnect enable */ u_int16_t wdtr_able; /* 03 Wide DTR able */ u_int16_t sdtr_able; /* 04 Synchronous DTR able */ @@ -138,7 +150,7 @@ typedef struct adw_eep_3550_config /* high nibble is lun */ /* low nibble is scsi id */ - u_int8_t termination; /* 11 0 - automatic */ + u_int8_t termination; /* 11 0 - automatic */ /* 1 - low off / high off */ /* 2 - low off / high on */ /* 3 - low on / high on */ @@ -147,22 +159,22 @@ typedef struct adw_eep_3550_config u_int8_t reserved1; /* reserved byte (not used) */ u_int16_t bios_ctrl; /* 12 BIOS control bits */ - /* bit 0 set: BIOS don't act as initiator. */ - /* bit 1 set: BIOS > 1 GB support */ - /* bit 2 set: BIOS > 2 Disk Support */ - /* bit 3 set: BIOS don't support removables */ - /* bit 4 set: BIOS support bootable CD */ - /* bit 5 set: */ - /* bit 6 set: BIOS support multiple LUNs */ - /* bit 7 set: BIOS display of message */ - /* bit 8 set: */ - /* bit 9 set: Reset SCSI bus during init. */ - /* bit 10 set: */ - /* bit 11 set: No verbose initialization. */ - /* bit 12 set: SCSI parity enabled */ - /* bit 13 set: */ - /* bit 14 set: */ - /* bit 15 set: */ + /* bit 0 BIOS don't act as initiator. */ + /* bit 1 BIOS > 1 GB support */ + /* bit 2 BIOS > 2 Disk Support */ + /* bit 3 BIOS don't support removables */ + /* bit 4 BIOS support bootable CD */ + /* bit 5 BIOS scan enabled */ + /* bit 6 BIOS support multiple LUNs */ + /* bit 7 BIOS display of message */ + /* bit 8 SCAM disabled */ + /* bit 9 Reset SCSI bus during init. */ + /* bit 10 */ + /* bit 11 No verbose initialization. */ + /* bit 12 SCSI parity enabled */ + /* bit 13 */ + /* bit 14 */ + /* bit 15 */ u_int16_t ultra_able; /* 13 ULTRA speed able */ u_int16_t reserved2; /* 14 reserved */ u_int8_t max_host_qng; /* 15 maximum host queuing */ @@ -177,9 +189,9 @@ typedef struct adw_eep_3550_config u_int16_t dvc_err_code; /* 30 last device driver error code */ u_int16_t adv_err_code; /* 31 last uc and Adv Lib error code */ u_int16_t adv_err_addr; /* 32 last uc error address */ - u_int16_t saved_dvc_err_code; /* 33 saved last dev. driver error code */ + u_int16_t saved_dvc_err_code; /* 33 saved last dev. driver error code */ u_int16_t saved_adv_err_code; /* 34 saved last uc and Adv Lib error code */ - u_int16_t saved_adv_err_addr; /* 35 saved last uc error address */ + u_int16_t saved_adv_err_addr; /* 35 saved last uc error address */ u_int16_t num_of_err; /* 36 number of error */ } ADW_EEP_3550_CONFIG; @@ -191,7 +203,7 @@ typedef struct adw_eep_38C0800_config /* bit 13 set - Load CIS */ /* bit 14 set - BIOS Enable */ /* bit 15 set - Big Endian Mode */ - u_int16_t cfg_msw; /* 01 unused */ + u_int16_t cfg_msw; /* 01 unused */ u_int16_t disc_enable; /* 02 disconnect enable */ u_int16_t wdtr_able; /* 03 Wide DTR able */ u_int16_t sdtr_speed1; /* 04 SDTR Speed TID 0-3 */ @@ -221,29 +233,29 @@ typedef struct adw_eep_38C0800_config /* There is no low on / high off */ u_int16_t bios_ctrl; /* 12 BIOS control bits */ - /* bit 0 set: BIOS don't act as initiator. */ - /* bit 1 set: BIOS > 1 GB support */ - /* bit 2 set: BIOS > 2 Disk Support */ - /* bit 3 set: BIOS don't support removables */ - /* bit 4 set: BIOS support bootable CD */ - /* bit 5 set: BIOS scan enabled */ - /* bit 6 set: BIOS support multiple LUNs */ - /* bit 7 set: BIOS display of message */ - /* bit 8 set: */ - /* bit 9 set: Reset SCSI bus during init. */ - /* bit 10 set: */ - /* bit 11 set: No verbose initialization. */ - /* bit 12 set: SCSI parity enabled */ - /* bit 13 set: */ - /* bit 14 set: */ - /* bit 15 set: */ + /* bit 0 BIOS don't act as initiator. */ + /* bit 1 BIOS > 1 GB support */ + /* bit 2 BIOS > 2 Disk Support */ + /* bit 3 BIOS don't support removables */ + /* bit 4 BIOS support bootable CD */ + /* bit 5 BIOS scan enabled */ + /* bit 6 BIOS support multiple LUNs */ + /* bit 7 BIOS display of message */ + /* bit 8 SCAM disabled */ + /* bit 9 Reset SCSI bus during init. */ + /* bit 10 */ + /* bit 11 No verbose initialization. */ + /* bit 12 SCSI parity enabled */ + /* bit 13 */ + /* bit 14 */ + /* bit 15 */ u_int16_t sdtr_speed2; /* 13 SDTR speed TID 4-7 */ u_int16_t sdtr_speed3; /* 14 SDTR speed TID 8-11 */ u_int8_t max_host_qng; /* 15 maximum host queueing */ u_int8_t max_dvc_qng; /* maximum per device queuing */ u_int16_t dvc_cntl; /* 16 control bit for driver */ u_int16_t sdtr_speed4; /* 17 SDTR speed 4 TID 12-15 */ - u_int16_t serial_number_word1; /* 18 Board serial number word 1 */ + u_int16_t serial_number_word1; /* 18 Board serial number word 1 */ u_int16_t serial_number_word2; /* 19 Board serial number word 2 */ u_int16_t serial_number_word3; /* 20 Board serial number word 3 */ u_int16_t check_sum; /* 21 EEP check sum */ @@ -251,39 +263,143 @@ typedef struct adw_eep_38C0800_config u_int16_t dvc_err_code; /* 30 last device driver error code */ u_int16_t adv_err_code; /* 31 last uc and Adv Lib error code */ u_int16_t adv_err_addr; /* 32 last uc error address */ - u_int16_t saved_dvc_err_code; /* 33 saved last dev. driver error code */ + u_int16_t saved_dvc_err_code; /* 33 saved last dev. driver error code */ u_int16_t saved_adv_err_code; /* 34 saved last uc and Adv Lib error code */ - u_int16_t saved_adv_err_addr; /* 35 saved last uc error address */ + u_int16_t saved_adv_err_addr; /* 35 saved last uc error address */ u_int16_t reserved36; /* 36 reserved */ u_int16_t reserved37; /* 37 reserved */ - u_int16_t reserved38; /* 38 reserved */ - u_int16_t reserved39; /* 39 reserved */ - u_int16_t reserved40; /* 40 reserved */ - u_int16_t reserved41; /* 41 reserved */ - u_int16_t reserved42; /* 42 reserved */ - u_int16_t reserved43; /* 43 reserved */ - u_int16_t reserved44; /* 44 reserved */ - u_int16_t reserved45; /* 45 reserved */ - u_int16_t reserved46; /* 46 reserved */ - u_int16_t reserved47; /* 47 reserved */ - u_int16_t reserved48; /* 48 reserved */ - u_int16_t reserved49; /* 49 reserved */ - u_int16_t reserved50; /* 50 reserved */ - u_int16_t reserved51; /* 51 reserved */ - u_int16_t reserved52; /* 52 reserved */ - u_int16_t reserved53; /* 53 reserved */ - u_int16_t reserved54; /* 54 reserved */ - u_int16_t reserved55; /* 55 reserved */ - u_int16_t cisptr_lsw; /* 56 CIS PTR LSW */ - u_int16_t cisprt_msw; /* 57 CIS PTR MSW */ + u_int16_t reserved38; /* 38 reserved */ + u_int16_t reserved39; /* 39 reserved */ + u_int16_t reserved40; /* 40 reserved */ + u_int16_t reserved41; /* 41 reserved */ + u_int16_t reserved42; /* 42 reserved */ + u_int16_t reserved43; /* 43 reserved */ + u_int16_t reserved44; /* 44 reserved */ + u_int16_t reserved45; /* 45 reserved */ + u_int16_t reserved46; /* 46 reserved */ + u_int16_t reserved47; /* 47 reserved */ + u_int16_t reserved48; /* 48 reserved */ + u_int16_t reserved49; /* 49 reserved */ + u_int16_t reserved50; /* 50 reserved */ + u_int16_t reserved51; /* 51 reserved */ + u_int16_t reserved52; /* 52 reserved */ + u_int16_t reserved53; /* 53 reserved */ + u_int16_t reserved54; /* 54 reserved */ + u_int16_t reserved55; /* 55 reserved */ + u_int16_t cisptr_lsw; /* 56 CIS PTR LSW */ + u_int16_t cisprt_msw; /* 57 CIS PTR MSW */ u_int16_t subsysvid; /* 58 SubSystem Vendor ID */ u_int16_t subsysid; /* 59 SubSystem ID */ - u_int16_t reserved60; /* 60 reserved */ - u_int16_t reserved61; /* 61 reserved */ - u_int16_t reserved62; /* 62 reserved */ - u_int16_t reserved63; /* 63 reserved */ + u_int16_t reserved60; /* 60 reserved */ + u_int16_t reserved61; /* 61 reserved */ + u_int16_t reserved62; /* 62 reserved */ + u_int16_t reserved63; /* 63 reserved */ } ADW_EEP_38C0800_CONFIG; +typedef struct adw_eep_38C1600_config +{ + /* Word Offset, Description */ + + u_int16_t cfg_lsw; /* 00 power up initialization */ + /* bit 11 set - Func. 0 INTB, Func. 1 INTA */ + /* clear - Func. 0 INTA, Func. 1 INTB */ + /* bit 13 set - Load CIS */ + /* bit 14 set - BIOS Enable */ + /* bit 15 set - Big Endian Mode */ + u_int16_t cfg_msw; /* 01 unused */ + u_int16_t disc_enable; /* 02 disconnect enable */ + u_int16_t wdtr_able; /* 03 Wide DTR able */ + u_int16_t sdtr_speed1; /* 04 SDTR Speed TID 0-3 */ + u_int16_t start_motor; /* 05 send start up motor */ + u_int16_t tagqng_able; /* 06 tag queuing able */ + u_int16_t bios_scan; /* 07 BIOS device control */ + u_int16_t scam_tolerant; /* 08 no scam */ + + u_int8_t adapter_scsi_id; /* 09 Host Adapter ID */ + u_int8_t bios_boot_delay; /* power up wait */ + + u_int8_t scsi_reset_delay; /* 10 reset delay */ + u_int8_t bios_id_lun; /* first boot device scsi id & lun */ + /* high nibble is lun */ + /* low nibble is scsi id */ + + u_int8_t termination_se; /* 11 0 - automatic */ + /* 1 - low off / high off */ + /* 2 - low off / high on */ + /* 3 - low on / high on */ + /* There is no low on / high off */ + + u_int8_t termination_lvd; /* 11 0 - automatic */ + /* 1 - low off / high off */ + /* 2 - low off / high on */ + /* 3 - low on / high on */ + /* There is no low on / high off */ + + u_int16_t bios_ctrl; /* 12 BIOS control bits */ + /* bit 0 BIOS don't act as initiator. */ + /* bit 1 BIOS > 1 GB support */ + /* bit 2 BIOS > 2 Disk Support */ + /* bit 3 BIOS don't support removables */ + /* bit 4 BIOS support bootable CD */ + /* bit 5 BIOS scan enabled */ + /* bit 6 BIOS support multiple LUNs */ + /* bit 7 BIOS display of message */ + /* bit 8 SCAM disabled */ + /* bit 9 Reset SCSI bus during init. */ + /* bit 10 Basic Integrity Checking disabled */ + /* bit 11 No verbose initialization. */ + /* bit 12 SCSI parity enabled */ + /* bit 13 AIPP (Asyn. Info. Ph. Prot.) dis. */ + /* bit 14 */ + /* bit 15 */ + u_int16_t sdtr_speed2; /* 13 SDTR speed TID 4-7 */ + u_int16_t sdtr_speed3; /* 14 SDTR speed TID 8-11 */ + u_int8_t max_host_qng; /* 15 maximum host queueing */ + u_int8_t max_dvc_qng; /* maximum per device queuing */ + u_int16_t dvc_cntl; /* 16 control bit for driver */ + u_int16_t sdtr_speed4; /* 17 SDTR speed 4 TID 12-15 */ + u_int16_t serial_number_word1; /* 18 Board serial number word 1 */ + u_int16_t serial_number_word2; /* 19 Board serial number word 2 */ + u_int16_t serial_number_word3; /* 20 Board serial number word 3 */ + u_int16_t check_sum; /* 21 EEP check sum */ + u_int8_t oem_name[16]; /* 22 OEM name */ + u_int16_t dvc_err_code; /* 30 last device driver error code */ + u_int16_t adv_err_code; /* 31 last uc and Adv Lib error code */ + u_int16_t adv_err_addr; /* 32 last uc error address */ + u_int16_t saved_dvc_err_code; /* 33 saved last dev. driver error code */ + u_int16_t saved_adv_err_code; /* 34 saved last uc and Adv Lib error code */ + u_int16_t saved_adv_err_addr; /* 35 saved last uc error address */ + u_int16_t reserved36; /* 36 reserved */ + u_int16_t reserved37; /* 37 reserved */ + u_int16_t reserved38; /* 38 reserved */ + u_int16_t reserved39; /* 39 reserved */ + u_int16_t reserved40; /* 40 reserved */ + u_int16_t reserved41; /* 41 reserved */ + u_int16_t reserved42; /* 42 reserved */ + u_int16_t reserved43; /* 43 reserved */ + u_int16_t reserved44; /* 44 reserved */ + u_int16_t reserved45; /* 45 reserved */ + u_int16_t reserved46; /* 46 reserved */ + u_int16_t reserved47; /* 47 reserved */ + u_int16_t reserved48; /* 48 reserved */ + u_int16_t reserved49; /* 49 reserved */ + u_int16_t reserved50; /* 50 reserved */ + u_int16_t reserved51; /* 51 reserved */ + u_int16_t reserved52; /* 52 reserved */ + u_int16_t reserved53; /* 53 reserved */ + u_int16_t reserved54; /* 54 reserved */ + u_int16_t reserved55; /* 55 reserved */ + u_int16_t cisptr_lsw; /* 56 CIS PTR LSW */ + u_int16_t cisprt_msw; /* 57 CIS PTR MSW */ + u_int16_t subsysvid; /* 58 SubSystem Vendor ID */ + u_int16_t subsysid; /* 59 SubSystem ID */ + u_int16_t reserved60; /* 60 reserved */ + u_int16_t reserved61; /* 61 reserved */ + u_int16_t reserved62; /* 62 reserved */ + u_int16_t reserved63; /* 63 reserved */ +} ADW_EEP_38C1600_CONFIG; + + /* * EEPROM Commands */ @@ -310,6 +426,7 @@ typedef struct adw_eep_38C0800_config #define BIOS_CTRL_RESET_SCSI_BUS 0x0200 #define BIOS_CTRL_INIT_VERBOSE 0x0800 #define BIOS_CTRL_SCSI_PARITY 0x1000 +#define BIOS_CTRL_AIPP_DIS 0x2000 #define ADV_3550_MEMSIZE 0x2000 /* 8 KB Internal Memory */ #define ADV_3550_IOLEN 0x40 /* I/O Port Range in bytes */ @@ -317,7 +434,7 @@ typedef struct adw_eep_38C0800_config #define ADV_38C0800_MEMSIZE 0x4000 /* 16 KB Internal Memory */ #define ADV_38C0800_IOLEN 0x100 /* I/O Port Range in bytes */ -#define ADV_38C1600_MEMSIZE 0x4000 /* 16 KB Internal Memory */ +#define ADV_38C1600_MEMSIZE 0x8000 /* 32 KB Internal Memory */ #define ADV_38C1600_IOLEN 0x100 /* I/O Port Range 256 bytes */ #define ADV_38C1600_MEMLEN 0x1000 /* Memory Range 4KB bytes */ @@ -531,6 +648,14 @@ typedef struct adw_eep_38C0800_config /* * Addendum for ASC-38C0800 Chip + * + * The ASC-38C1600 Chip uses the same definitions except that the + * bus mode override bits [12:10] have been moved to byte register + * offset 0xE (IOPB_SOFT_OVER_WR) bits [12:10]. The [12:10] bits in + * SCSI_CFG1 are read-only and always available. Bit 14 (DIS_TERM_DRV) + * is not needed. The [12:10] bits in IOPB_SOFT_OVER_WR are write-only. + * Also each ASC-38C1600 function or channel uses only cable bits [5:4] + * and [1:0]. Bits [14], [7:6], [3:2] are unused. */ #define ADW_DIS_TERM_DRV 0x4000 /* 1: Read c_det[3:0], 0: cannot read */ #define ADW_HVD_LVD_SE 0x1C00 /* Device Detect Bits */ @@ -639,6 +764,33 @@ typedef struct adw_eep_38C0800_config #define PRE_TEST_VALUE 0x05 #define NORMAL_VALUE 0x00 +/* + * ASC38C1600 Definitions + * + * IOPB_PCI_INT_CFG Bit Field Definitions + */ + +#define INTAB_LD 0x80 /* Value loaded from EEPROM Bit 11. */ + +/* + * Bit 1 can be set to change the interrupt for the Function to operate in + * Totem Pole mode. By default Bit 1 is 0 and the interrupt operates in + * Open Drain mode. Both functions of the ASC38C1600 must be set to the same + * mode, otherwise the operating mode is undefined. + */ +#define TOTEMPOLE 0x02 + +/* + * Bit 0 can be used to change the Int Pin for the Function. The value is + * 0 by default for both Functions with Function 0 using INT A and Function + * B using INT B. For Function 0 if set, INT B is used. For Function 1 if set, + * INT A is used. + * + * EEPROM Word 0 Bit 11 for each Function may change the initial Int Pin + * value specified in the PCI Configuration Space. + */ +#define INTAB 0x01 + /* * Adv Library Status Definitions @@ -722,6 +874,7 @@ typedef struct adw_eep_38C0800_config #define ASC_MC_CAM_MODE_MASK 0x015E /* CAM mode TID bitmask. */ #define ASC_MC_ICQ 0x0160 #define ASC_MC_IRQ 0x0164 +#define ASC_MC_PPR_ABLE 0x017A /* * BIOS LRAM variable absolute offsets. @@ -738,6 +891,7 @@ typedef struct adw_eep_38C0800_config * and handled by the microcode. */ #define CONTROL_FLAG_IGNORE_PERR 0x0001 /* Ignore DMA Parity Errors */ +#define CONTROL_FLAG_ENABLE_AIPP 0x0002 /* Enabled AIPP checking. */ /* * ASC_MC_DEVICE_HSHK_CFG_TABLE microcode table or HSHK_CFG register format @@ -871,6 +1025,7 @@ typedef struct adw_softc { u_int16_t sdtr_speed3; /* EEPROM SDTR Speed for TID 8-11 */ u_int16_t sdtr_speed4; /* EEPROM SDTR Speed for TID 12-15 */ u_int16_t tagqng_able; /* try tagged queuing with a device */ + u_int16_t ppr_able; /* PPR message capable per TID bitmask. */ u_int16_t start_motor; /* start motor command allowed */ u_int8_t max_dvc_qng; /* maximum number of tagged commands per device */ u_int8_t scsi_reset_wait; /* delay in seconds after scsi bus reset */ @@ -913,16 +1068,16 @@ typedef struct adw_scsi_req_q { u_int32_t carr_pa; /* Carrier p-address */ u_int8_t mflag; /* Adv Library flag field. */ u_int8_t sense_len; /* Auto-sense length. uCode sets to residual. */ - u_int8_t cdb_len; /* SCSI CDB length. */ + u_int8_t cdb_len; /* SCSI CDB length. Must <= 16 bytes. */ u_int8_t scsi_cntl; u_int8_t done_status; /* Completion status. */ u_int8_t scsi_status; /* SCSI status byte. (see below) */ u_int8_t host_status; /* Ucode host status. */ u_int8_t sg_working_ix; /* Ucode working SG variable. */ - u_int8_t cdb[12]; /* SCSI command block. */ + u_int8_t cdb[12]; /* SCSI CDB bytes 0-11. */ u_int32_t sg_real_addr; /* SG list physical address. */ u_int32_t scsiq_rptr; /* Iternal pointer to ADW_SCSI_REQ_Q */ - u_int32_t sg_working_data_cnt; + u_int8_t cdb16[4]; /* SCSI CDB bytes 12-15. */ u_int32_t ccb_ptr; /* CCB Physical Address */ u_int32_t carr_va; /* Carrier v-address (unused) */ /* @@ -988,6 +1143,10 @@ typedef struct adw_scsi_req_q { #define ADW_WRITE_WORD_REGISTER(iot, ioh, reg_off, word) \ bus_space_write_2((iot), (ioh), (reg_off), (word)) +/* Write double word (4 bytes) to a register. */ +#define ADW_WRITE_DWORD_REGISTER(iot, ioh, reg_off, dword) \ + bus_space_write_4((iot), (ioh), (reg_off), (dword)) + /* Read byte from LRAM. */ #define ADW_READ_BYTE_LRAM(iot, ioh, addr, byte) \ do { \ @@ -1143,6 +1302,10 @@ do { \ * SCSI Iquiry structure */ +#define INQ_CLOCKING_ST_ONLY 0x0 +#define INQ_CLOCKING_DT_ONLY 0x1 +#define INQ_CLOCKING_ST_AND_DT 0x3 + typedef struct { u_int8_t peri_dvc_type : 5; /* peripheral device type */ u_int8_t peri_qualifier : 3; /* peripheral qualifier */ @@ -1253,8 +1416,10 @@ typedef struct asc_req_sense { int AdvInitAsc3550Driver __P((ADW_SOFTC *)); int AdvInitAsc38C0800Driver __P((ADW_SOFTC *)); +int AdvInitAsc38C1600Driver __P((ADW_SOFTC *)); int AdvInitFrom3550EEP __P((ADW_SOFTC *)); int AdvInitFrom38C0800EEP __P((ADW_SOFTC *)); +int AdvInitFrom38C1600EEP __P((ADW_SOFTC *)); int AdvExeScsiQueue __P((ADW_SOFTC *, ADW_SCSI_REQ_Q *)); int AdvISR __P((ADW_SOFTC *)); void AdvResetChip __P((bus_space_tag_t, bus_space_handle_t)); diff --git a/sys/dev/ic/adwmcode.c b/sys/dev/ic/adwmcode.c index 0f534808caf..a7fbe3f1738 100644 --- a/sys/dev/ic/adwmcode.c +++ b/sys/dev/ic/adwmcode.c @@ -1,4 +1,4 @@ -/* $NetBSD: adwmcode.c,v 1.2 2000/02/03 20:29:16 dante Exp $ */ +/* $NetBSD: adwmcode.c,v 1.3 2000/04/30 18:52:15 dante Exp $ */ /* * Generic driver definitions and exported functions for the Advanced @@ -43,7 +43,7 @@ /* * advansys.c - Linux Host Driver for AdvanSys SCSI Adapters * - * Copyright (c) 1995-1998 Advanced System Products, Inc. + * Copyright (c) 1995-2000 Advanced System Products, Inc. * All Rights Reserved. * * Redistribution and use in source and binary forms, with or without @@ -62,683 +62,1039 @@ * This code is loaded into Lram during initializzation procedure. */ u_int8_t adv_asc3550_mcode[] = { - 0x00, 0x00, 0x00, 0xf2, 0x00, 0xf0, 0x00, 0x16, 0x00, 0xfc, 0x48, 0xe4, 0x01, 0x00, 0x18, 0xe4, - 0x00, 0xf6, 0x01, 0xf6, 0x18, 0x80, 0x48, 0x19, 0x02, 0x00, 0xff, 0xff, 0x03, 0xf6, 0x00, 0xfa, - 0xff, 0x00, 0x82, 0xe7, 0x01, 0xfa, 0x9e, 0xe7, 0x09, 0xe7, 0x3a, 0x0e, 0x00, 0xea, 0x01, 0xe6, - 0x55, 0xf0, 0x03, 0x00, 0x08, 0x00, 0x18, 0xf4, 0x3e, 0x01, 0x3e, 0x57, 0x04, 0x00, 0x85, 0xf0, - 0x00, 0xe6, 0x00, 0xec, 0x1e, 0xf0, 0x32, 0xf0, 0x34, 0x19, 0x86, 0xf0, 0xd0, 0x01, 0xd5, 0xf0, - 0xde, 0x0c, 0x98, 0x57, 0xbc, 0x00, 0x0c, 0x1c, 0x0e, 0x13, 0x38, 0x54, 0xb1, 0xf0, 0xb4, 0x00, - 0x01, 0xfc, 0x03, 0xfc, 0xd8, 0x0c, 0x00, 0x57, 0x01, 0xf0, 0x02, 0x13, 0x03, 0xe6, 0x10, 0x00, - 0x18, 0x40, 0x3e, 0x1c, 0x6c, 0x01, 0x6e, 0x01, 0xbd, 0x00, 0xe0, 0x00, 0x02, 0x48, 0x02, 0x80, - 0x08, 0x12, 0x30, 0xe4, 0x3c, 0x00, 0x4e, 0x01, 0x64, 0x12, 0x80, 0x00, 0x9c, 0x15, 0xbb, 0x00, - 0x00, 0x4e, 0x01, 0x01, 0x01, 0xea, 0x04, 0x12, 0x9e, 0x0f, 0xb6, 0x00, 0xb9, 0x54, 0xe2, 0x0f, - 0x00, 0x80, 0x06, 0xf7, 0x10, 0x44, 0x24, 0x01, 0x28, 0x01, 0x32, 0x00, 0x3c, 0x01, 0x3c, 0x56, - 0x3e, 0x00, 0x4b, 0xe4, 0x4c, 0x1c, 0x68, 0x01, 0x6a, 0x01, 0x70, 0x01, 0x72, 0x01, 0x74, 0x01, - 0x76, 0x01, 0x78, 0x01, 0xe2, 0x0c, 0x00, 0x01, 0x02, 0xee, 0x02, 0xfc, 0x03, 0x58, 0x03, 0xf7, - 0x04, 0x80, 0x05, 0xfc, 0x08, 0x44, 0x09, 0xf0, 0x0f, 0x00, 0x1b, 0x80, 0x20, 0x01, 0x38, 0x1c, - 0x40, 0x00, 0x40, 0x15, 0x4b, 0xf4, 0x4e, 0x1c, 0x5b, 0xf0, 0x5d, 0xf0, 0xaa, 0x00, 0xbb, 0x55, - 0xbe, 0x00, 0xc0, 0x00, 0xe0, 0x08, 0xe0, 0x14, 0xec, 0x0f, 0x00, 0x4c, 0x00, 0xdc, 0x02, 0x4a, - 0x05, 0x00, 0x05, 0xf0, 0x05, 0xf8, 0x06, 0x13, 0x08, 0x13, 0x0c, 0x00, 0x0e, 0x47, 0x0e, 0xf7, - 0x19, 0x00, 0x20, 0x00, 0x2a, 0x01, 0x30, 0x0e, 0x32, 0x1c, 0x36, 0x00, 0x45, 0x5a, 0x59, 0xf0, - 0x62, 0x0a, 0x69, 0x08, 0x72, 0x0b, 0x83, 0x59, 0xb8, 0xf0, 0xbd, 0x56, 0xcc, 0x12, 0xec, 0x17, - 0xee, 0x0f, 0xf0, 0x00, 0xf8, 0x17, 0x01, 0x48, 0x02, 0xfa, 0x03, 0xfa, 0x04, 0x10, 0x04, 0xea, - 0x04, 0xf6, 0x04, 0xfc, 0x05, 0x80, 0x05, 0xe6, 0x06, 0x00, 0x06, 0x12, 0x0a, 0x10, 0x0b, 0xf0, - 0x0c, 0x10, 0x0c, 0xf0, 0x12, 0x10, 0x26, 0x0e, 0x30, 0x1c, 0x33, 0x00, 0x34, 0x00, 0x38, 0x44, - 0x40, 0x5c, 0x4a, 0xe4, 0x62, 0x1a, 0x68, 0x08, 0x68, 0x54, 0x83, 0x55, 0x83, 0x5a, 0x8c, 0x14, - 0x8e, 0x0a, 0x90, 0x14, 0x91, 0x44, 0xa4, 0x00, 0xb0, 0x57, 0xb5, 0x00, 0xba, 0x00, 0xce, 0x45, - 0xd0, 0x00, 0xd8, 0x16, 0xe1, 0x00, 0xe7, 0x00, 0x00, 0x54, 0x01, 0x58, 0x02, 0x10, 0x02, 0xe6, - 0x03, 0xa1, 0x04, 0x13, 0x06, 0x83, 0x06, 0xf0, 0x07, 0x00, 0x0a, 0x00, 0x0a, 0x12, 0x0a, 0xf0, - 0x0c, 0x04, 0x0c, 0x12, 0x0c, 0x90, 0x10, 0x10, 0x10, 0x13, 0x12, 0x1c, 0x17, 0x00, 0x19, 0xe4, - 0x1a, 0x10, 0x1c, 0x00, 0x1c, 0x12, 0x1d, 0xf7, 0x1e, 0x13, 0x20, 0x1c, 0x20, 0xe7, 0x22, 0x01, - 0x26, 0x01, 0x2a, 0x12, 0x30, 0xe7, 0x34, 0x1c, 0x36, 0x1c, 0x38, 0x12, 0x41, 0x58, 0x43, 0x48, - 0x44, 0x55, 0x46, 0x1c, 0x4c, 0x0e, 0x4e, 0xe4, 0x52, 0x14, 0x5c, 0xf0, 0x72, 0x02, 0x74, 0x03, - 0x77, 0x57, 0x89, 0x48, 0x8e, 0x90, 0x99, 0x00, 0x9b, 0x00, 0x9c, 0x32, 0x9e, 0x00, 0xa8, 0x00, - 0xb9, 0x00, 0xba, 0x06, 0xbc, 0x12, 0xbf, 0x57, 0xc0, 0x01, 0xfe, 0x9c, 0xf0, 0x26, 0x02, 0xfe, - 0x00, 0x0d, 0xff, 0x10, 0x00, 0x00, 0xfe, 0xc2, 0x01, 0xfe, 0x56, 0x19, 0x00, 0xfc, 0xfe, 0x80, - 0x01, 0xff, 0x03, 0x00, 0x00, 0xfe, 0x6a, 0x13, 0xfe, 0x05, 0x05, 0xff, 0x40, 0x00, 0x00, 0x0d, - 0xff, 0x09, 0x00, 0x00, 0xff, 0x08, 0x01, 0x01, 0xff, 0x10, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, - 0xff, 0x10, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xfe, 0x78, 0x56, 0xfe, 0x34, 0x12, 0xff, 0x21, - 0x00, 0x00, 0xfe, 0x04, 0xf7, 0xfc, 0x2b, 0x51, 0x0c, 0x01, 0xfe, 0xea, 0x0e, 0xfe, 0x04, 0xf7, - 0xfc, 0x51, 0x0c, 0x1d, 0x2b, 0xfe, 0x3d, 0xf0, 0xfe, 0xf8, 0x01, 0xfe, 0x20, 0xf0, 0xd0, 0x04, - 0x56, 0x4b, 0x02, 0xfe, 0x1c, 0x0d, 0x01, 0xfe, 0x7c, 0x0d, 0xfe, 0xe9, 0x12, 0x02, 0xfe, 0x04, - 0x03, 0xfe, 0x28, 0x1c, 0x04, 0xfe, 0xa6, 0x00, 0xfe, 0xdd, 0x12, 0x4e, 0x12, 0xfe, 0xa6, 0x00, - 0xc5, 0xfe, 0x48, 0xf0, 0xfe, 0x7c, 0x02, 0xfe, 0x49, 0xf0, 0xfe, 0x96, 0x02, 0xfe, 0x4a, 0xf0, - 0xfe, 0xb4, 0x02, 0xfe, 0x46, 0xf0, 0xfe, 0x46, 0x02, 0xfe, 0x47, 0xf0, 0xfe, 0x4c, 0x02, 0xfe, - 0x43, 0xf0, 0xfe, 0x3a, 0x02, 0xfe, 0x44, 0xf0, 0xfe, 0x3e, 0x02, 0xfe, 0x45, 0xf0, 0xfe, 0x42, - 0x02, 0x09, 0x0c, 0x9e, 0x09, 0x06, 0x12, 0xbb, 0x02, 0x26, 0xfe, 0x00, 0x1c, 0xfe, 0xf1, 0x10, - 0xfe, 0x02, 0x1c, 0xfe, 0xed, 0x10, 0xfe, 0x1e, 0x1c, 0xfe, 0xe9, 0x10, 0x01, 0xfe, 0x4c, 0x17, - 0xfe, 0xe7, 0x10, 0xfe, 0x06, 0xfc, 0xf7, 0x0e, 0x78, 0x01, 0xab, 0x02, 0x26, 0x17, 0x55, 0x4a, - 0xbd, 0x01, 0xfe, 0x60, 0x0f, 0x0e, 0x78, 0x01, 0x8b, 0xfe, 0xbd, 0x10, 0x0e, 0x78, 0x01, 0x8b, - 0xfe, 0xad, 0x10, 0xfe, 0x16, 0x1c, 0xfe, 0x58, 0x1c, 0x09, 0x06, 0x12, 0xbb, 0x2b, 0x22, 0x26, - 0xfe, 0x3d, 0xf0, 0xfe, 0xf8, 0x01, 0x27, 0xfe, 0x8a, 0x02, 0xfe, 0x5a, 0x1c, 0xd5, 0xfe, 0x14, - 0x1c, 0x17, 0xfe, 0x30, 0x00, 0x4a, 0xbd, 0x01, 0xfe, 0x50, 0x0f, 0x09, 0x06, 0x12, 0xbb, 0x02, - 0xfe, 0xc2, 0x01, 0x21, 0x2a, 0x05, 0x10, 0x35, 0xfe, 0x69, 0x10, 0x09, 0x06, 0x12, 0xbb, 0xfe, - 0x04, 0xec, 0x2a, 0x08, 0x2a, 0x09, 0x3c, 0x1d, 0x01, 0x46, 0x7f, 0xfe, 0x05, 0xf6, 0xf7, 0x01, - 0xfe, 0x76, 0x16, 0x0a, 0x41, 0x89, 0x38, 0x11, 0x47, 0x1d, 0xca, 0x08, 0x1c, 0x09, 0x43, 0x01, - 0x71, 0x02, 0x26, 0x0e, 0x3d, 0x01, 0x15, 0x05, 0x10, 0x2c, 0x08, 0x1c, 0x09, 0x43, 0x01, 0x7b, - 0xfe, 0x28, 0x10, 0x0e, 0xc0, 0x01, 0x15, 0xe6, 0x0e, 0x79, 0x01, 0x15, 0xfe, 0x49, 0x54, 0x74, - 0xfe, 0x12, 0x03, 0x08, 0x1c, 0x09, 0x43, 0x01, 0x71, 0x02, 0x26, 0x2b, 0x7f, 0xfe, 0x02, 0xe8, - 0x2f, 0xfb, 0xfe, 0x9e, 0x43, 0xf0, 0xfe, 0x07, 0x4b, 0xfe, 0x20, 0xf0, 0xd0, 0xfe, 0x40, 0x1c, - 0x22, 0xef, 0xfe, 0x26, 0xf0, 0xfe, 0x70, 0x03, 0xfe, 0xa0, 0xf0, 0xfe, 0x5e, 0x03, 0xfe, 0x11, - 0xf0, 0xd0, 0xfe, 0x0e, 0x10, 0xfe, 0x9f, 0xf0, 0xfe, 0x7e, 0x03, 0xe9, 0x13, 0xfe, 0x11, 0x00, - 0x02, 0x62, 0x2b, 0xfe, 0x48, 0x1c, 0xe9, 0x22, 0xef, 0x34, 0xef, 0xfe, 0x82, 0xf0, 0xfe, 0x84, - 0x03, 0x2d, 0x21, 0xbe, 0x6a, 0x16, 0xbe, 0x0e, 0x79, 0x01, 0x15, 0x6a, 0x7d, 0x08, 0x1c, 0x09, - 0x43, 0x01, 0x46, 0x11, 0x3d, 0x08, 0x3d, 0x09, 0x99, 0x01, 0x71, 0xf5, 0x11, 0xfe, 0xe4, 0x00, - 0x2e, 0xfe, 0xca, 0x03, 0x22, 0x32, 0x1f, 0xfe, 0xda, 0x03, 0x01, 0x4c, 0xcb, 0xfe, 0xea, 0x03, - 0x6b, 0x92, 0xcf, 0xfe, 0xaa, 0x06, 0x02, 0x28, 0x04, 0x78, 0x29, 0x18, 0xfe, 0x1c, 0x05, 0x17, - 0x85, 0x01, 0x44, 0x01, 0x97, 0x01, 0x9a, 0x34, 0xfe, 0x5c, 0x02, 0x02, 0xee, 0xe9, 0x2b, 0x51, - 0x19, 0xfe, 0x67, 0x1b, 0xfb, 0xf0, 0xfe, 0x48, 0x1c, 0x8c, 0x01, 0xfa, 0xac, 0xfe, 0x96, 0xf0, - 0xfe, 0x24, 0x04, 0x2e, 0xfe, 0x28, 0x04, 0x34, 0x26, 0x0e, 0x3d, 0x01, 0x15, 0x05, 0x10, 0x18, - 0xfe, 0x08, 0x05, 0x3e, 0x90, 0x9f, 0x2f, 0x82, 0x6e, 0x22, 0x32, 0x1f, 0x28, 0x04, 0x78, 0x29, - 0xfe, 0x10, 0x12, 0x17, 0x85, 0x01, 0x44, 0x34, 0xfe, 0x5c, 0x02, 0x02, 0xee, 0x31, 0xfe, 0xa0, - 0x00, 0xfe, 0x9b, 0x57, 0xfe, 0x5e, 0x12, 0x0a, 0x07, 0x06, 0xfe, 0x56, 0x12, 0x23, 0x24, 0x91, - 0x01, 0x0b, 0x82, 0x6e, 0x1f, 0xfe, 0xd8, 0x04, 0x23, 0x24, 0x91, 0x01, 0x0b, 0x1f, 0x28, 0x23, - 0x24, 0xb3, 0xfe, 0x4c, 0x44, 0xfe, 0x32, 0x12, 0x57, 0xfe, 0x44, 0x48, 0x08, 0xd6, 0xfe, 0x4c, - 0x54, 0x74, 0xfe, 0x08, 0x05, 0x7f, 0x9f, 0x2f, 0xfe, 0x06, 0x80, 0xfe, 0x48, 0x47, 0xfe, 0x48, - 0x13, 0x3f, 0x05, 0xfe, 0xcc, 0x00, 0xfe, 0x40, 0x13, 0x0a, 0x07, 0x06, 0xe5, 0xfe, 0x06, 0x10, - 0x23, 0x24, 0xb3, 0x0a, 0x07, 0x37, 0xda, 0x17, 0xa4, 0x0a, 0x07, 0x06, 0x4b, 0x17, 0xfe, 0x0d, - 0x00, 0x01, 0x44, 0x34, 0xfe, 0xc0, 0x0c, 0x02, 0x28, 0x39, 0x11, 0xfe, 0xe6, 0x00, 0xfe, 0x1c, - 0x90, 0xb0, 0x03, 0x17, 0xa4, 0x01, 0x44, 0x34, 0x26, 0x22, 0x26, 0x02, 0xfe, 0x10, 0x05, 0xfe, - 0x42, 0x5b, 0x51, 0x19, 0xfe, 0x46, 0x59, 0xfb, 0xf0, 0x17, 0x45, 0xfe, 0x07, 0x80, 0xfe, 0x31, - 0x44, 0x0a, 0x07, 0x0c, 0xfe, 0x78, 0x13, 0xfe, 0x20, 0x80, 0x05, 0x19, 0xfe, 0x70, 0x12, 0x6d, - 0x07, 0x06, 0xfe, 0x60, 0x13, 0x04, 0xfe, 0xa2, 0x00, 0x29, 0x18, 0xfe, 0xa8, 0x05, 0xfe, 0x31, - 0xe4, 0x70, 0x6d, 0x07, 0x0c, 0xfe, 0x4a, 0x13, 0x04, 0xfe, 0xa0, 0x00, 0x29, 0xfe, 0x42, 0x12, - 0x5a, 0x2e, 0xfe, 0x68, 0x05, 0x22, 0x32, 0xf1, 0x01, 0x0b, 0x25, 0xfe, 0xc0, 0x05, 0x11, 0xfe, - 0xe3, 0x00, 0x2d, 0x6d, 0xfe, 0x4a, 0xf0, 0xfe, 0x92, 0x05, 0xfe, 0x49, 0xf0, 0xfe, 0x8c, 0x05, - 0xa8, 0x20, 0xfe, 0x21, 0x00, 0xa6, 0x20, 0xfe, 0x22, 0x00, 0x9e, 0x20, 0x89, 0xfe, 0x09, 0x48, - 0x01, 0x0b, 0x25, 0xfe, 0xc0, 0x05, 0xfe, 0xe2, 0x08, 0x6d, 0x07, 0xd9, 0x4b, 0x01, 0x96, 0x20, - 0x06, 0x16, 0xe0, 0x4a, 0xfe, 0x27, 0x01, 0x0a, 0x07, 0x37, 0xe1, 0x4e, 0x01, 0xb9, 0x17, 0xa4, - 0x0a, 0x07, 0x06, 0x4b, 0x17, 0xfe, 0x0d, 0x00, 0x01, 0x44, 0x01, 0x97, 0x01, 0x9a, 0x34, 0xfe, - 0xc0, 0x0c, 0x02, 0x28, 0x04, 0xfe, 0x9c, 0x00, 0x29, 0xfe, 0x3e, 0x12, 0x04, 0x53, 0x29, 0xfe, - 0x36, 0x13, 0x4e, 0x01, 0xb9, 0x25, 0xfe, 0x38, 0x06, 0x0e, 0x06, 0x6d, 0x07, 0x1a, 0xfe, 0x02, - 0x12, 0x77, 0x01, 0xfe, 0x26, 0x14, 0x1f, 0xfe, 0x2e, 0x06, 0x11, 0xc2, 0x01, 0x4c, 0x11, 0xfe, - 0xe5, 0x00, 0x04, 0x53, 0xbc, 0x0f, 0x53, 0x04, 0xf6, 0x29, 0xfe, 0x62, 0x12, 0x04, 0x4d, 0x29, - 0xfe, 0x5a, 0x13, 0x01, 0xfe, 0x9e, 0x18, 0x01, 0xfe, 0xf0, 0x18, 0xe7, 0xa3, 0x1a, 0x08, 0x63, - 0xff, 0x02, 0x00, 0x57, 0x66, 0x7e, 0x1b, 0x50, 0xc9, 0xa3, 0x6c, 0x4e, 0x01, 0xb9, 0x25, 0xfe, - 0xa2, 0x06, 0x6d, 0x07, 0x1e, 0xa5, 0x95, 0x0e, 0x55, 0x01, 0xfe, 0x54, 0x14, 0x1f, 0xfe, 0x98, - 0x06, 0x11, 0xc2, 0x01, 0x4c, 0x11, 0xfe, 0xe5, 0x00, 0x04, 0x4d, 0xbc, 0x0f, 0x4d, 0x09, 0x06, - 0x01, 0xb9, 0xf5, 0x73, 0x8c, 0x01, 0xfa, 0xac, 0x11, 0xfe, 0xe2, 0x00, 0x2e, 0xf9, 0x22, 0x32, - 0xcf, 0xfe, 0xd6, 0x06, 0x81, 0xfe, 0x74, 0x07, 0xcb, 0xfe, 0x7c, 0x07, 0x6b, 0x92, 0x02, 0x28, - 0x0a, 0x07, 0x0c, 0xfe, 0x2e, 0x12, 0x14, 0x19, 0x01, 0x0b, 0x14, 0x00, 0x01, 0x0b, 0x14, 0x00, - 0x01, 0x0b, 0x14, 0x00, 0x01, 0x0b, 0xfe, 0x99, 0xa4, 0x01, 0x0b, 0x14, 0x00, 0x02, 0xfe, 0x4c, - 0x08, 0x68, 0x07, 0x1e, 0xe5, 0x0a, 0x07, 0x1e, 0xfe, 0x30, 0x13, 0x14, 0xfe, 0x1b, 0x00, 0x01, - 0x0b, 0x14, 0x00, 0x01, 0x0b, 0x14, 0x00, 0x01, 0x0b, 0x14, 0x00, 0x01, 0x0b, 0x14, 0x06, 0x01, - 0x0b, 0x14, 0x00, 0x02, 0xfe, 0x2a, 0x0b, 0x77, 0xfe, 0x9a, 0x81, 0x67, 0x89, 0xfe, 0x09, 0x6f, - 0xfe, 0x93, 0x45, 0x18, 0xfe, 0x84, 0x07, 0x2e, 0xfe, 0x5c, 0x07, 0x22, 0x32, 0xcf, 0xfe, 0x54, - 0x07, 0x6b, 0x92, 0x81, 0xfe, 0x74, 0x07, 0x02, 0x28, 0x01, 0x4c, 0x02, 0xf9, 0x14, 0x1a, 0x02, - 0xf9, 0xfe, 0x9c, 0xf7, 0xfe, 0xec, 0x07, 0xfe, 0x2c, 0x90, 0xfe, 0xae, 0x90, 0x75, 0xfe, 0xd2, - 0x07, 0x0f, 0x5d, 0x12, 0x5e, 0x0a, 0x41, 0x70, 0x38, 0x01, 0xfe, 0x34, 0x18, 0x05, 0x10, 0x83, - 0xfe, 0x83, 0xe7, 0x88, 0xa6, 0xfe, 0x03, 0x40, 0x0a, 0x41, 0x45, 0x38, 0x01, 0xc1, 0xaf, 0xfe, - 0x1f, 0x40, 0x16, 0x61, 0x01, 0xfe, 0xde, 0x12, 0xfe, 0x08, 0x50, 0xfe, 0x8a, 0x50, 0xfe, 0x34, - 0x51, 0xfe, 0xb6, 0x51, 0xfe, 0x08, 0x90, 0xfe, 0x8a, 0x90, 0x0f, 0x5b, 0x12, 0x5c, 0xd2, 0xf2, - 0x0f, 0x3a, 0x12, 0x3b, 0xfe, 0x60, 0x10, 0x0a, 0x07, 0x70, 0xe1, 0xfe, 0x2c, 0x90, 0xfe, 0xae, - 0x90, 0x0f, 0x5d, 0x12, 0x5e, 0x0a, 0x07, 0x45, 0xc9, 0x01, 0xc1, 0xfe, 0x1f, 0x80, 0x16, 0x61, - 0xfe, 0x34, 0x90, 0xfe, 0xb6, 0x90, 0x0f, 0x5f, 0x12, 0x60, 0xfe, 0x08, 0x90, 0xfe, 0x8a, 0x90, - 0x0f, 0x5b, 0x12, 0x5c, 0xa2, 0x07, 0x45, 0x2c, 0xd2, 0xf2, 0x0f, 0x3a, 0x12, 0x3b, 0xa8, 0xfe, - 0x28, 0x90, 0xfe, 0xaa, 0x90, 0x0f, 0x3a, 0x12, 0x3b, 0x0f, 0x42, 0x12, 0x58, 0x0a, 0x41, 0x1a, - 0x38, 0x2b, 0x08, 0x80, 0x2e, 0xfe, 0x62, 0x08, 0xfe, 0x9e, 0xf0, 0xfe, 0x76, 0x08, 0x9b, 0x18, - 0x32, 0x2b, 0x52, 0xfe, 0xed, 0x10, 0xa7, 0xfe, 0x9a, 0x08, 0xa9, 0xfe, 0xb6, 0x08, 0x81, 0xfe, - 0x8e, 0x08, 0xcb, 0xfe, 0x94, 0x08, 0x6b, 0x92, 0x02, 0x28, 0x01, 0x4c, 0xfe, 0xc9, 0x10, 0x14, - 0x1a, 0xfe, 0xc9, 0x10, 0x68, 0x07, 0x06, 0xfe, 0x10, 0x12, 0x68, 0x07, 0x0c, 0x40, 0x0a, 0x07, - 0x0c, 0xfe, 0x7e, 0x12, 0xfe, 0x2e, 0x1c, 0xaa, 0x68, 0x07, 0x06, 0x40, 0x68, 0x07, 0x0c, 0xfe, - 0x6a, 0x12, 0xfe, 0x2c, 0x1c, 0xa2, 0x07, 0x45, 0xd4, 0xa2, 0x41, 0x45, 0xfe, 0x05, 0x40, 0xd2, - 0xf2, 0xfe, 0x28, 0x50, 0xfe, 0xaa, 0x50, 0xfe, 0xaa, 0xf0, 0xfe, 0x4e, 0x09, 0xfe, 0xac, 0xf0, - 0xfe, 0xee, 0x08, 0xfe, 0x92, 0x10, 0xe3, 0xfe, 0xf3, 0x10, 0xfe, 0xad, 0xf0, 0xfe, 0xfa, 0x08, - 0x02, 0xfe, 0x5c, 0x0a, 0xe4, 0xfe, 0xe7, 0x10, 0xfe, 0x2b, 0xf0, 0xb8, 0xfe, 0x6b, 0x18, 0x1b, - 0xfe, 0x00, 0xfe, 0xda, 0xc5, 0xfe, 0xd2, 0xf0, 0xb8, 0xfe, 0x76, 0x18, 0x1b, 0x19, 0x18, 0xb8, - 0x04, 0xdf, 0x1b, 0x06, 0x18, 0xb8, 0xa7, 0x7a, 0xa9, 0x7a, 0xe3, 0xe4, 0xfe, 0xb1, 0x10, 0x8c, - 0x5a, 0x39, 0x17, 0xa4, 0x01, 0x44, 0x13, 0xfe, 0x35, 0x00, 0x34, 0x62, 0x13, 0x8d, 0x02, 0x62, - 0xfe, 0x74, 0x18, 0x1b, 0xfe, 0x00, 0xf8, 0x18, 0x7a, 0x51, 0x1e, 0x01, 0xfe, 0x7c, 0x0d, 0xd1, - 0x08, 0x1c, 0x09, 0x43, 0x01, 0x71, 0x21, 0x2f, 0x3e, 0x51, 0x19, 0x02, 0x7a, 0xfe, 0x98, 0x80, - 0xd7, 0x0c, 0x27, 0xfe, 0x3e, 0x0a, 0x0a, 0x07, 0x70, 0xfe, 0x82, 0x12, 0x0a, 0x07, 0x1a, 0xfe, - 0x66, 0x13, 0x21, 0x61, 0x6a, 0xc8, 0xfe, 0x83, 0x80, 0xfe, 0xc8, 0x44, 0xfe, 0x2e, 0x13, 0xfe, - 0x04, 0x91, 0xfe, 0x86, 0x91, 0x64, 0x2f, 0xfe, 0x40, 0x59, 0xfe, 0xc1, 0x59, 0x75, 0xfe, 0xea, - 0x08, 0x04, 0x5d, 0x30, 0x5e, 0x0f, 0xae, 0x12, 0x8d, 0x9c, 0x5d, 0x9d, 0x5e, 0x01, 0xc1, 0xaf, - 0x64, 0x2f, 0x16, 0x61, 0xa1, 0x42, 0x69, 0x58, 0x65, 0x5f, 0x31, 0x60, 0xe8, 0xfe, 0xe5, 0x55, - 0xfe, 0x04, 0xfa, 0x42, 0xfe, 0x05, 0xfa, 0x58, 0x01, 0xfe, 0xde, 0x12, 0xfe, 0x36, 0x10, 0x2d, - 0x0f, 0xae, 0x0f, 0x8d, 0x65, 0x5f, 0x31, 0x60, 0xaa, 0x0a, 0x07, 0x1a, 0x18, 0xfe, 0xea, 0x08, - 0x65, 0x3a, 0x31, 0x3b, 0x0a, 0x07, 0xfe, 0xf7, 0x00, 0x38, 0x04, 0x5b, 0x30, 0x5c, 0xfe, 0x10, - 0x58, 0xfe, 0x91, 0x58, 0xfe, 0x14, 0x59, 0xfe, 0x95, 0x59, 0x02, 0x7a, 0x0a, 0x07, 0x1a, 0x18, - 0xfe, 0xea, 0x08, 0x0a, 0x07, 0xfe, 0xf7, 0x00, 0x38, 0xfe, 0x3a, 0x55, 0xfe, 0x19, 0x81, 0x77, - 0xfe, 0x10, 0x90, 0xfe, 0x92, 0x90, 0xfe, 0xd7, 0x10, 0x3f, 0x05, 0xc3, 0x18, 0xfe, 0xf6, 0x08, - 0x11, 0xc3, 0xfe, 0x98, 0x80, 0xd7, 0x0c, 0xfe, 0x14, 0x13, 0x04, 0x3a, 0x30, 0x3b, 0x75, 0xfe, - 0xf6, 0x08, 0xfe, 0x0c, 0x58, 0xfe, 0x8d, 0x58, 0x02, 0x7a, 0x2d, 0x4e, 0xfe, 0x19, 0x80, 0xfe, - 0xf1, 0x10, 0x0a, 0x07, 0x0c, 0xa5, 0xfe, 0x6c, 0x19, 0xfe, 0x19, 0x41, 0xfe, 0x8e, 0x10, 0xfe, - 0x6c, 0x19, 0x9c, 0x3a, 0xfe, 0xed, 0x19, 0x9d, 0x3b, 0xfe, 0x0c, 0x51, 0xfe, 0x8e, 0x51, 0xfe, - 0x6b, 0x18, 0x1b, 0xfe, 0x00, 0xff, 0x35, 0xfe, 0x74, 0x10, 0xc5, 0xfe, 0xd2, 0xf0, 0xfe, 0xd6, - 0x0a, 0xfe, 0x76, 0x18, 0x1b, 0x19, 0xce, 0x04, 0xdf, 0x1b, 0x06, 0x84, 0x13, 0xfe, 0x16, 0x00, - 0x02, 0x62, 0xfe, 0xd1, 0xf0, 0xfe, 0xe8, 0x0a, 0x17, 0x80, 0x01, 0x44, 0x13, 0xd6, 0xfe, 0x42, - 0x10, 0xfe, 0xce, 0xf0, 0xfe, 0xee, 0x0a, 0xfe, 0x3c, 0x10, 0xfe, 0xcd, 0xf0, 0xfe, 0xfa, 0x0a, - 0x13, 0xfe, 0x22, 0x00, 0x02, 0x62, 0xfe, 0xcb, 0xf0, 0xfe, 0x06, 0x0b, 0x13, 0xfe, 0x24, 0x00, - 0x02, 0x62, 0xfe, 0xd0, 0xf0, 0xfe, 0x10, 0x0b, 0x13, 0x88, 0xd8, 0xfe, 0xcf, 0xf0, 0xfe, 0x1a, - 0x0b, 0x13, 0x89, 0xd3, 0xfe, 0xcc, 0xf0, 0xfe, 0x2a, 0x0b, 0xfe, 0x84, 0x80, 0xd7, 0x1a, 0x4b, - 0x13, 0xfe, 0x12, 0x00, 0x2b, 0x08, 0x80, 0x2e, 0xfe, 0x30, 0x0b, 0xfe, 0x9e, 0xf0, 0xfe, 0x44, - 0x0b, 0x9b, 0x18, 0x32, 0x2b, 0x52, 0xfe, 0xed, 0x10, 0xa7, 0x28, 0xa9, 0x28, 0x2b, 0xf5, 0x2e, - 0xfe, 0x50, 0x0b, 0x22, 0x32, 0x81, 0xfe, 0x6c, 0x0b, 0x6b, 0x92, 0xa7, 0xfe, 0xec, 0x07, 0xa9, - 0xfe, 0xec, 0x07, 0x02, 0x28, 0x01, 0x4c, 0xfe, 0xdb, 0x10, 0x11, 0xfe, 0xe8, 0x00, 0xe3, 0xe4, - 0x8c, 0x82, 0x6e, 0xfe, 0x89, 0xf0, 0x28, 0x23, 0x24, 0xfe, 0xe9, 0x09, 0x01, 0x0b, 0x82, 0x6e, - 0x1f, 0x28, 0x23, 0x24, 0x91, 0x34, 0xfe, 0xa8, 0x0b, 0x22, 0x32, 0x02, 0xfe, 0x9c, 0x0b, 0x9b, - 0x40, 0x13, 0xfe, 0x42, 0x00, 0x02, 0x62, 0xa0, 0x06, 0xfe, 0x81, 0x49, 0x96, 0x0a, 0x07, 0x0c, - 0xfe, 0x5a, 0x13, 0x13, 0x00, 0x59, 0x0c, 0xfe, 0x6a, 0x12, 0x59, 0xfe, 0x28, 0x00, 0x27, 0xfe, - 0xee, 0x0c, 0x0e, 0x79, 0x01, 0x15, 0x05, 0x00, 0x84, 0x36, 0xfe, 0x28, 0x00, 0x02, 0xfe, 0xee, - 0x0c, 0x01, 0x97, 0x01, 0x9a, 0x0e, 0xc0, 0x01, 0xfe, 0x44, 0x0e, 0xb2, 0x08, 0x3d, 0x09, 0x99, - 0x01, 0x46, 0x11, 0x47, 0x08, 0x1c, 0x09, 0x43, 0x01, 0x7b, 0x02, 0x26, 0x13, 0xfe, 0x44, 0x00, - 0x59, 0x0c, 0xa5, 0x36, 0x0c, 0xfe, 0xc0, 0x10, 0x01, 0x96, 0x36, 0x0c, 0xfe, 0xb6, 0x10, 0x01, - 0x96, 0xfe, 0x19, 0x82, 0xfe, 0x34, 0x46, 0xfe, 0x0a, 0x13, 0x36, 0x0c, 0x13, 0xfe, 0x43, 0x00, - 0xfe, 0xa2, 0x10, 0x0a, 0x41, 0x0c, 0x38, 0x01, 0x97, 0x01, 0x9a, 0xb2, 0x08, 0x3d, 0x09, 0x99, - 0x01, 0x46, 0x11, 0x47, 0x08, 0x1c, 0x09, 0x43, 0x01, 0x7b, 0x51, 0x0c, 0xb2, 0x1d, 0xca, 0x02, - 0xfe, 0x48, 0x03, 0x0a, 0x07, 0x0c, 0xce, 0x36, 0x0c, 0x13, 0x00, 0xfe, 0x54, 0x10, 0x68, 0x07, - 0x1e, 0xfe, 0x50, 0x12, 0x0a, 0x07, 0x1e, 0xfe, 0x48, 0x13, 0xfe, 0x1c, 0x1c, 0xfe, 0x9d, 0xf0, - 0xfe, 0xac, 0x0c, 0xfe, 0x1c, 0x1c, 0xfe, 0x9d, 0xf0, 0xfe, 0xb2, 0x0c, 0x0a, 0x41, 0x1e, 0x38, - 0xfe, 0x95, 0x10, 0x13, 0xfe, 0x15, 0x00, 0xfe, 0x04, 0xe6, 0x0c, 0x77, 0xfe, 0x26, 0x10, 0x13, - 0xfe, 0x13, 0x00, 0xd3, 0x13, 0xfe, 0x47, 0x00, 0xa6, 0x13, 0xfe, 0x41, 0x00, 0x9e, 0x13, 0xfe, - 0x24, 0x00, 0x04, 0x78, 0x29, 0x27, 0xee, 0x77, 0xfe, 0x04, 0xe6, 0x1e, 0xfe, 0x9d, 0x41, 0xfe, - 0x1c, 0x42, 0xb2, 0x01, 0xea, 0x02, 0x26, 0xd5, 0x17, 0x0c, 0x4a, 0xf4, 0xdd, 0x17, 0xfe, 0x31, - 0x00, 0x4a, 0xbd, 0x01, 0xfe, 0x50, 0x0f, 0x02, 0xfe, 0xc2, 0x01, 0x1d, 0xfe, 0x06, 0xec, 0xf8, - 0x86, 0x36, 0x37, 0xbf, 0x35, 0x1d, 0xfe, 0x06, 0xea, 0xf8, 0xfe, 0x47, 0x4b, 0x95, 0xfe, 0x75, - 0x57, 0x04, 0x56, 0xfe, 0x98, 0x56, 0xfe, 0x28, 0x12, 0x0e, 0x79, 0xfe, 0xf4, 0x14, 0x4e, 0xe6, - 0x0e, 0xc0, 0xfe, 0xea, 0x14, 0xfe, 0x49, 0x54, 0x8f, 0xfe, 0x62, 0x0d, 0x0e, 0x1c, 0xfe, 0xde, - 0x14, 0xfe, 0x44, 0x48, 0x02, 0xfe, 0x48, 0x03, 0x0e, 0x56, 0xfe, 0xc8, 0x14, 0x86, 0x36, 0x37, - 0xbf, 0x35, 0x1d, 0xfe, 0xce, 0x47, 0xfe, 0xbd, 0x13, 0x02, 0x26, 0x21, 0x2a, 0x05, 0x10, 0xfe, - 0x78, 0x12, 0x2d, 0x16, 0x55, 0x16, 0xad, 0x21, 0x47, 0x4e, 0x4a, 0x47, 0x9b, 0xfe, 0x0c, 0x13, - 0xfe, 0xbc, 0xf0, 0xfe, 0xfe, 0x0d, 0x08, 0x06, 0x16, 0x55, 0x01, 0xfe, 0x06, 0x16, 0x04, 0xfe, - 0x38, 0x01, 0x30, 0xfe, 0x3a, 0x01, 0x75, 0xfe, 0x02, 0x0e, 0x04, 0xfe, 0x38, 0x01, 0x1b, 0xfe, - 0xf0, 0xff, 0x0f, 0xfe, 0x60, 0x01, 0x04, 0xfe, 0x3a, 0x01, 0x0f, 0xfe, 0x62, 0x01, 0x20, 0x06, - 0x16, 0x47, 0xfe, 0x04, 0xec, 0x2a, 0x08, 0x2a, 0x09, 0x3c, 0x1d, 0x01, 0x46, 0x7f, 0xfe, 0x05, - 0xf6, 0xfe, 0x34, 0x01, 0x01, 0xfe, 0x76, 0x16, 0x11, 0x47, 0xca, 0x08, 0x06, 0x03, 0x2d, 0x03, - 0x21, 0x55, 0xfe, 0xf7, 0x12, 0x21, 0xad, 0x6a, 0x16, 0xad, 0x05, 0x80, 0xfe, 0x93, 0x13, 0xfe, - 0x24, 0x1c, 0x17, 0x19, 0x4a, 0xf4, 0xdd, 0xfe, 0xd9, 0x10, 0x93, 0xfe, 0x03, 0xdc, 0xfe, 0x73, - 0x57, 0xfe, 0x80, 0x5d, 0x03, 0x93, 0xfe, 0x03, 0xdc, 0xfe, 0x5b, 0x57, 0xfe, 0x80, 0x5d, 0x03, - 0xfe, 0x03, 0x57, 0x93, 0x2d, 0xfe, 0x00, 0xcc, 0x03, 0xfe, 0x03, 0x57, 0x93, 0x7d, 0x03, 0x01, - 0xfe, 0xae, 0x16, 0x3f, 0x05, 0x47, 0xfe, 0x0a, 0x13, 0x08, 0x1c, 0x09, 0x43, 0xd3, 0x01, 0x97, - 0x01, 0x9a, 0x08, 0x3d, 0x09, 0x99, 0x01, 0x46, 0x11, 0xfe, 0xe9, 0x00, 0x0a, 0x07, 0x89, 0xfe, - 0x52, 0x13, 0x01, 0xfe, 0x38, 0x16, 0xfe, 0x1e, 0x1c, 0xfe, 0x14, 0x90, 0x0f, 0xfe, 0x64, 0x01, - 0xfe, 0x16, 0x90, 0x0f, 0xfe, 0x66, 0x01, 0x0a, 0x07, 0x45, 0xe5, 0xfe, 0x03, 0x80, 0x52, 0x3e, - 0x11, 0x76, 0x08, 0x2a, 0x09, 0x3c, 0x1d, 0x90, 0x01, 0x71, 0xfe, 0x62, 0x08, 0x6a, 0x3e, 0x11, - 0x76, 0x08, 0x2a, 0x09, 0x3c, 0x1d, 0x90, 0x01, 0x71, 0x64, 0x2f, 0x11, 0x76, 0x08, 0x2a, 0x09, - 0x3c, 0x1d, 0x90, 0x01, 0x7b, 0x03, 0xfe, 0x08, 0x1c, 0x04, 0xfe, 0xac, 0x00, 0xfe, 0x06, 0x58, - 0x04, 0xfe, 0xae, 0x00, 0xfe, 0x07, 0x58, 0x04, 0xfe, 0xb0, 0x00, 0xfe, 0x08, 0x58, 0x04, 0xfe, - 0xb2, 0x00, 0xfe, 0x09, 0x58, 0xfe, 0x0a, 0x1c, 0x20, 0x6c, 0x16, 0xf8, 0x2d, 0x0f, 0x53, 0x0f, - 0x4d, 0x20, 0x10, 0x16, 0x2a, 0x16, 0x3c, 0x57, 0xa0, 0xd6, 0x08, 0x2a, 0x09, 0x3c, 0x1d, 0x01, - 0x7b, 0x7f, 0x11, 0x76, 0xfe, 0x14, 0x56, 0xfe, 0xd6, 0xf0, 0xfe, 0x2a, 0x0f, 0xd5, 0x8c, 0xfe, - 0x14, 0x1c, 0xfe, 0x10, 0x1c, 0xfe, 0x18, 0x1c, 0x03, 0x1d, 0xfe, 0x0c, 0x14, 0x86, 0xfe, 0x07, - 0xe6, 0x37, 0xfe, 0xce, 0x47, 0xfe, 0xf5, 0x13, 0x03, 0x01, 0x96, 0x0e, 0x3d, 0x01, 0x15, 0x05, - 0x10, 0x2c, 0x0e, 0x1c, 0x01, 0x15, 0x05, 0x10, 0xda, 0xfe, 0x44, 0x58, 0x3e, 0xfe, 0x01, 0xec, - 0xbd, 0xfe, 0x9e, 0x40, 0xfe, 0x9d, 0xe7, 0x00, 0xfe, 0x9c, 0xe7, 0x1e, 0x9f, 0x2f, 0x01, 0xea, - 0xfe, 0xc9, 0x10, 0x03, 0x2b, 0x82, 0x6e, 0x23, 0x24, 0xb3, 0x05, 0x1e, 0xfe, 0x48, 0x12, 0x05, - 0x0c, 0xfe, 0x4c, 0x12, 0x05, 0x19, 0xfe, 0x30, 0x12, 0x05, 0xcc, 0x18, 0xfe, 0xf4, 0x10, 0x05, - 0xfe, 0x23, 0x00, 0x18, 0xfe, 0x00, 0x11, 0x05, 0x06, 0x18, 0xfe, 0x5e, 0x11, 0x05, 0x1a, 0xfe, - 0x12, 0x12, 0x05, 0x00, 0x18, 0x28, 0x17, 0xcc, 0x01, 0x44, 0xc6, 0x39, 0x01, 0x0b, 0x81, 0x4c, - 0x03, 0x39, 0x11, 0xfe, 0xcc, 0x00, 0x02, 0x26, 0x39, 0x3f, 0x05, 0xc3, 0xfe, 0xe3, 0x13, 0x65, - 0x3a, 0x31, 0x3b, 0x75, 0xfe, 0xb2, 0x10, 0x0a, 0x07, 0x70, 0xfe, 0x72, 0x12, 0xa1, 0x42, 0x69, - 0x58, 0xe8, 0xfe, 0xe5, 0x55, 0x8f, 0xfe, 0x7c, 0x10, 0x21, 0x61, 0xfe, 0x26, 0x13, 0x04, 0xae, - 0x30, 0x8d, 0x75, 0xfe, 0xd2, 0x0c, 0x0f, 0x5d, 0x12, 0x5e, 0x2d, 0x0f, 0xae, 0x0f, 0x8d, 0x01, - 0xc1, 0x20, 0x6c, 0x52, 0x16, 0x61, 0x01, 0xfe, 0xde, 0x12, 0xa1, 0x42, 0x69, 0x58, 0xfe, 0x04, - 0x55, 0xfe, 0xa5, 0x55, 0xfe, 0x04, 0xfa, 0x42, 0xfe, 0x05, 0xfa, 0x58, 0xfe, 0x91, 0x10, 0x04, - 0x5f, 0x30, 0x60, 0xfe, 0x40, 0x56, 0xfe, 0xe1, 0x56, 0x0f, 0x5f, 0x12, 0x60, 0xa8, 0xa1, 0x42, - 0x69, 0x58, 0xe8, 0xfe, 0xe5, 0x55, 0x04, 0x5b, 0x30, 0x5c, 0xfe, 0x00, 0x56, 0xfe, 0xa1, 0x56, - 0x0f, 0x5b, 0x12, 0x5c, 0x0a, 0x07, 0x70, 0xfe, 0x1e, 0x12, 0x21, 0x61, 0xfe, 0x1f, 0x40, 0x04, - 0x5d, 0x30, 0x5e, 0xfe, 0x2c, 0x50, 0xfe, 0xae, 0x50, 0x04, 0x5f, 0x30, 0x60, 0xfe, 0x34, 0x50, - 0xfe, 0xb6, 0x50, 0x04, 0x5b, 0x30, 0x5c, 0xfe, 0x08, 0x50, 0xfe, 0x8a, 0x50, 0x04, 0x3a, 0x30, - 0x3b, 0xfe, 0x28, 0x50, 0xfe, 0xaa, 0x50, 0x02, 0x98, 0x20, 0x06, 0x16, 0xf3, 0x02, 0x7c, 0x39, - 0x01, 0x0b, 0x1f, 0x4f, 0x23, 0x24, 0xb3, 0x05, 0x06, 0x27, 0x4f, 0x3f, 0x05, 0xc3, 0x27, 0x7c, - 0x01, 0xfa, 0x1b, 0x50, 0x18, 0x4f, 0x0a, 0x07, 0x0c, 0xdc, 0x65, 0x3a, 0x31, 0x3b, 0xfe, 0x0a, - 0x55, 0x35, 0xfe, 0x8b, 0x55, 0x9c, 0x3a, 0x9d, 0x3b, 0xfe, 0x0c, 0x51, 0xfe, 0x8e, 0x51, 0x02, - 0x7c, 0xfe, 0x19, 0x81, 0xfe, 0x0a, 0x45, 0xfe, 0x19, 0x41, 0x02, 0x7c, 0x39, 0x01, 0x0b, 0x1f, - 0xfe, 0xf6, 0x0f, 0x23, 0x24, 0xfe, 0xe9, 0x09, 0x59, 0x19, 0xfe, 0x94, 0x12, 0x59, 0x0c, 0x4b, - 0x02, 0x4f, 0x2e, 0xfe, 0x7e, 0x11, 0x22, 0x32, 0x1f, 0xfe, 0xf6, 0x0f, 0x23, 0x24, 0x91, 0x05, - 0x19, 0x27, 0x4f, 0x01, 0x0b, 0x1f, 0xfe, 0xf6, 0x0f, 0x23, 0x24, 0xfe, 0xe8, 0x09, 0x57, 0x04, - 0xfe, 0x9c, 0x00, 0x29, 0x35, 0xfe, 0xbb, 0x45, 0x59, 0x00, 0x40, 0x36, 0x06, 0xa0, 0x50, 0xfe, - 0xc0, 0x14, 0xfe, 0xf8, 0x14, 0xac, 0x3f, 0x05, 0xc2, 0xfe, 0x16, 0x13, 0x04, 0xf6, 0x29, 0xce, - 0x04, 0x4d, 0x29, 0x35, 0x5a, 0x02, 0x7c, 0xfe, 0xc0, 0x5d, 0xfe, 0xe4, 0x14, 0xfe, 0x03, 0x17, - 0x04, 0x53, 0xbc, 0x0f, 0x53, 0x5a, 0x39, 0x01, 0x0b, 0x25, 0x98, 0x01, 0xfe, 0x26, 0x14, 0x02, - 0x98, 0x2e, 0x40, 0x22, 0x32, 0x1f, 0x4f, 0x23, 0x24, 0x91, 0x05, 0x06, 0x27, 0x4f, 0xfe, 0xf6, - 0x14, 0xfe, 0x42, 0x58, 0xfe, 0x70, 0x14, 0xfe, 0x92, 0x14, 0xac, 0xfe, 0x4a, 0xf4, 0x0c, 0x18, - 0x4f, 0xfe, 0x4a, 0xf4, 0x06, 0xd1, 0x3f, 0x05, 0xc2, 0xc9, 0x02, 0x7c, 0x04, 0x4d, 0xbc, 0x0f, - 0x4d, 0x5a, 0x39, 0x01, 0x0b, 0x25, 0x98, 0x01, 0xfe, 0x54, 0x14, 0x02, 0x98, 0x25, 0xfe, 0x70, - 0x12, 0x73, 0xf1, 0x73, 0x03, 0x34, 0xfe, 0x6c, 0x12, 0x6b, 0xfe, 0x6c, 0x12, 0x5a, 0x39, 0x01, - 0x0b, 0xfe, 0xe3, 0x10, 0x08, 0x63, 0xff, 0x02, 0x00, 0x57, 0x66, 0x7e, 0x1b, 0xfe, 0xff, 0x7f, - 0xfe, 0x30, 0x56, 0xfe, 0x00, 0x5c, 0x03, 0x08, 0x63, 0xff, 0x02, 0x00, 0x57, 0x66, 0x7e, 0x1b, - 0x50, 0xfe, 0x30, 0x56, 0xfe, 0x00, 0x5c, 0x03, 0x08, 0x63, 0xff, 0x02, 0x00, 0x57, 0x66, 0x7e, - 0x03, 0x08, 0x63, 0xff, 0x02, 0x00, 0x57, 0x66, 0x7e, 0xfe, 0x0b, 0x58, 0x03, 0x0e, 0x53, 0x01, - 0x8b, 0x0e, 0x4d, 0x01, 0x8b, 0x03, 0xc8, 0x1b, 0x10, 0xff, 0x03, 0x00, 0x54, 0xfe, 0x00, 0xf4, - 0x1a, 0x66, 0xfe, 0x00, 0x7d, 0xfe, 0x01, 0x7d, 0xfe, 0x02, 0x7d, 0xfe, 0x03, 0x7c, 0x64, 0x2f, - 0x0f, 0x5b, 0x12, 0x5c, 0x9c, 0x5f, 0x9d, 0x60, 0x03, 0xfe, 0x62, 0x18, 0xfe, 0x82, 0x5a, 0xfe, - 0xe1, 0x1a, 0xb6, 0xfe, 0x02, 0x58, 0x03, 0x01, 0xfe, 0x9e, 0x18, 0xfe, 0x42, 0x48, 0x77, 0x57, - 0x95, 0x01, 0x0b, 0x1f, 0xfe, 0x1e, 0x14, 0x23, 0x24, 0xfe, 0xe9, 0x09, 0xfe, 0xc1, 0x59, 0x01, - 0x0b, 0x1f, 0xfe, 0x1e, 0x14, 0x23, 0x24, 0xfe, 0xe8, 0x0a, 0x04, 0xf6, 0x29, 0xfe, 0xc4, 0x12, - 0x2d, 0xb1, 0x1e, 0xdc, 0x59, 0xcd, 0x74, 0xfe, 0x6c, 0x13, 0x4b, 0x08, 0x06, 0x09, 0xcd, 0xa0, - 0xfe, 0x00, 0x10, 0xfe, 0x78, 0x10, 0xff, 0x02, 0x83, 0x55, 0xa6, 0xff, 0x02, 0x83, 0x55, 0xb1, - 0x19, 0xfe, 0x12, 0x13, 0x72, 0xfe, 0x30, 0x00, 0x8f, 0xfe, 0xc6, 0x13, 0x09, 0x85, 0x08, 0x06, - 0xfe, 0x56, 0x10, 0xb1, 0x0c, 0xfe, 0x16, 0x13, 0x72, 0xfe, 0x64, 0x00, 0x8f, 0xfe, 0xc6, 0x13, - 0x0e, 0xfe, 0x64, 0x00, 0x09, 0x88, 0x08, 0x06, 0xfe, 0x28, 0x10, 0xb1, 0x06, 0xfe, 0x60, 0x13, - 0x72, 0xfe, 0xc8, 0x00, 0x8f, 0xfe, 0xc6, 0x13, 0x0e, 0xfe, 0xc8, 0x00, 0x09, 0x55, 0x08, 0x06, - 0xa8, 0x72, 0xfe, 0x90, 0x01, 0xed, 0xfe, 0xd2, 0x13, 0x95, 0xaa, 0xfe, 0x43, 0xf4, 0xad, 0xfe, - 0x56, 0xf0, 0xfe, 0xe4, 0x13, 0xfe, 0x04, 0xf4, 0x63, 0xfe, 0x43, 0xf4, 0x88, 0xfe, 0xf3, 0x10, - 0xb0, 0x01, 0xfe, 0xae, 0x12, 0x1b, 0x50, 0xd4, 0xfe, 0x00, 0x17, 0xfe, 0x4d, 0xe4, 0x6c, 0xed, - 0xfe, 0x18, 0x14, 0xa3, 0x6c, 0xfe, 0x14, 0x10, 0xfe, 0x00, 0x17, 0xfe, 0x4d, 0xe4, 0x1a, 0xed, - 0xfe, 0x18, 0x14, 0xa3, 0x1a, 0x9e, 0x57, 0x95, 0x08, 0x06, 0xfe, 0xb4, 0x56, 0xfe, 0xc3, 0x58, - 0x03, 0x57, 0x08, 0x0c, 0x03, 0x14, 0x06, 0x01, 0x0b, 0x25, 0xec, 0x14, 0x0c, 0x01, 0x0b, 0x25, - 0xec, 0x14, 0x19, 0x01, 0x0b, 0x25, 0xec, 0x73, 0xfe, 0x89, 0x49, 0x01, 0x0b, 0x03, 0x14, 0x06, - 0x01, 0x0b, 0x25, 0xb7, 0x14, 0x19, 0x01, 0x0b, 0x25, 0xb7, 0x14, 0x06, 0x01, 0x0b, 0x25, 0xb7, - 0xfe, 0x89, 0x49, 0x01, 0x0b, 0x25, 0xb7, 0x73, 0xfe, 0x89, 0x4a, 0x01, 0x0b, 0x03, 0x57, 0x03, - 0x21, 0xe0, 0x05, 0x06, 0xfe, 0x44, 0x13, 0xaf, 0x16, 0xe0, 0xfe, 0x49, 0xf4, 0x00, 0x4b, 0x73, - 0xc6, 0x5a, 0xfe, 0x01, 0xec, 0xfe, 0x27, 0x01, 0xf1, 0x01, 0x0b, 0x3f, 0x05, 0xfe, 0xe3, 0x00, - 0xfe, 0x20, 0x13, 0x1f, 0xfe, 0xd6, 0x14, 0x2d, 0x16, 0xf3, 0x01, 0x4c, 0x21, 0xf3, 0x05, 0x06, - 0x40, 0x0a, 0x41, 0x06, 0x38, 0x03, 0x0f, 0x54, 0x12, 0x8a, 0xfe, 0x43, 0x58, 0x01, 0x15, 0x05, - 0x10, 0xfe, 0x1e, 0x12, 0x48, 0xe7, 0x8e, 0x01, 0x2c, 0xfe, 0x90, 0x4d, 0xde, 0x10, 0xfe, 0xc5, - 0x59, 0x01, 0x2c, 0xfe, 0x8d, 0x56, 0xb6, 0x48, 0x03, 0x48, 0x31, 0x8a, 0x01, 0x15, 0x48, 0x8e, - 0x01, 0x2c, 0xe2, 0x10, 0xde, 0x10, 0x31, 0x54, 0x72, 0x1c, 0x84, 0x0e, 0x56, 0x01, 0xab, 0x03, - 0x0f, 0x54, 0x12, 0x8a, 0xfe, 0xc3, 0x58, 0x01, 0x15, 0x05, 0x10, 0xfe, 0x1a, 0x12, 0x48, 0xe7, - 0x8e, 0x01, 0x2c, 0xe2, 0x10, 0xfe, 0x80, 0x4d, 0xfe, 0xc5, 0x59, 0x01, 0x2c, 0x48, 0x03, 0x48, - 0x31, 0x54, 0x01, 0x15, 0x48, 0x8e, 0x01, 0x2c, 0xe2, 0x10, 0xde, 0x10, 0x31, 0x54, 0x72, 0x1c, - 0x84, 0x0e, 0x56, 0x01, 0xab, 0x03, 0x0f, 0x54, 0x12, 0x8a, 0xfe, 0x43, 0x58, 0x01, 0x15, 0xfe, - 0x42, 0x48, 0x8e, 0x01, 0x2c, 0xfe, 0xc0, 0x5a, 0xb0, 0xfe, 0x00, 0xcd, 0xfe, 0x01, 0xcc, 0xfe, - 0x4a, 0x46, 0xdc, 0x93, 0x7d, 0x05, 0x10, 0xfe, 0x2e, 0x13, 0x69, 0x54, 0xfe, 0x4d, 0xf4, 0x1c, - 0xfe, 0x1c, 0x13, 0x0e, 0x56, 0x01, 0x8b, 0xaa, 0xfe, 0x40, 0x4c, 0xfe, 0xc5, 0x58, 0x01, 0x2c, - 0xfe, 0x00, 0x07, 0x7d, 0x05, 0x10, 0x84, 0x69, 0x8a, 0xfe, 0x05, 0x57, 0xfe, 0x08, 0x10, 0xfe, - 0x45, 0x58, 0x01, 0x2c, 0xfe, 0x8d, 0x56, 0xb6, 0xfe, 0x80, 0x4c, 0xfe, 0x05, 0x17, 0x03, 0x09, - 0x10, 0x6f, 0x67, 0xfe, 0x60, 0x01, 0xfe, 0x18, 0xdf, 0xfe, 0x19, 0xde, 0xfe, 0x24, 0x1c, 0xdb, - 0x37, 0x94, 0xfe, 0x1a, 0x16, 0x01, 0xfe, 0x28, 0x17, 0xfe, 0x0c, 0x13, 0x87, 0x37, 0x67, 0xfe, - 0x2c, 0x01, 0xfe, 0x2f, 0x19, 0x03, 0xba, 0x27, 0xfe, 0x0a, 0x16, 0xfe, 0xe2, 0x10, 0x09, 0x10, - 0x6f, 0x04, 0xfe, 0x64, 0x01, 0xfe, 0x00, 0xf4, 0x1a, 0xfe, 0x18, 0x58, 0x04, 0xfe, 0x66, 0x01, - 0xfe, 0x19, 0x58, 0x87, 0x1a, 0xfe, 0x3c, 0x90, 0xfe, 0x30, 0xf4, 0x06, 0xfe, 0x3c, 0x50, 0x67, - 0xfe, 0x38, 0x00, 0xfe, 0x0f, 0x79, 0xfe, 0x1c, 0xf7, 0x1a, 0x94, 0xfe, 0x64, 0x16, 0xfe, 0xbe, - 0x14, 0x35, 0x03, 0xba, 0x27, 0xfe, 0x3c, 0x16, 0xfe, 0xa4, 0x10, 0x09, 0x10, 0x6f, 0xb6, 0xfe, - 0x18, 0xdf, 0xfe, 0x19, 0xdf, 0xdb, 0x42, 0x94, 0xfe, 0x86, 0x16, 0xfe, 0x9c, 0x14, 0xfe, 0x18, - 0x13, 0x87, 0x42, 0x67, 0x1e, 0xfe, 0xaf, 0x19, 0xfe, 0x98, 0xe7, 0x00, 0xa2, 0x07, 0xfe, 0x7f, - 0x00, 0xfe, 0x05, 0x40, 0x03, 0xba, 0x27, 0xfe, 0x7a, 0x16, 0xfe, 0x6c, 0x10, 0x09, 0x10, 0x6f, - 0xfe, 0x30, 0xbc, 0xfe, 0xb2, 0xbc, 0x87, 0xd9, 0x67, 0x1e, 0xfe, 0x0f, 0x79, 0xfe, 0x1c, 0xf7, - 0xd9, 0x94, 0xfe, 0xc6, 0x16, 0xfe, 0x5c, 0x14, 0x35, 0x03, 0xba, 0x27, 0xfe, 0xb2, 0x16, 0xfe, - 0x42, 0x10, 0xfe, 0x02, 0xf6, 0x10, 0x6f, 0xfe, 0x18, 0xfe, 0x5d, 0xfe, 0x19, 0xfe, 0x5e, 0xc8, - 0xdb, 0x45, 0x94, 0xfe, 0xec, 0x16, 0xfe, 0x36, 0x14, 0xfe, 0x1c, 0x13, 0x87, 0x45, 0x4e, 0xfe, - 0x83, 0x58, 0xfe, 0xaf, 0x19, 0xfe, 0x80, 0xe7, 0x10, 0xfe, 0x81, 0xe7, 0x10, 0x11, 0xfe, 0xdd, - 0x00, 0x64, 0x2f, 0x03, 0x64, 0x2f, 0xfe, 0x12, 0x45, 0x27, 0xfe, 0xdc, 0x16, 0x17, 0x06, 0x4a, - 0xf4, 0xdd, 0x02, 0x26, 0xfe, 0x39, 0xf0, 0xfe, 0x30, 0x17, 0x2d, 0x03, 0xfe, 0x7e, 0x18, 0x1b, - 0x19, 0x83, 0x08, 0x0d, 0x03, 0x6f, 0x04, 0xdf, 0x1b, 0x06, 0xfe, 0xef, 0x12, 0xfe, 0xe1, 0x10, - 0x1d, 0x0e, 0x1c, 0x01, 0x15, 0x05, 0x10, 0x40, 0x3e, 0xfe, 0x78, 0x14, 0xfe, 0x34, 0x12, 0x50, - 0x86, 0x36, 0x37, 0xbf, 0xfe, 0xe9, 0x13, 0x1d, 0x0e, 0x3d, 0x01, 0x15, 0x05, 0x10, 0x40, 0x3e, - 0xfe, 0x56, 0x14, 0xe1, 0x50, 0x86, 0x36, 0x37, 0xbf, 0xfe, 0xe9, 0x13, 0x09, 0x0c, 0x03, 0xfe, - 0x9c, 0xe7, 0x0c, 0x13, 0xfe, 0x15, 0x00, 0x90, 0x9f, 0x2f, 0x01, 0xea, 0x09, 0x06, 0x03, 0x0a, - 0x41, 0x37, 0x38, 0x08, 0x3d, 0x09, 0x99, 0x01, 0x46, 0x11, 0x47, 0x08, 0x1c, 0x09, 0x43, 0x01, - 0x7b, 0x09, 0x06, 0x03, 0xfe, 0x38, 0x90, 0xfe, 0xba, 0x90, 0x65, 0xf7, 0x31, 0x76, 0xfe, 0x48, - 0x55, 0x35, 0xfe, 0xc9, 0x55, 0x03, 0x21, 0xbe, 0x52, 0x16, 0xbe, 0x03, 0x0e, 0xc0, 0x01, 0x15, - 0xe6, 0x0e, 0x79, 0x01, 0x15, 0xfe, 0x49, 0x44, 0x27, 0xfe, 0x26, 0x18, 0x0e, 0x1c, 0x01, 0x15, - 0x05, 0x10, 0x40, 0x0e, 0x56, 0x01, 0xab, 0x0e, 0x79, 0x01, 0x15, 0x52, 0x7d, 0x03, 0xfe, 0x40, - 0x5e, 0xfe, 0xe2, 0x08, 0xfe, 0xc0, 0x4c, 0x21, 0x3c, 0x05, 0x10, 0xfe, 0x52, 0x12, 0x3e, 0x05, - 0x00, 0xfe, 0x18, 0x12, 0xfe, 0xe1, 0x18, 0xfe, 0x19, 0xf4, 0xfe, 0x7f, 0x00, 0xd4, 0xfe, 0xe2, - 0x08, 0x52, 0x3e, 0x3f, 0x05, 0x76, 0xa5, 0xfe, 0x82, 0x48, 0xfe, 0x01, 0x80, 0xfe, 0xd7, 0x10, - 0xfe, 0xc4, 0x48, 0x08, 0x2a, 0x09, 0x3c, 0xfe, 0x40, 0x5f, 0x1d, 0x01, 0x46, 0x11, 0xfe, 0xdd, - 0x00, 0xfe, 0x14, 0x46, 0x08, 0x2a, 0x09, 0x3c, 0x01, 0x46, 0x11, 0xfe, 0xdd, 0x00, 0xfe, 0x40, - 0x4a, 0x6a, 0xfe, 0x06, 0x17, 0xfe, 0x01, 0x07, 0xfe, 0x82, 0x48, 0xfe, 0x04, 0x17, 0x03, 0xeb, - 0x19, 0x74, 0xfe, 0xae, 0x18, 0x04, 0xfe, 0x90, 0x00, 0xfe, 0x3a, 0x45, 0xfe, 0x2c, 0x10, 0xeb, - 0xcc, 0x74, 0xfe, 0xc0, 0x18, 0x04, 0xfe, 0x92, 0x00, 0xc7, 0x1e, 0xd8, 0xeb, 0xfe, 0x0b, 0x00, - 0x74, 0xfe, 0xd2, 0x18, 0x04, 0xfe, 0x94, 0x00, 0xc7, 0x1a, 0xfe, 0x08, 0x10, 0x04, 0xfe, 0x96, - 0x00, 0xc7, 0x85, 0xfe, 0x4e, 0x45, 0xd1, 0xfe, 0x0a, 0x45, 0xff, 0x04, 0x68, 0x54, 0xfe, 0xf1, - 0x10, 0x1b, 0x6c, 0x03, 0x05, 0x80, 0xfe, 0x5a, 0xf0, 0xfe, 0xfe, 0x18, 0x20, 0xfe, 0x09, 0x00, - 0xfe, 0x34, 0x10, 0x05, 0x1e, 0xfe, 0x5a, 0xf0, 0xfe, 0x0c, 0x19, 0x20, 0xcd, 0xfe, 0x26, 0x10, - 0x05, 0x19, 0x83, 0x20, 0x85, 0xd8, 0x05, 0x0c, 0x83, 0x20, 0x88, 0xfe, 0x0e, 0x10, 0x05, 0x06, - 0x83, 0x20, 0x55, 0xc6, 0xaf, 0x03, 0x17, 0xfe, 0x09, 0x00, 0x01, 0x44, 0x2e, 0xfe, 0x3c, 0x19, - 0x04, 0x6e, 0xb0, 0x03, 0x22, 0xfe, 0x54, 0x19, 0xfe, 0x14, 0xf0, 0x0b, 0x2e, 0xfe, 0x50, 0x19, - 0x03, 0xff, 0x15, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf2, 0x00, 0x16, 0x00, 0xf0, 0x00, 0xfc, 0x01, 0x00, 0x48, 0xe4, 0x58, 0x18, + 0x03, 0xf6, 0x18, 0xe4, 0x02, 0x00, 0x18, 0x80, 0x00, 0xfa, 0xff, 0xff, 0x9e, 0xe7, 0xff, 0x00, + 0xcc, 0x0d, 0x82, 0xe7, 0x00, 0xf6, 0x00, 0xea, 0x09, 0xe7, 0x01, 0xf6, 0x08, 0x00, 0x01, 0xe6, + 0x55, 0xf0, 0x01, 0xfa, 0x03, 0x00, 0x18, 0xf4, 0x04, 0x00, 0x00, 0xec, 0x85, 0xf0, 0xbc, 0x00, + 0xd5, 0xf0, 0x70, 0x0c, 0x38, 0x54, 0x00, 0xe6, 0x1e, 0xf0, 0x86, 0xf0, 0xb4, 0x00, 0x98, 0x57, + 0xd0, 0x01, 0x0c, 0x1c, 0x3e, 0x1c, 0x10, 0x00, 0xbb, 0x00, 0x44, 0x18, 0x02, 0x80, 0x32, 0xf0, + 0x01, 0xfc, 0x6a, 0x0c, 0x64, 0x12, 0x02, 0x13, 0x18, 0x40, 0x00, 0x57, 0x3c, 0x00, 0xc0, 0x00, + 0x6c, 0x01, 0x6e, 0x01, 0x04, 0x12, 0x00, 0x80, 0x03, 0xe6, 0x01, 0xea, 0xb6, 0x00, 0x01, 0x01, + 0x3e, 0x01, 0x78, 0x0f, 0xc0, 0x0f, 0xb9, 0x54, 0x3e, 0x57, 0x03, 0x58, 0x1b, 0x80, 0x30, 0xe4, + 0x4b, 0xe4, 0x0d, 0x00, 0x20, 0x00, 0x32, 0x00, 0x3e, 0x00, 0x80, 0x00, 0x24, 0x01, 0x3c, 0x01, + 0x68, 0x01, 0x6a, 0x01, 0x70, 0x01, 0x72, 0x01, 0x74, 0x01, 0x76, 0x01, 0x78, 0x01, 0x62, 0x0a, + 0x74, 0x0c, 0x08, 0x12, 0x06, 0x13, 0x4c, 0x1c, 0x02, 0x4a, 0xbb, 0x55, 0x3c, 0x56, 0x02, 0xee, + 0x5b, 0xf0, 0xb1, 0xf0, 0x03, 0xf7, 0x06, 0xf7, 0x03, 0xfc, 0x05, 0x00, 0x0c, 0x00, 0x0f, 0x00, + 0x40, 0x00, 0xbe, 0x00, 0x00, 0x01, 0x94, 0x08, 0xca, 0x0f, 0x02, 0x15, 0x32, 0x1c, 0x38, 0x1c, + 0x4e, 0x1c, 0x10, 0x44, 0x02, 0x48, 0x00, 0x4c, 0x04, 0x80, 0x04, 0xea, 0x5d, 0xf0, 0x04, 0xf6, + 0x02, 0xfc, 0x34, 0x00, 0x36, 0x00, 0x98, 0x00, 0xcc, 0x00, 0x20, 0x01, 0x4e, 0x01, 0x32, 0x0b, + 0xc2, 0x0d, 0xcc, 0x0f, 0x0c, 0x10, 0x0a, 0x12, 0x04, 0x13, 0x30, 0x1c, 0x00, 0x4e, 0xbd, 0x56, + 0x00, 0xdc, 0x4a, 0xe4, 0x05, 0xf0, 0x09, 0xf0, 0x59, 0xf0, 0xa7, 0xf0, 0xb8, 0xf0, 0x0e, 0xf7, + 0x06, 0x00, 0x19, 0x00, 0x33, 0x00, 0xa4, 0x00, 0xb5, 0x00, 0xba, 0x00, 0xd0, 0x00, 0xe1, 0x00, + 0xe7, 0x00, 0x3a, 0x0a, 0xb8, 0x0d, 0x02, 0x10, 0x04, 0x10, 0x0a, 0x10, 0xce, 0x12, 0xde, 0x12, + 0x0a, 0x13, 0x12, 0x13, 0x20, 0x13, 0xae, 0x14, 0xb2, 0x14, 0x4a, 0x16, 0x34, 0x1c, 0x36, 0x1c, + 0x08, 0x44, 0x38, 0x44, 0x91, 0x44, 0x48, 0x46, 0x01, 0x48, 0x68, 0x54, 0x83, 0x55, 0xb0, 0x57, + 0x01, 0x58, 0x83, 0x59, 0x06, 0x83, 0x05, 0xe6, 0x0b, 0xf0, 0x0c, 0xf0, 0x5c, 0xf0, 0x4b, 0xf4, + 0x04, 0xf8, 0x05, 0xf8, 0x02, 0xfa, 0x03, 0xfa, 0x04, 0xfc, 0x05, 0xfc, 0x07, 0x00, 0x0a, 0x00, + 0x1c, 0x00, 0x9b, 0x00, 0x9e, 0x00, 0xa8, 0x00, 0xaa, 0x00, 0xb9, 0x00, 0xe0, 0x00, 0x22, 0x01, + 0x26, 0x01, 0x79, 0x01, 0xc0, 0x01, 0xc2, 0x01, 0x70, 0x02, 0x56, 0x03, 0xd2, 0x03, 0xce, 0x04, + 0xcc, 0x07, 0x68, 0x08, 0x69, 0x08, 0x9e, 0x08, 0xe9, 0x09, 0xea, 0x0a, 0xde, 0x0d, 0xd4, 0x0f, + 0x00, 0x10, 0x0e, 0x10, 0x1a, 0x10, 0xed, 0x10, 0xf1, 0x10, 0x06, 0x12, 0x68, 0x12, 0xf0, 0x12, + 0x16, 0x13, 0x1e, 0x13, 0xe0, 0x13, 0x74, 0x14, 0x28, 0x15, 0x60, 0x17, 0x6c, 0x17, 0x6b, 0x18, + 0x12, 0x1c, 0x20, 0x1c, 0x46, 0x1c, 0x9c, 0x32, 0x00, 0x40, 0x0a, 0x45, 0x0e, 0x47, 0x48, 0x47, + 0x41, 0x48, 0x89, 0x48, 0x80, 0x4c, 0x00, 0x54, 0x44, 0x55, 0xe5, 0x55, 0x14, 0x56, 0x77, 0x57, + 0xbf, 0x57, 0x40, 0x5c, 0x06, 0x80, 0x03, 0xa1, 0x00, 0xcc, 0xfe, 0x9c, 0xf0, 0x28, 0x03, 0xfe, + 0x9a, 0x0c, 0xff, 0x10, 0x00, 0x00, 0xcb, 0xfe, 0x66, 0x18, 0x00, 0xca, 0xfe, 0x80, 0x01, 0xff, + 0x03, 0x00, 0x00, 0xfe, 0x2e, 0x14, 0xfe, 0x08, 0x05, 0xff, 0x38, 0x00, 0x00, 0xfe, 0x57, 0x24, + 0x00, 0xfe, 0x48, 0x00, 0x4d, 0xff, 0x04, 0x00, 0x00, 0x0f, 0xff, 0x09, 0x00, 0x00, 0xff, 0x08, + 0x01, 0x01, 0xff, 0x08, 0xff, 0xff, 0xff, 0x27, 0x00, 0x00, 0xff, 0x10, 0xff, 0xff, 0xff, 0x0f, + 0x00, 0x00, 0xfe, 0x78, 0x56, 0xfe, 0x34, 0x12, 0xff, 0x21, 0x00, 0x00, 0xfe, 0x04, 0xf7, 0xca, + 0x29, 0x63, 0x0a, 0x01, 0xfe, 0x6c, 0x0e, 0xfe, 0x04, 0xf7, 0xca, 0x63, 0x0a, 0x44, 0x29, 0xfe, + 0x3d, 0xf0, 0xfe, 0xf6, 0x01, 0xfe, 0x20, 0xf0, 0xce, 0x04, 0x4f, 0x3a, 0x03, 0xfe, 0xb6, 0x0c, + 0x01, 0xfe, 0x16, 0x0d, 0xfe, 0xe9, 0x12, 0xfe, 0xfc, 0x10, 0xfe, 0x28, 0x1c, 0x04, 0xfe, 0xa6, + 0x00, 0xfe, 0xdf, 0x12, 0x43, 0x19, 0xfe, 0xa6, 0x00, 0xb0, 0xfe, 0x48, 0xf0, 0xfe, 0x7a, 0x02, + 0xfe, 0x49, 0xf0, 0xfe, 0x94, 0x02, 0xfe, 0x4a, 0xf0, 0xfe, 0xb2, 0x02, 0xfe, 0x46, 0xf0, 0xfe, + 0x44, 0x02, 0xfe, 0x47, 0xf0, 0xfe, 0x4a, 0x02, 0xfe, 0x43, 0xf0, 0xfe, 0x38, 0x02, 0xfe, 0x44, + 0xf0, 0xfe, 0x3c, 0x02, 0xfe, 0x45, 0xf0, 0xfe, 0x40, 0x02, 0x15, 0x0a, 0x9c, 0x15, 0x05, 0x19, + 0x93, 0x03, 0x28, 0xfe, 0x00, 0x1c, 0xdc, 0xfe, 0x02, 0x1c, 0xdb, 0xfe, 0x1e, 0x1c, 0xfe, 0xe9, + 0x10, 0x01, 0xfe, 0xbe, 0x16, 0xfe, 0xe7, 0x10, 0xfe, 0x06, 0xfc, 0xc3, 0x08, 0x69, 0x01, 0x9a, + 0x03, 0x28, 0x17, 0x4b, 0x3d, 0x94, 0x01, 0xfe, 0x02, 0x0f, 0x08, 0x69, 0x01, 0x80, 0xfe, 0xbd, + 0x10, 0x08, 0x69, 0x01, 0x80, 0xfe, 0xad, 0x10, 0xfe, 0x16, 0x1c, 0xfe, 0x58, 0x1c, 0x15, 0x05, + 0x19, 0x93, 0x29, 0x24, 0x28, 0xfe, 0x3d, 0xf0, 0xfe, 0xf6, 0x01, 0x20, 0xfe, 0x88, 0x02, 0xfe, + 0x5a, 0x1c, 0xe8, 0xfe, 0x14, 0x1c, 0x17, 0xfe, 0x30, 0x00, 0x3d, 0x94, 0x01, 0xfe, 0xf2, 0x0e, + 0x15, 0x05, 0x19, 0x93, 0x03, 0xcb, 0x1d, 0x1f, 0x06, 0x0f, 0x33, 0xfe, 0x69, 0x10, 0x15, 0x05, + 0x19, 0x93, 0xfe, 0x04, 0xec, 0x1f, 0x5c, 0x3b, 0x13, 0x1f, 0xfe, 0x05, 0xf6, 0xc3, 0x01, 0xfe, + 0xf0, 0x15, 0x0b, 0x47, 0x4a, 0x34, 0x11, 0x2c, 0x44, 0xb2, 0x01, 0xe4, 0x03, 0x28, 0x08, 0x37, + 0x01, 0x10, 0x06, 0x00, 0x5a, 0x01, 0x6d, 0xfe, 0x20, 0x10, 0x08, 0x96, 0x01, 0x10, 0xfe, 0x41, + 0x58, 0x08, 0x37, 0x01, 0x10, 0xfe, 0x49, 0x54, 0x60, 0xfe, 0x00, 0x03, 0x01, 0xe4, 0x03, 0x28, + 0x29, 0x5c, 0xfe, 0x02, 0xe8, 0x26, 0xf8, 0xfe, 0x9e, 0x43, 0xf7, 0xfe, 0x27, 0xf0, 0xfe, 0xdc, + 0x01, 0xfe, 0x07, 0x4b, 0xfe, 0x20, 0xf0, 0xce, 0xfe, 0x40, 0x1c, 0x24, 0xcd, 0xfe, 0x26, 0xf0, + 0xfe, 0x52, 0x03, 0xfe, 0xa0, 0xf0, 0xfe, 0x40, 0x03, 0xfe, 0x11, 0xf0, 0xce, 0xd9, 0xfe, 0x9f, + 0xf0, 0xfe, 0x60, 0x03, 0xea, 0x0e, 0xfe, 0x11, 0x00, 0x03, 0x58, 0x29, 0xfe, 0x48, 0x1c, 0xea, + 0x22, 0x1d, 0x95, 0xa8, 0x13, 0x95, 0x08, 0x37, 0x01, 0x10, 0xa8, 0x73, 0x01, 0xfe, 0x5a, 0x15, + 0x11, 0xc6, 0x24, 0xcd, 0xfe, 0x01, 0xf0, 0xcd, 0xfe, 0x82, 0xf0, 0xfe, 0x86, 0x03, 0xeb, 0x11, + 0xfe, 0xe4, 0x00, 0x61, 0xfe, 0x98, 0x03, 0x24, 0x31, 0x1e, 0xfe, 0xa8, 0x03, 0x01, 0x41, 0xfe, + 0x06, 0xf0, 0xfe, 0xb8, 0x03, 0x8b, 0x7f, 0xfe, 0x0a, 0xf0, 0xfe, 0x5e, 0x06, 0x03, 0x21, 0x04, + 0x69, 0x27, 0x18, 0xfe, 0xda, 0x04, 0x17, 0x66, 0x01, 0x32, 0x8d, 0xfe, 0x5a, 0x02, 0x03, 0xcc, + 0xea, 0x29, 0x63, 0x1a, 0xfe, 0x67, 0x1b, 0xf8, 0xf7, 0xfe, 0x48, 0x1c, 0x6e, 0x01, 0x9e, 0x85, + 0x08, 0x37, 0x01, 0x10, 0x06, 0x00, 0x18, 0xcf, 0x08, 0xc6, 0x01, 0x10, 0x72, 0x5e, 0x57, 0x75, + 0x26, 0x04, 0x69, 0x27, 0xfe, 0x10, 0x12, 0x17, 0x66, 0x01, 0x32, 0x8d, 0xfe, 0x5a, 0x02, 0x03, + 0xcc, 0xb8, 0x7b, 0xb9, 0x7d, 0x24, 0x21, 0x61, 0xfe, 0x30, 0x04, 0x1e, 0xfe, 0x2c, 0x04, 0x64, + 0xfe, 0xa0, 0x00, 0xfe, 0x9b, 0x57, 0xfe, 0x46, 0x12, 0x2a, 0xff, 0x02, 0x00, 0x10, 0x01, 0x07, + 0x1e, 0xfe, 0xc4, 0x04, 0x2a, 0x01, 0x07, 0x1e, 0x21, 0x2f, 0x2d, 0xd1, 0xfe, 0x4c, 0x44, 0xfe, + 0x3c, 0x12, 0x5e, 0xfe, 0x44, 0x48, 0x12, 0x49, 0xfe, 0x4c, 0x54, 0x60, 0xcf, 0x5c, 0x75, 0x26, + 0xfa, 0xef, 0xfe, 0x52, 0x13, 0x2e, 0x06, 0x7c, 0xfe, 0x4a, 0x13, 0xfe, 0x18, 0x10, 0x12, 0x49, + 0xfe, 0x4c, 0x54, 0x60, 0xcf, 0xfa, 0xef, 0xfe, 0x38, 0x13, 0x2e, 0x06, 0x7c, 0xfe, 0x30, 0x13, + 0x0b, 0x09, 0x2b, 0xfe, 0x1c, 0x12, 0x17, 0x90, 0x0b, 0x09, 0x05, 0x3a, 0x17, 0x49, 0x01, 0x32, + 0x8d, 0xfe, 0x52, 0x0c, 0x03, 0x21, 0x2a, 0x11, 0xfe, 0xe6, 0x00, 0xfe, 0x1c, 0x90, 0xf9, 0x02, + 0x17, 0x90, 0x01, 0x32, 0x03, 0x28, 0xfe, 0x42, 0x5b, 0x63, 0x1a, 0xfe, 0x46, 0x59, 0xf8, 0xf7, + 0xfe, 0x87, 0x80, 0xfe, 0x31, 0xe4, 0x4d, 0x0b, 0x09, 0x0a, 0xfe, 0x78, 0x13, 0xfe, 0x20, 0x80, + 0x06, 0x1a, 0xfe, 0x70, 0x12, 0x46, 0x09, 0x05, 0xfe, 0x60, 0x13, 0x04, 0xfe, 0xa2, 0x00, 0x27, + 0x18, 0xfe, 0x64, 0x05, 0xfe, 0x31, 0xe4, 0x68, 0x46, 0x09, 0x0a, 0xfe, 0x4a, 0x13, 0x04, 0xfe, + 0xa0, 0x00, 0x27, 0xfe, 0x42, 0x12, 0x5b, 0x01, 0x07, 0x24, 0x31, 0xf1, 0x01, 0x07, 0x25, 0xfe, + 0x7c, 0x05, 0x11, 0xfe, 0xe3, 0x00, 0x22, 0x46, 0xfe, 0x4a, 0xf0, 0xfe, 0x4e, 0x05, 0xfe, 0x49, + 0xf0, 0xfe, 0x48, 0x05, 0x82, 0x23, 0xfe, 0x21, 0x00, 0x9d, 0x23, 0xfe, 0x22, 0x00, 0x9c, 0x23, + 0x4a, 0xfe, 0x09, 0x48, 0x01, 0x07, 0x25, 0xfe, 0x7c, 0x05, 0xfe, 0xe2, 0x08, 0x46, 0x09, 0xc0, + 0x3a, 0x01, 0x9f, 0x23, 0x05, 0x13, 0xc8, 0x3d, 0xfe, 0x27, 0x01, 0x0b, 0x09, 0x2b, 0xfe, 0x22, + 0x12, 0x43, 0x01, 0xa4, 0x17, 0x90, 0x0b, 0x09, 0x05, 0x3a, 0x17, 0x49, 0x01, 0x32, 0x8d, 0xfe, + 0x52, 0x0c, 0x03, 0x21, 0x04, 0xfe, 0x9c, 0x00, 0x27, 0xfe, 0x3e, 0x12, 0x04, 0x4e, 0x27, 0xfe, + 0x36, 0x13, 0x43, 0x01, 0xa4, 0x25, 0xfe, 0xec, 0x05, 0x08, 0x05, 0x46, 0x09, 0x16, 0xfe, 0x02, + 0x12, 0x5d, 0x01, 0xfe, 0x48, 0x14, 0x1e, 0xfe, 0xe2, 0x05, 0x11, 0x97, 0x01, 0x41, 0x11, 0xfe, + 0xe5, 0x00, 0x04, 0x4e, 0xaf, 0x0c, 0x4e, 0x04, 0xc2, 0x27, 0xfe, 0x62, 0x12, 0x04, 0x3e, 0x27, + 0xfe, 0x5a, 0x13, 0x01, 0xfe, 0xae, 0x17, 0x01, 0xfe, 0x00, 0x18, 0xfe, 0x43, 0x48, 0xb3, 0x16, + 0x12, 0x6a, 0xff, 0x02, 0x00, 0x57, 0x45, 0x88, 0x1b, 0x3b, 0x84, 0xb3, 0x67, 0x43, 0x01, 0xa4, + 0x25, 0xfe, 0x56, 0x06, 0x46, 0x09, 0x1c, 0xdd, 0x87, 0x08, 0x4b, 0x01, 0xfe, 0x76, 0x14, 0x1e, + 0xfe, 0x4c, 0x06, 0x11, 0x97, 0x01, 0x41, 0x11, 0xfe, 0xe5, 0x00, 0x04, 0x3e, 0xaf, 0x0c, 0x3e, + 0x15, 0x05, 0x01, 0xa4, 0xeb, 0x70, 0x6e, 0x01, 0x9e, 0x85, 0x11, 0xfe, 0xe2, 0x00, 0x01, 0x07, + 0x24, 0x31, 0xfe, 0x0a, 0xf0, 0xfe, 0x8a, 0x06, 0x8a, 0xfe, 0x40, 0x07, 0xfe, 0x06, 0xf0, 0xfe, + 0x48, 0x07, 0x8b, 0x7f, 0x03, 0x21, 0x0b, 0x09, 0x0a, 0xfe, 0x2e, 0x12, 0x14, 0x1a, 0x01, 0x07, + 0x14, 0x00, 0x01, 0x07, 0x14, 0x00, 0x01, 0x07, 0x14, 0x00, 0x01, 0x07, 0xfe, 0x99, 0xa4, 0x01, + 0x07, 0x14, 0x00, 0x03, 0xfe, 0x16, 0x08, 0x74, 0x09, 0x1c, 0xfe, 0x38, 0x12, 0x0b, 0x09, 0x1c, + 0xfe, 0x30, 0x13, 0x14, 0xfe, 0x1b, 0x00, 0x01, 0x07, 0x14, 0x00, 0x01, 0x07, 0x14, 0x00, 0x01, + 0x07, 0x14, 0x00, 0x01, 0x07, 0x14, 0x05, 0x01, 0x07, 0x14, 0x00, 0x03, 0xd5, 0x62, 0x4a, 0xfe, + 0x3a, 0x55, 0x5d, 0xfe, 0x9a, 0x81, 0x48, 0x2b, 0xb6, 0xfe, 0x16, 0x07, 0x08, 0x2b, 0xfe, 0x09, + 0x6f, 0xed, 0xfe, 0xca, 0x45, 0xfe, 0x32, 0x12, 0x89, 0x66, 0x84, 0x62, 0x79, 0x01, 0x07, 0x24, + 0x31, 0xfe, 0x0a, 0xf0, 0xfe, 0x16, 0x07, 0x8b, 0x7f, 0x8a, 0xfe, 0x40, 0x07, 0x03, 0x21, 0x01, + 0x41, 0x03, 0xfe, 0x6e, 0x06, 0x14, 0x16, 0x03, 0xfe, 0x6e, 0x06, 0xfe, 0x9c, 0xf7, 0xd0, 0xfe, + 0x2c, 0x90, 0xfe, 0xae, 0x90, 0x76, 0xfe, 0xae, 0x07, 0x0c, 0x52, 0x19, 0x53, 0x0b, 0x47, 0x68, + 0x34, 0x1d, 0x1f, 0x06, 0x0f, 0xfe, 0x0e, 0x12, 0x72, 0xfe, 0x80, 0x80, 0x3d, 0x1f, 0x5f, 0x26, + 0xfe, 0x06, 0x10, 0xfe, 0x83, 0xe7, 0xfe, 0x0e, 0x00, 0x9d, 0xfe, 0x03, 0x40, 0x0b, 0x47, 0x4d, + 0x34, 0x01, 0xa5, 0xa9, 0xfe, 0x1f, 0x40, 0x13, 0x56, 0x01, 0xdf, 0xfe, 0x08, 0x50, 0xfe, 0x8a, + 0x50, 0xfe, 0x44, 0x51, 0xfe, 0xc6, 0x51, 0x82, 0xfe, 0x08, 0x90, 0xfe, 0x8a, 0x90, 0x0c, 0x50, + 0x19, 0x51, 0xfe, 0x0c, 0x90, 0xfe, 0x8e, 0x90, 0xfe, 0x40, 0x50, 0xfe, 0xc2, 0x50, 0x0c, 0x38, + 0x19, 0x39, 0xfe, 0x4a, 0x10, 0x0b, 0x09, 0x68, 0xfe, 0x2a, 0x12, 0xfe, 0x2c, 0x90, 0xfe, 0xae, + 0x90, 0x0c, 0x52, 0x19, 0x53, 0x0b, 0x09, 0x4d, 0x84, 0x01, 0xa5, 0xfe, 0x1f, 0x80, 0x13, 0x56, + 0xfe, 0x44, 0x90, 0xfe, 0xc6, 0x90, 0x0c, 0x54, 0x19, 0x55, 0xfe, 0x08, 0x90, 0xfe, 0x8a, 0x90, + 0x0c, 0x50, 0x19, 0x51, 0xfe, 0x40, 0x90, 0xfe, 0xc2, 0x90, 0x0c, 0x38, 0x19, 0x39, 0x0c, 0x36, + 0x19, 0x4c, 0x0b, 0x47, 0x16, 0x34, 0x29, 0x12, 0x65, 0x61, 0xfe, 0x2c, 0x08, 0xfe, 0x9e, 0xf0, + 0xfe, 0x40, 0x08, 0xac, 0x18, 0x31, 0x29, 0x71, 0xdb, 0xb4, 0xfe, 0x64, 0x08, 0xb5, 0xfe, 0x82, + 0x08, 0x8a, 0xfe, 0x58, 0x08, 0xfe, 0x06, 0xf0, 0xfe, 0x5e, 0x08, 0x8b, 0x7f, 0x03, 0x21, 0x01, + 0x41, 0xfe, 0xc9, 0x10, 0x14, 0x16, 0xfe, 0xc9, 0x10, 0x74, 0x09, 0x05, 0xfe, 0x10, 0x12, 0x74, + 0x09, 0x0a, 0x59, 0x0b, 0x09, 0x0a, 0xde, 0xfe, 0x2e, 0x1c, 0x03, 0xfe, 0x08, 0x0a, 0x74, 0x09, + 0x05, 0x59, 0x74, 0x09, 0x0a, 0xfe, 0x52, 0x12, 0xfe, 0x2c, 0x1c, 0xfe, 0xaa, 0xf0, 0xfe, 0x02, + 0x09, 0xfe, 0xac, 0xf0, 0xfe, 0xa2, 0x08, 0xfe, 0x8a, 0x10, 0xa6, 0xfe, 0xf3, 0x10, 0xfe, 0xad, + 0xf0, 0xfe, 0xae, 0x08, 0x03, 0xfe, 0x08, 0x0a, 0xa7, 0xfe, 0xe7, 0x10, 0xfe, 0x2b, 0xf0, 0x99, + 0xe7, 0x1b, 0xfe, 0x00, 0xfe, 0xfe, 0x1c, 0x12, 0xb0, 0xfe, 0xd2, 0xf0, 0x99, 0xfe, 0x76, 0x18, + 0x1b, 0x1a, 0x18, 0x99, 0x04, 0xc7, 0x1b, 0x05, 0x18, 0x99, 0xb4, 0x6b, 0xb5, 0x6b, 0xa6, 0xa7, + 0xfe, 0xb1, 0x10, 0x6e, 0x5b, 0x2a, 0x17, 0x90, 0x01, 0x32, 0x0e, 0xfe, 0x35, 0x00, 0xfe, 0x01, + 0xf0, 0x58, 0x0e, 0x7a, 0x03, 0x58, 0xfe, 0x74, 0x18, 0x1b, 0xfe, 0x00, 0xf8, 0x18, 0x6b, 0x63, + 0x1c, 0x01, 0xfe, 0x16, 0x0d, 0x3a, 0x01, 0xe4, 0x1d, 0x26, 0x72, 0x63, 0x1a, 0x03, 0x6b, 0xfe, + 0x98, 0x80, 0xfe, 0x19, 0xe4, 0x0a, 0x20, 0xfe, 0xea, 0x09, 0x0b, 0x09, 0x68, 0xfe, 0x82, 0x12, + 0x0b, 0x09, 0x16, 0xfe, 0x66, 0x13, 0x1d, 0x56, 0xa8, 0xfb, 0xfe, 0x83, 0x80, 0xfe, 0xc8, 0x44, + 0xfe, 0x2e, 0x13, 0xfe, 0x04, 0x91, 0xfe, 0x86, 0x91, 0x5f, 0x26, 0xfe, 0x40, 0x59, 0xfe, 0xc1, + 0x59, 0x76, 0xd3, 0x04, 0x52, 0x30, 0x53, 0x0c, 0x79, 0x19, 0x7a, 0xba, 0x52, 0xbb, 0x53, 0x01, + 0xa5, 0xa9, 0x5f, 0x26, 0x13, 0x56, 0xbc, 0x36, 0xbd, 0x4c, 0x78, 0x54, 0x64, 0x55, 0xf4, 0xf5, + 0xfe, 0x04, 0xfa, 0x36, 0xfe, 0x05, 0xfa, 0x4c, 0x01, 0xdf, 0xfe, 0x36, 0x10, 0x22, 0x0c, 0x79, + 0x0c, 0x7a, 0x78, 0x54, 0x64, 0x55, 0xfe, 0x12, 0x10, 0x0b, 0x09, 0x16, 0x18, 0xd3, 0x78, 0x38, + 0x64, 0x39, 0x0b, 0x09, 0xfe, 0xf7, 0x00, 0x34, 0x04, 0x50, 0x30, 0x51, 0xfe, 0x10, 0x58, 0xfe, + 0x91, 0x58, 0xfe, 0x14, 0x59, 0xfe, 0x95, 0x59, 0x03, 0x6b, 0x0b, 0x09, 0x16, 0x18, 0xd3, 0x0b, + 0x09, 0xfe, 0xf7, 0x00, 0x34, 0xfe, 0x3a, 0x55, 0xfe, 0x19, 0x81, 0x5d, 0xfe, 0x10, 0x90, 0xfe, + 0x92, 0x90, 0xfe, 0xd7, 0x10, 0x2e, 0x06, 0x98, 0x18, 0xfe, 0xaa, 0x08, 0x11, 0x98, 0xfe, 0x98, + 0x80, 0xfe, 0x19, 0xe4, 0x0a, 0xfe, 0x14, 0x13, 0x04, 0x38, 0x30, 0x39, 0x76, 0xfe, 0xaa, 0x08, + 0xfe, 0x0c, 0x58, 0xfe, 0x8d, 0x58, 0x03, 0x6b, 0x22, 0x43, 0xfe, 0x19, 0x80, 0xdc, 0x0b, 0x09, + 0x0a, 0xfe, 0x1a, 0x12, 0xfe, 0x6c, 0x19, 0xfe, 0x19, 0x41, 0xe7, 0xb0, 0xfe, 0xd1, 0xf0, 0xd5, + 0x17, 0x65, 0x01, 0x32, 0x0e, 0xfe, 0x44, 0x00, 0xfe, 0x8e, 0x10, 0xfe, 0x6c, 0x19, 0xba, 0x38, + 0xfe, 0xed, 0x19, 0xbb, 0x39, 0xfe, 0x0c, 0x51, 0xfe, 0x8e, 0x51, 0xe7, 0x1b, 0xfe, 0x00, 0xff, + 0x33, 0xfe, 0x74, 0x10, 0xb0, 0xfe, 0xd2, 0xf0, 0xfe, 0x96, 0x0a, 0xfe, 0x76, 0x18, 0x1b, 0x1a, + 0x83, 0x04, 0xc7, 0x1b, 0x05, 0xfe, 0x08, 0x13, 0x0e, 0xfe, 0x16, 0x00, 0x03, 0x58, 0xfe, 0xd1, + 0xf0, 0xfe, 0xa8, 0x0a, 0x17, 0x65, 0x01, 0x32, 0x0e, 0xfe, 0x17, 0x00, 0xfe, 0x42, 0x10, 0xfe, + 0xce, 0xf0, 0xfe, 0xae, 0x0a, 0xfe, 0x3c, 0x10, 0xfe, 0xcd, 0xf0, 0xfe, 0xba, 0x0a, 0x0e, 0xfe, + 0x22, 0x00, 0x03, 0x58, 0xfe, 0xcb, 0xf0, 0xfe, 0xc6, 0x0a, 0x0e, 0xfe, 0x24, 0x00, 0x03, 0x58, + 0xfe, 0xd0, 0xf0, 0xfe, 0xd0, 0x0a, 0x0e, 0x91, 0xda, 0xfe, 0xcf, 0xf0, 0xfe, 0xda, 0x0a, 0x0e, + 0x4a, 0xfe, 0x10, 0x10, 0xfe, 0xcc, 0xf0, 0xd5, 0xfe, 0x84, 0x80, 0xfe, 0x19, 0xe4, 0x16, 0x3a, + 0x0e, 0xfe, 0x12, 0x00, 0x29, 0x12, 0x65, 0x61, 0xfe, 0xf0, 0x0a, 0xfe, 0x9e, 0xf0, 0xfe, 0x04, + 0x0b, 0xac, 0x18, 0x31, 0x29, 0x71, 0xdb, 0xb4, 0x21, 0xb5, 0x21, 0x29, 0xeb, 0x61, 0xfe, 0x10, + 0x0b, 0x24, 0x31, 0x8a, 0xfe, 0x2c, 0x0b, 0x8b, 0x7f, 0xb4, 0xd0, 0xb5, 0xd0, 0x03, 0x21, 0x01, + 0x41, 0xfe, 0xdb, 0x10, 0x11, 0xfe, 0xe8, 0x00, 0xa6, 0xa7, 0x6e, 0xb8, 0x7b, 0xb9, 0x7d, 0xfe, + 0x89, 0xf0, 0x21, 0x2f, 0x2d, 0xd4, 0xb8, 0x7b, 0xb9, 0x7d, 0x01, 0x07, 0x1e, 0x21, 0x2f, 0x2d, + 0xd2, 0xac, 0x59, 0x0e, 0xfe, 0x42, 0x00, 0x03, 0x58, 0x77, 0x05, 0xfe, 0x81, 0x49, 0xfe, 0xa2, + 0x12, 0x0b, 0x09, 0x0a, 0xfe, 0x44, 0x13, 0x0e, 0x00, 0x48, 0x0a, 0xfe, 0x54, 0x12, 0x48, 0xfe, + 0x28, 0x00, 0x20, 0xfe, 0x88, 0x0c, 0x08, 0x37, 0x01, 0x10, 0x06, 0x00, 0x5a, 0x3c, 0xfe, 0x28, + 0x00, 0xfe, 0xe2, 0x10, 0x01, 0xe5, 0x01, 0xe6, 0x08, 0x96, 0x01, 0xfe, 0xd6, 0x0d, 0x57, 0x11, + 0x2c, 0x01, 0x6d, 0x03, 0x28, 0x0e, 0xfe, 0x44, 0x00, 0x48, 0x0a, 0xdd, 0x3c, 0x0a, 0xfe, 0xb4, + 0x10, 0x01, 0x9f, 0x3c, 0x0a, 0xfe, 0xaa, 0x10, 0x01, 0x9f, 0xfe, 0x19, 0x82, 0xfe, 0x34, 0x46, + 0xa0, 0x3c, 0x0a, 0x0e, 0xfe, 0x43, 0x00, 0xfe, 0x96, 0x10, 0x0b, 0x47, 0x0a, 0x34, 0x01, 0xe5, + 0x01, 0xe6, 0x57, 0x11, 0x2c, 0x01, 0x6d, 0x63, 0x0a, 0x57, 0x44, 0xb2, 0x03, 0xfe, 0x26, 0x03, + 0x0b, 0x09, 0x0a, 0x83, 0x3c, 0x0a, 0x0e, 0x00, 0xfe, 0x5c, 0x10, 0x74, 0x09, 0x1c, 0xfe, 0x58, + 0x12, 0x0b, 0x09, 0x1c, 0xfe, 0x50, 0x13, 0xfe, 0x1c, 0x1c, 0xfe, 0x9d, 0xf0, 0xfe, 0x3e, 0x0c, + 0xfe, 0x1c, 0x1c, 0xfe, 0x9d, 0xf0, 0xfe, 0x44, 0x0c, 0x0b, 0x47, 0x1c, 0x34, 0xfe, 0xa9, 0x10, + 0x0e, 0xfe, 0x15, 0x00, 0xfe, 0x04, 0xe6, 0x0a, 0x5d, 0xfe, 0x2e, 0x10, 0x0e, 0xfe, 0x13, 0x00, + 0xfe, 0x10, 0x10, 0x0e, 0xfe, 0x47, 0x00, 0x9d, 0x0e, 0xfe, 0x41, 0x00, 0x9c, 0x0e, 0xfe, 0x24, + 0x00, 0x85, 0xa6, 0xa7, 0x6e, 0x04, 0x69, 0x27, 0x20, 0xcc, 0x5d, 0xfe, 0x04, 0xe6, 0x1c, 0xfe, + 0x9d, 0x41, 0xfe, 0x1c, 0x42, 0x57, 0x01, 0xd6, 0x03, 0x28, 0xe8, 0x17, 0x0a, 0x3d, 0xc1, 0xe9, + 0x17, 0xfe, 0x31, 0x00, 0x3d, 0x94, 0x01, 0xfe, 0xf2, 0x0e, 0x03, 0xcb, 0x44, 0xfe, 0x06, 0xec, + 0xc5, 0xee, 0x3c, 0x2b, 0xfe, 0xce, 0x45, 0x33, 0x44, 0xfe, 0x06, 0xea, 0xc5, 0xfe, 0x47, 0x4b, + 0x87, 0xfe, 0x75, 0x57, 0x04, 0x4f, 0xfe, 0x98, 0x56, 0xfe, 0x28, 0x12, 0x08, 0x37, 0xfe, 0xec, + 0x14, 0x43, 0xfe, 0x41, 0x58, 0x08, 0x96, 0xfe, 0xe2, 0x14, 0xfe, 0x49, 0x54, 0x8c, 0xfe, 0xfc, + 0x0c, 0x08, 0x40, 0xfe, 0xd6, 0x14, 0xfe, 0x44, 0x48, 0x03, 0xfe, 0x26, 0x03, 0x08, 0x4f, 0xfe, + 0xc0, 0x14, 0xee, 0x3c, 0x2b, 0xfe, 0xce, 0x45, 0x33, 0x44, 0xfe, 0xce, 0x47, 0xfe, 0xbd, 0x13, + 0x03, 0x28, 0x1d, 0x1f, 0x06, 0x0f, 0xfe, 0x70, 0x12, 0x22, 0x13, 0x4b, 0x13, 0x92, 0x1d, 0x2c, + 0x43, 0x3d, 0x2c, 0xac, 0xfe, 0x0c, 0x13, 0xfe, 0xbc, 0xf0, 0xfe, 0x90, 0x0d, 0x12, 0x05, 0x13, + 0x4b, 0x01, 0xfe, 0x80, 0x15, 0x04, 0xfe, 0x38, 0x01, 0x30, 0xfe, 0x3a, 0x01, 0x76, 0xfe, 0x94, + 0x0d, 0x04, 0xfe, 0x38, 0x01, 0x1b, 0xfe, 0xf0, 0xff, 0x0c, 0xfe, 0x60, 0x01, 0x04, 0xfe, 0x3a, + 0x01, 0x0c, 0xfe, 0x62, 0x01, 0x23, 0x05, 0x13, 0x2c, 0xfe, 0x04, 0xec, 0x1f, 0x5c, 0x3b, 0x13, + 0x1f, 0xfe, 0x05, 0xf6, 0xfe, 0x34, 0x01, 0x01, 0xfe, 0xf0, 0x15, 0x11, 0x2c, 0xb2, 0x12, 0x05, + 0x02, 0x22, 0x02, 0x1d, 0x4b, 0xfe, 0xf7, 0x12, 0x1d, 0x92, 0xa8, 0x13, 0x92, 0x06, 0x65, 0xfe, + 0x9b, 0x13, 0xfe, 0x24, 0x1c, 0x17, 0x1a, 0x3d, 0xc1, 0xe9, 0xfe, 0xd9, 0x10, 0xb1, 0xfe, 0x03, + 0xdc, 0xfe, 0x73, 0x57, 0xfe, 0x80, 0x5d, 0x02, 0xb1, 0xfe, 0x03, 0xdc, 0xfe, 0x5b, 0x57, 0xfe, + 0x80, 0x5d, 0x02, 0xfe, 0x03, 0x57, 0xb1, 0x22, 0xfc, 0x02, 0xfe, 0x03, 0x57, 0xb1, 0x73, 0x02, + 0x0b, 0x09, 0x4a, 0xfe, 0x22, 0x13, 0xfe, 0x1c, 0x80, 0x06, 0x05, 0xfe, 0x1a, 0x13, 0xfe, 0x1e, + 0x80, 0xe0, 0xfe, 0x1d, 0x80, 0xa1, 0xfe, 0x0c, 0x90, 0xfe, 0x0e, 0x13, 0xfe, 0x0e, 0x90, 0xa0, + 0xfe, 0x3c, 0x90, 0xfe, 0x30, 0xf4, 0x0a, 0xfe, 0x3c, 0x50, 0x9c, 0x01, 0xfe, 0x20, 0x16, 0x2e, + 0x06, 0x2c, 0x5a, 0x01, 0xfe, 0x5a, 0x15, 0xfe, 0x08, 0x10, 0x01, 0xe5, 0x01, 0xe6, 0x11, 0xfe, + 0xe9, 0x00, 0x0b, 0x09, 0x4a, 0xfe, 0x2c, 0x13, 0x01, 0xfe, 0xb2, 0x15, 0xfe, 0x1e, 0x1c, 0xfe, + 0x14, 0x90, 0x0c, 0xfe, 0x64, 0x01, 0xfe, 0x16, 0x90, 0x0c, 0xfe, 0x66, 0x01, 0x0b, 0x09, 0x4d, + 0xfe, 0x12, 0x12, 0xfe, 0x03, 0x80, 0x72, 0xfe, 0x01, 0xec, 0x1f, 0xfe, 0x80, 0x40, 0x13, 0x1f, + 0x5f, 0x26, 0x11, 0xc4, 0x57, 0x1d, 0x1f, 0xec, 0x75, 0x1f, 0x02, 0xfe, 0x08, 0x1c, 0x04, 0xfe, + 0xac, 0x00, 0xfe, 0x06, 0x58, 0x04, 0xfe, 0xae, 0x00, 0xfe, 0x07, 0x58, 0x04, 0xfe, 0xb0, 0x00, + 0xfe, 0x08, 0x58, 0x04, 0xfe, 0xb2, 0x00, 0xfe, 0x09, 0x58, 0xfe, 0x0a, 0x1c, 0x23, 0x67, 0x13, + 0xc5, 0x22, 0x0c, 0x4e, 0x0c, 0x3e, 0x12, 0x37, 0x45, 0x5d, 0x15, 0x2b, 0xfe, 0x90, 0x4d, 0xfe, + 0x91, 0x54, 0x20, 0xfe, 0xa6, 0x0e, 0x3c, 0x0f, 0x12, 0x40, 0x45, 0x15, 0x4a, 0xfe, 0x90, 0x4d, + 0xfe, 0x91, 0x54, 0x20, 0xfe, 0xbc, 0x0e, 0x23, 0x0f, 0x13, 0x1f, 0x77, 0x49, 0x5c, 0x1d, 0x1f, + 0xec, 0x75, 0x1f, 0x11, 0xc4, 0xf6, 0xfe, 0xd6, 0xf0, 0xfe, 0xd0, 0x0e, 0xe8, 0x6e, 0xfe, 0x14, + 0x1c, 0xfe, 0x10, 0x1c, 0xfe, 0x18, 0x1c, 0x02, 0x44, 0xfe, 0x0c, 0x14, 0xee, 0xfe, 0x07, 0xe6, + 0x2b, 0xfe, 0xce, 0x47, 0xfe, 0xf5, 0x13, 0x02, 0x01, 0x9f, 0x77, 0x49, 0x5c, 0xfa, 0xef, 0xfe, + 0x42, 0x13, 0x2e, 0x06, 0x2c, 0xfe, 0x34, 0x13, 0x08, 0x40, 0x01, 0x10, 0xab, 0xfe, 0x36, 0x12, + 0xf0, 0xfe, 0x45, 0x48, 0x01, 0xa2, 0xfc, 0xab, 0xfe, 0xf3, 0x13, 0x3b, 0x73, 0x06, 0x0f, 0xa0, + 0x08, 0x7e, 0x01, 0x10, 0xfe, 0x80, 0x5c, 0x01, 0x6d, 0xd9, 0x06, 0x7c, 0x59, 0xf6, 0xfe, 0xd6, + 0xf0, 0xfe, 0x0a, 0x0f, 0x02, 0xfe, 0x44, 0x58, 0x72, 0xfe, 0x01, 0xec, 0x94, 0xfe, 0x9e, 0x40, + 0xfe, 0x9d, 0xe7, 0x00, 0xfe, 0x9c, 0xe7, 0x1c, 0x75, 0x26, 0x01, 0xd6, 0xfe, 0xdd, 0x10, 0x29, + 0xb8, 0x7b, 0xb9, 0x7d, 0x2f, 0x2d, 0xd1, 0x06, 0x1c, 0xfe, 0x48, 0x12, 0x06, 0x0a, 0xfe, 0x56, + 0x12, 0x06, 0x1a, 0xfe, 0x30, 0x12, 0x06, 0xbe, 0x18, 0xfe, 0xdc, 0x10, 0x06, 0xfe, 0x23, 0x00, + 0x18, 0xfe, 0xe8, 0x10, 0x06, 0x05, 0x18, 0xfe, 0x46, 0x11, 0x06, 0x16, 0xfe, 0x12, 0x12, 0x06, + 0x00, 0x18, 0x21, 0x17, 0xbe, 0x01, 0x32, 0x9b, 0x2a, 0x01, 0x07, 0x8a, 0x41, 0x02, 0x2a, 0xfe, + 0x62, 0x08, 0x08, 0xc6, 0x01, 0xfe, 0xd6, 0x0d, 0x11, 0x7c, 0x03, 0x28, 0x2a, 0x2e, 0x06, 0x98, + 0xfe, 0xd9, 0x13, 0x78, 0x38, 0x64, 0x39, 0x76, 0xfe, 0x9a, 0x10, 0x0b, 0x09, 0x68, 0xfe, 0x72, + 0x12, 0xbc, 0x36, 0xbd, 0x4c, 0xf4, 0xf5, 0x8c, 0xfe, 0x64, 0x10, 0x1d, 0x56, 0xfe, 0x26, 0x13, + 0x04, 0x79, 0x30, 0x7a, 0x76, 0xfe, 0x64, 0x0c, 0x0c, 0x52, 0x19, 0x53, 0x22, 0x0c, 0x79, 0x0c, + 0x7a, 0x01, 0xa5, 0x23, 0x67, 0x71, 0x13, 0x56, 0x01, 0xdf, 0xbc, 0x36, 0xbd, 0x4c, 0xfe, 0x04, + 0x55, 0xfe, 0xa5, 0x55, 0xfe, 0x04, 0xfa, 0x36, 0xfe, 0x05, 0xfa, 0x4c, 0xfe, 0x91, 0x10, 0x04, + 0x54, 0x30, 0x55, 0xfe, 0x40, 0x56, 0xfe, 0xe1, 0x56, 0x0c, 0x54, 0x19, 0x55, 0x82, 0xbc, 0x36, + 0xbd, 0x4c, 0xf4, 0xf5, 0x04, 0x50, 0x30, 0x51, 0xfe, 0x00, 0x56, 0xfe, 0xa1, 0x56, 0x0c, 0x50, + 0x19, 0x51, 0x0b, 0x09, 0x68, 0xfe, 0x1e, 0x12, 0x1d, 0x56, 0xfe, 0x1f, 0x40, 0x04, 0x52, 0x30, + 0x53, 0xfe, 0x2c, 0x50, 0xfe, 0xae, 0x50, 0x04, 0x54, 0x30, 0x55, 0xfe, 0x44, 0x50, 0xfe, 0xc6, + 0x50, 0x04, 0x50, 0x30, 0x51, 0xfe, 0x08, 0x50, 0xfe, 0x8a, 0x50, 0x04, 0x38, 0x30, 0x39, 0xfe, + 0x40, 0x50, 0xfe, 0xc2, 0x50, 0x03, 0x81, 0x23, 0x05, 0x13, 0xc9, 0x03, 0x6c, 0x2a, 0x01, 0x07, + 0x1e, 0x42, 0x2f, 0x2d, 0xd1, 0x06, 0x05, 0x20, 0x42, 0x2e, 0x06, 0x98, 0x20, 0x6c, 0x01, 0x9e, + 0x1b, 0x3b, 0x18, 0x42, 0x0b, 0x09, 0x0a, 0xe1, 0x78, 0x38, 0x64, 0x39, 0xfe, 0x0a, 0x55, 0x33, + 0xfe, 0x8b, 0x55, 0xba, 0x38, 0xbb, 0x39, 0xfe, 0x0c, 0x51, 0xfe, 0x8e, 0x51, 0x03, 0x6c, 0xfe, + 0x19, 0x81, 0xed, 0xfe, 0x19, 0x41, 0x03, 0x6c, 0x2a, 0x01, 0x07, 0x24, 0x31, 0x1e, 0xd7, 0x2f, + 0x2d, 0xd4, 0x48, 0x1a, 0xfe, 0xa6, 0x12, 0x48, 0x0a, 0x3a, 0x03, 0x42, 0x01, 0x07, 0x24, 0x31, + 0x1e, 0xd7, 0x2f, 0x2d, 0xd2, 0x06, 0x1a, 0x20, 0x42, 0x01, 0x07, 0x1e, 0xd7, 0x2f, 0x2d, 0xfe, + 0xe8, 0x09, 0xfe, 0xc2, 0x49, 0x5e, 0x04, 0xfe, 0x9c, 0x00, 0x27, 0x83, 0x46, 0x09, 0x16, 0x33, + 0x9b, 0xfe, 0xbb, 0x45, 0x48, 0x00, 0x59, 0x3c, 0x05, 0x77, 0x3b, 0xfe, 0xda, 0x14, 0x01, 0x9e, + 0x85, 0xfe, 0x4b, 0x45, 0xe1, 0x2e, 0x06, 0x97, 0xe0, 0x04, 0xc2, 0x27, 0x83, 0x04, 0x3e, 0x27, + 0x33, 0x5b, 0x03, 0x6c, 0xfe, 0xc0, 0x5d, 0xfe, 0xf8, 0x14, 0xfe, 0x03, 0x17, 0x04, 0x4e, 0xaf, + 0x0c, 0x4e, 0x5b, 0x2a, 0x01, 0x07, 0x25, 0x81, 0x01, 0xfe, 0x48, 0x14, 0x03, 0x81, 0x01, 0x07, + 0x24, 0x31, 0x1e, 0x42, 0x2f, 0x2d, 0xd2, 0x06, 0x05, 0x20, 0x42, 0x01, 0xfe, 0x2c, 0x13, 0xfe, + 0x42, 0x58, 0xfe, 0x82, 0x14, 0xfe, 0xa4, 0x14, 0x85, 0xfe, 0x4a, 0xf4, 0x0a, 0x18, 0x42, 0xfe, + 0x4a, 0xf4, 0x05, 0xfe, 0x0c, 0x12, 0x2e, 0x06, 0x97, 0x84, 0x03, 0x6c, 0x04, 0x3e, 0xaf, 0x0c, + 0x3e, 0x5b, 0x2a, 0x01, 0x07, 0x25, 0x81, 0x01, 0xfe, 0x76, 0x14, 0x03, 0x81, 0x12, 0x05, 0x61, + 0xde, 0x25, 0xfe, 0x7e, 0x12, 0x70, 0xf1, 0x01, 0x07, 0x22, 0x70, 0x02, 0x8d, 0xfe, 0x7a, 0x12, + 0x24, 0xfe, 0x7a, 0x12, 0x1e, 0xde, 0x5b, 0x2a, 0x01, 0x07, 0xfe, 0xd5, 0x10, 0x12, 0x6a, 0xff, + 0x02, 0x00, 0x57, 0x45, 0x88, 0x1b, 0xfe, 0xff, 0x7f, 0xfe, 0x30, 0x56, 0xfe, 0x00, 0x5c, 0x02, + 0x12, 0x6a, 0xff, 0x02, 0x00, 0x57, 0x45, 0x88, 0x1b, 0x3b, 0xfe, 0x30, 0x56, 0xfe, 0x00, 0x5c, + 0x02, 0x12, 0x6a, 0xff, 0x02, 0x00, 0x57, 0x45, 0x88, 0x02, 0x12, 0x6a, 0xff, 0x02, 0x00, 0x57, + 0x45, 0x88, 0xfe, 0x0b, 0x58, 0x02, 0x08, 0x4e, 0x01, 0x80, 0x08, 0x3e, 0x01, 0x80, 0x02, 0xfb, + 0x1b, 0x0f, 0xff, 0x03, 0x00, 0x54, 0xfe, 0x00, 0xf4, 0x16, 0x45, 0xfe, 0x00, 0x7d, 0xfe, 0x01, + 0x7d, 0xfe, 0x02, 0x7d, 0xfe, 0x03, 0x7c, 0x5f, 0x26, 0x0c, 0x50, 0x19, 0x51, 0xba, 0x54, 0xbb, + 0x55, 0x02, 0xfe, 0x62, 0x08, 0xfe, 0x82, 0x4a, 0xfe, 0xe1, 0x1a, 0xfe, 0x83, 0x5a, 0x72, 0x02, + 0x01, 0xfe, 0xae, 0x17, 0xfe, 0x42, 0x48, 0x5d, 0x5e, 0x87, 0x01, 0x07, 0x1e, 0xfe, 0x40, 0x14, + 0x2f, 0x2d, 0xd4, 0x01, 0x07, 0x1e, 0xfe, 0x40, 0x14, 0x2f, 0x2d, 0xfe, 0xe8, 0x0a, 0xfe, 0xc1, + 0x59, 0x04, 0xc2, 0x27, 0xfe, 0xcc, 0x12, 0x46, 0x09, 0x1c, 0xfe, 0xc4, 0x13, 0x22, 0x89, 0x1c, + 0xe1, 0x48, 0xbf, 0x60, 0xfe, 0x86, 0x13, 0x3a, 0x12, 0x05, 0x15, 0xbf, 0x77, 0xd8, 0xfe, 0x78, + 0x10, 0xff, 0x02, 0x83, 0x55, 0x9d, 0xff, 0x02, 0x83, 0x55, 0x89, 0x1a, 0xa1, 0xb7, 0xfe, 0x30, + 0x00, 0x8c, 0xe2, 0x15, 0x66, 0x12, 0x05, 0xfe, 0x56, 0x10, 0x89, 0x0a, 0xe0, 0xb7, 0xfe, 0x64, + 0x00, 0x8c, 0xe2, 0x08, 0xfe, 0x64, 0x00, 0x15, 0x91, 0x12, 0x05, 0xfe, 0x28, 0x10, 0x89, 0x05, + 0xfe, 0x60, 0x13, 0xb7, 0xfe, 0xc8, 0x00, 0x8c, 0xe2, 0x08, 0xfe, 0xc8, 0x00, 0x15, 0x4b, 0x12, + 0x05, 0x82, 0xb7, 0xfe, 0x90, 0x01, 0xb6, 0xfe, 0xec, 0x13, 0x87, 0xfe, 0x12, 0x10, 0xfe, 0x43, + 0xf4, 0x92, 0xfe, 0x56, 0xf0, 0xfe, 0xfe, 0x13, 0xfe, 0x04, 0xf4, 0x6a, 0xfe, 0x43, 0xf4, 0x91, + 0xfe, 0xf3, 0x10, 0xf9, 0x01, 0xfe, 0xc0, 0x12, 0x1b, 0x3b, 0xfe, 0x10, 0x13, 0xfe, 0x00, 0x17, + 0xfe, 0x4d, 0xe4, 0x67, 0xb6, 0xfe, 0x3a, 0x14, 0xb3, 0x67, 0xfe, 0x1c, 0x10, 0xfe, 0x00, 0x17, + 0xfe, 0x4d, 0xe4, 0x16, 0xb6, 0xfe, 0x3a, 0x14, 0xb3, 0x16, 0x82, 0x5e, 0x22, 0xfe, 0x4d, 0xf4, + 0x00, 0xdd, 0x87, 0x12, 0x05, 0xfe, 0xb4, 0x56, 0xfe, 0xc3, 0x58, 0x02, 0x5e, 0x12, 0x0a, 0x02, + 0x14, 0x05, 0x01, 0x07, 0x25, 0xe3, 0x14, 0x0a, 0x01, 0x07, 0x25, 0xe3, 0x14, 0x1a, 0x01, 0x07, + 0x25, 0xe3, 0x70, 0xfe, 0x89, 0x49, 0x01, 0x07, 0x02, 0x14, 0x05, 0x01, 0x07, 0x25, 0xa3, 0x14, + 0x1a, 0x01, 0x07, 0x25, 0xa3, 0x14, 0x05, 0x01, 0x07, 0x25, 0xa3, 0xfe, 0x89, 0x49, 0x01, 0x07, + 0x25, 0xa3, 0x70, 0xfe, 0x89, 0x4a, 0x01, 0x07, 0x02, 0x5e, 0x02, 0x1d, 0xc8, 0x06, 0x05, 0xfe, + 0x44, 0x13, 0xa9, 0x13, 0xc8, 0xfe, 0x49, 0xf4, 0x00, 0x3a, 0x70, 0x9b, 0x5b, 0xfe, 0x01, 0xec, + 0xfe, 0x27, 0x01, 0xf1, 0x01, 0x07, 0x2e, 0x06, 0xfe, 0xe3, 0x00, 0xa2, 0x1e, 0xfe, 0xf8, 0x14, + 0x22, 0x13, 0xc9, 0x01, 0x41, 0x1d, 0xc9, 0x06, 0x05, 0x59, 0x0b, 0x47, 0x05, 0x34, 0x02, 0x08, + 0x40, 0x01, 0x10, 0xec, 0x86, 0x06, 0x0f, 0xa1, 0x08, 0x7e, 0x01, 0x10, 0x86, 0x08, 0x4f, 0x01, + 0x9a, 0x02, 0x08, 0x7e, 0x01, 0x10, 0x86, 0xfe, 0x80, 0xe7, 0x0f, 0x06, 0x0f, 0x83, 0xfe, 0x45, + 0x58, 0x01, 0xa2, 0x86, 0x02, 0x08, 0x40, 0x01, 0x10, 0x86, 0x08, 0x4f, 0x01, 0x9a, 0x02, 0x08, + 0x40, 0x01, 0x10, 0xfe, 0x80, 0x80, 0xf2, 0xfe, 0x49, 0xe4, 0x0f, 0xa1, 0x08, 0x7e, 0x01, 0x10, + 0xf2, 0x08, 0x4f, 0x01, 0x80, 0x02, 0x15, 0x0f, 0x6f, 0x62, 0xfe, 0x60, 0x01, 0xfe, 0x18, 0xdf, + 0xfe, 0x19, 0xde, 0xfe, 0x24, 0x1c, 0xfe, 0x1d, 0xf7, 0x2b, 0x8e, 0xfe, 0x94, 0x15, 0x01, 0xfe, + 0x9a, 0x16, 0xfe, 0x0c, 0x13, 0x8f, 0x2b, 0x62, 0xfe, 0x2c, 0x01, 0xfe, 0x2f, 0x19, 0x02, 0xaa, + 0x20, 0xfe, 0x84, 0x15, 0xfe, 0xda, 0x10, 0x15, 0x0f, 0x6f, 0x04, 0xfe, 0x64, 0x01, 0xfe, 0x00, + 0xf4, 0x16, 0xfe, 0x18, 0x58, 0x04, 0xfe, 0x66, 0x01, 0xfe, 0x19, 0x58, 0x8f, 0x16, 0xfe, 0x3c, + 0x90, 0xfe, 0x30, 0xf4, 0x05, 0xfe, 0x3c, 0x50, 0x62, 0xfe, 0x38, 0x00, 0xfe, 0x0f, 0x79, 0xfe, + 0x1c, 0xf7, 0x16, 0x8e, 0xfe, 0xde, 0x15, 0xfe, 0xb6, 0x14, 0x33, 0x02, 0xaa, 0x20, 0xfe, 0xb6, + 0x15, 0xfe, 0x9c, 0x10, 0x15, 0x0f, 0x6f, 0xfe, 0x83, 0x5a, 0xfe, 0x18, 0xdf, 0xfe, 0x19, 0xde, + 0xfe, 0x1d, 0xf7, 0x36, 0x8e, 0x02, 0xfe, 0x94, 0x14, 0xfe, 0x10, 0x13, 0x8f, 0x36, 0x62, 0x1c, + 0xfe, 0xaf, 0x19, 0xfe, 0x98, 0xe7, 0x00, 0x02, 0xaa, 0x20, 0xfe, 0xf4, 0x15, 0xfe, 0x6c, 0x10, + 0x15, 0x0f, 0x6f, 0xfe, 0x30, 0xbc, 0xfe, 0xb2, 0xbc, 0x8f, 0xc0, 0x62, 0x1c, 0xfe, 0x0f, 0x79, + 0xfe, 0x1c, 0xf7, 0xc0, 0x8e, 0xfe, 0x38, 0x16, 0xfe, 0x5c, 0x14, 0x33, 0x02, 0xaa, 0x20, 0xfe, + 0x24, 0x16, 0xfe, 0x42, 0x10, 0xfe, 0x02, 0xf6, 0x0f, 0x6f, 0xfe, 0x18, 0xfe, 0x52, 0xfe, 0x19, + 0xfe, 0x53, 0xfb, 0xfe, 0x1d, 0xf7, 0x4d, 0x8e, 0xfe, 0x5e, 0x16, 0xfe, 0x36, 0x14, 0xfe, 0x1c, + 0x13, 0x8f, 0x4d, 0x43, 0xfe, 0x83, 0x58, 0xfe, 0xaf, 0x19, 0xfe, 0x80, 0xe7, 0x0f, 0xfe, 0x81, + 0xe7, 0x0f, 0x11, 0xfe, 0xdd, 0x00, 0x5f, 0x26, 0x02, 0x5f, 0x26, 0xfe, 0x12, 0x45, 0x20, 0xfe, + 0x4e, 0x16, 0x17, 0x05, 0x3d, 0xc1, 0xe9, 0x03, 0x28, 0xfe, 0x39, 0xf0, 0xfe, 0xa2, 0x16, 0x22, + 0x02, 0xfe, 0x7e, 0x18, 0x1b, 0x1a, 0x5a, 0x12, 0x0d, 0x02, 0x6f, 0x04, 0xc7, 0x1b, 0x05, 0xfe, + 0xef, 0x12, 0xfe, 0xe1, 0x10, 0x77, 0x49, 0x5c, 0x2e, 0x06, 0x2c, 0xfe, 0x3c, 0x13, 0xfe, 0x7e, + 0x14, 0xfe, 0x42, 0x13, 0x44, 0xb2, 0x08, 0x40, 0x01, 0x10, 0xab, 0xfe, 0x3e, 0x12, 0xf0, 0xfe, + 0x45, 0x48, 0x01, 0xa2, 0xfc, 0xab, 0xfe, 0xf3, 0x13, 0x3b, 0x73, 0x06, 0x0f, 0xa0, 0x08, 0x7e, + 0x01, 0x10, 0xf2, 0x01, 0x6d, 0xfe, 0x16, 0x10, 0x06, 0x7c, 0x84, 0xfe, 0x3c, 0x14, 0xfe, 0x24, + 0x12, 0xf6, 0xfe, 0xd6, 0xf0, 0xfe, 0xc2, 0x16, 0x15, 0x0a, 0x02, 0xfe, 0x9c, 0xe7, 0x0a, 0x0e, + 0xfe, 0x15, 0x00, 0x57, 0x75, 0x26, 0x01, 0xd6, 0x15, 0x05, 0x02, 0x0b, 0x47, 0x2b, 0x34, 0x11, + 0x2c, 0x01, 0x6d, 0x15, 0x05, 0x02, 0xfe, 0x38, 0x90, 0xfe, 0xba, 0x90, 0x78, 0xc3, 0x64, 0xc4, + 0xfe, 0x48, 0x55, 0x33, 0xfe, 0xc9, 0x55, 0x02, 0x1d, 0x95, 0x71, 0x13, 0x95, 0x02, 0x08, 0x96, + 0x01, 0x10, 0xf0, 0x08, 0x37, 0x01, 0x10, 0xfe, 0x49, 0x44, 0x18, 0xfe, 0x8a, 0x17, 0x71, 0x73, + 0x02, 0x08, 0x40, 0x01, 0x10, 0x06, 0x0f, 0x59, 0x08, 0x4f, 0x01, 0x9a, 0x08, 0x37, 0x01, 0x10, + 0x71, 0x73, 0x02, 0xfe, 0x4e, 0xe4, 0x1a, 0x60, 0xfe, 0xbe, 0x17, 0x04, 0xfe, 0x90, 0x00, 0xfe, + 0x3a, 0x45, 0xfe, 0x2c, 0x10, 0xfe, 0x4e, 0xe4, 0xbe, 0x60, 0xfe, 0xd0, 0x17, 0x04, 0xfe, 0x92, + 0x00, 0xfe, 0x02, 0xe6, 0x1c, 0xda, 0xfe, 0x4e, 0xe4, 0xfe, 0x0b, 0x00, 0x60, 0xfe, 0xe2, 0x17, + 0x04, 0xfe, 0x94, 0x00, 0xfe, 0x02, 0xe6, 0x16, 0xfe, 0x08, 0x10, 0x04, 0xfe, 0x96, 0x00, 0xfe, + 0x02, 0xe6, 0x66, 0xfe, 0x4e, 0x45, 0xfe, 0x0c, 0x12, 0xed, 0xff, 0x04, 0x68, 0x54, 0xdc, 0x1b, + 0x67, 0x02, 0x06, 0x65, 0xfe, 0x5a, 0xf0, 0xfe, 0x0e, 0x18, 0x23, 0xfe, 0x09, 0x00, 0xfe, 0x34, + 0x10, 0x06, 0x1c, 0xfe, 0x5a, 0xf0, 0xfe, 0x1c, 0x18, 0x23, 0xbf, 0xfe, 0x26, 0x10, 0x06, 0x1a, + 0x5a, 0x23, 0x66, 0xda, 0x06, 0x0a, 0x5a, 0x23, 0x91, 0xd9, 0x06, 0x05, 0x5a, 0x23, 0x4b, 0x9b, + 0xa9, 0x02, 0x17, 0xfe, 0x09, 0x00, 0x01, 0x32, 0xfe, 0x04, 0xfe, 0x7b, 0x04, 0x7d, 0xf9, 0x02, + 0x24, 0xfe, 0x64, 0x18, 0xfe, 0x14, 0xf0, 0x07, 0x61, 0xfe, 0x60, 0x18, 0x02, 0xff, 0x0d, 0x00, + 0x00, }; -u_int16_t adv_asc3550_mcode_size = sizeof(adv_asc3550_mcode); /* 0x13E5 */ +u_int16_t adv_asc3550_mcode_size = sizeof(adv_asc3550_mcode); /* 0x1361 */ /* * This checksum is used to compare with that one that will be calculated * at run time. * This is performed to ensure the uCode is correctly loaded into the Lram. */ -u_int32_t adv_asc3550_mcode_chksum = 0x04FFFF0E; +u_int32_t adv_asc3550_mcode_chksum = 0x04BE1ABDUL; /* Expanded checksum. */ u_int8_t adv_asc38C0800_mcode[] = { - 0x00, 0x00, 0x00, 0xf2, 0x00, 0xf0, 0x00, 0x16, 0x00, 0xfc, 0x48, 0xe4, 0x01, 0x00, 0x18, 0xe4, - 0x00, 0xf6, 0x01, 0xf6, 0x18, 0x80, 0x02, 0x00, 0x40, 0x1a, 0x00, 0xfa, 0xff, 0xff, 0x03, 0xf6, - 0xff, 0x00, 0x82, 0xe7, 0x01, 0xfa, 0x9e, 0xe7, 0x09, 0xe7, 0x1a, 0x0f, 0x00, 0xea, 0x01, 0xe6, - 0x03, 0x00, 0x55, 0xf0, 0x18, 0xf4, 0x1e, 0xf0, 0x3e, 0x57, 0x04, 0x00, 0x3e, 0x01, 0x85, 0xf0, - 0x00, 0xe6, 0x03, 0xfc, 0x08, 0x00, 0x2c, 0x1a, 0x32, 0xf0, 0x86, 0xf0, 0xbe, 0x0d, 0xd4, 0x01, - 0xd5, 0xf0, 0x00, 0xec, 0x01, 0xfc, 0x38, 0x54, 0x98, 0x57, 0xbc, 0x00, 0x0c, 0x1c, 0xb1, 0xf0, - 0x3c, 0x00, 0xb4, 0x00, 0xb8, 0x0d, 0x00, 0x57, 0x01, 0xf0, 0x02, 0x13, 0x02, 0xfc, 0x03, 0xe6, - 0x10, 0x00, 0x18, 0x40, 0x3e, 0x1c, 0x44, 0x13, 0x6c, 0x01, 0x6e, 0x01, 0xbd, 0x00, 0xe0, 0x00, - 0x02, 0x80, 0x30, 0xe4, 0x3e, 0x00, 0x74, 0x01, 0x76, 0x01, 0x7c, 0x16, 0x80, 0x00, 0xb9, 0x54, - 0xbb, 0x00, 0xee, 0x13, 0x00, 0x4e, 0x01, 0x01, 0x01, 0xea, 0x02, 0x48, 0x02, 0xfa, 0x04, 0x12, - 0x08, 0x12, 0x3c, 0x56, 0x4e, 0x01, 0x5d, 0xf0, 0x7a, 0x01, 0x7e, 0x10, 0xb6, 0x00, 0xc2, 0x10, - 0xee, 0x08, 0x00, 0x80, 0x05, 0xfc, 0x10, 0x44, 0x24, 0x01, 0x28, 0x01, 0x32, 0x00, 0x3c, 0x01, - 0x40, 0x00, 0x4b, 0xe4, 0x4b, 0xf4, 0x4c, 0x1c, 0x68, 0x01, 0x6a, 0x01, 0x70, 0x01, 0x72, 0x01, - 0x78, 0x01, 0x7c, 0x01, 0xbb, 0x55, 0xc2, 0x0d, 0x00, 0x01, 0x02, 0xee, 0x03, 0x58, 0x03, 0xf7, - 0x03, 0xfa, 0x04, 0x80, 0x08, 0x44, 0x09, 0xf0, 0x0f, 0x00, 0x1b, 0x80, 0x20, 0x01, 0x38, 0x1c, - 0x4e, 0x1c, 0x5b, 0xf0, 0x62, 0x0a, 0xaa, 0x00, 0xbe, 0x00, 0xc0, 0x00, 0xc0, 0x15, 0xcc, 0x10, - 0x00, 0x4c, 0x00, 0xdc, 0x02, 0x4a, 0x04, 0xfc, 0x05, 0x00, 0x05, 0xf0, 0x05, 0xf8, 0x06, 0x13, - 0x06, 0xf7, 0x08, 0x13, 0x0a, 0x10, 0x0c, 0x00, 0x0e, 0x47, 0x0e, 0xf7, 0x10, 0x0f, 0x20, 0x00, - 0x20, 0x16, 0x2a, 0x01, 0x32, 0x1c, 0x36, 0x00, 0x42, 0x54, 0x44, 0x55, 0x45, 0x5a, 0x52, 0x0c, - 0x59, 0xf0, 0x5c, 0xf0, 0x69, 0x08, 0x6e, 0x0b, 0x83, 0x59, 0xb8, 0xf0, 0xbd, 0x56, 0xcc, 0x18, - 0xce, 0x10, 0xd8, 0x18, 0xf0, 0x00, 0x01, 0x48, 0x04, 0x10, 0x04, 0xea, 0x04, 0xf6, 0x05, 0x80, - 0x05, 0xe6, 0x06, 0x00, 0x06, 0x0f, 0x06, 0x12, 0x0b, 0xf0, 0x0c, 0x10, 0x0c, 0xf0, 0x10, 0x13, - 0x12, 0x10, 0x19, 0x00, 0x19, 0xe4, 0x30, 0x1c, 0x33, 0x00, 0x34, 0x00, 0x38, 0x44, 0x40, 0x5c, - 0x4a, 0xe4, 0x62, 0x1a, 0x68, 0x08, 0x68, 0x54, 0x6c, 0x15, 0x70, 0x15, 0x83, 0x55, 0x83, 0x5a, - 0x91, 0x44, 0xa4, 0x00, 0xac, 0x13, 0xb0, 0x57, 0xb5, 0x00, 0xb8, 0x17, 0xba, 0x00, 0xce, 0x45, - 0xd0, 0x00, 0xe1, 0x00, 0xe5, 0x55, 0xe7, 0x00, 0x00, 0x54, 0x01, 0x58, 0x02, 0x10, 0x02, 0xe6, - 0x03, 0xa1, 0x04, 0x13, 0x06, 0x83, 0x06, 0xf0, 0x07, 0x00, 0x0a, 0x00, 0x0a, 0x12, 0x0a, 0xf0, - 0x0c, 0x12, 0x0c, 0x13, 0x0c, 0x90, 0x0e, 0x13, 0x10, 0x04, 0x10, 0x10, 0x12, 0x1c, 0x19, 0x81, - 0x1a, 0x10, 0x1c, 0x00, 0x1c, 0x12, 0x1d, 0xf7, 0x1e, 0x13, 0x20, 0x1c, 0x20, 0xe7, 0x22, 0x01, - 0x26, 0x01, 0x2a, 0x12, 0x2c, 0x0f, 0x30, 0xe7, 0x32, 0x15, 0x34, 0x1c, 0x36, 0x1c, 0x38, 0x12, - 0x3a, 0x55, 0x3f, 0x00, 0x41, 0x58, 0x43, 0x48, 0x46, 0x1c, 0x4e, 0xe4, 0x76, 0x02, 0x77, 0x57, - 0x78, 0x03, 0x89, 0x48, 0x8e, 0x90, 0x98, 0x80, 0x99, 0x00, 0xfe, 0x9c, 0xf0, 0x27, 0x02, 0xfe, - 0xe0, 0x0d, 0xff, 0x10, 0x00, 0x00, 0xfe, 0xc6, 0x01, 0xfe, 0x56, 0x1a, 0x00, 0xfe, 0xc4, 0x01, - 0xfe, 0x84, 0x01, 0xff, 0x03, 0x00, 0x00, 0xfe, 0x6a, 0x13, 0xfe, 0x05, 0x05, 0xff, 0x40, 0x00, - 0x00, 0x0e, 0xff, 0x09, 0x00, 0x00, 0xff, 0x08, 0x01, 0x01, 0xff, 0x10, 0xff, 0xff, 0xff, 0x1f, - 0x00, 0x00, 0xff, 0x10, 0xff, 0xff, 0xff, 0x11, 0x00, 0x00, 0xfe, 0x78, 0x56, 0xfe, 0x34, 0x12, - 0xff, 0x21, 0x00, 0x00, 0xfe, 0x04, 0xf7, 0xfe, 0xc4, 0x01, 0x2e, 0x88, 0x0b, 0x01, 0xfe, 0xca, - 0x0f, 0xfe, 0x04, 0xf7, 0xfe, 0xc4, 0x01, 0x88, 0x0b, 0x1c, 0x2e, 0xfe, 0x3d, 0xf0, 0xfe, 0xfc, - 0x01, 0xfe, 0x20, 0xf0, 0xdc, 0x04, 0x5f, 0x4f, 0x02, 0xfe, 0xfc, 0x0d, 0x01, 0xfe, 0x5c, 0x0e, - 0xfe, 0xe9, 0x12, 0x02, 0xfe, 0x08, 0x03, 0xfe, 0x28, 0x1c, 0x04, 0xfe, 0xa6, 0x00, 0xfe, 0xdd, - 0x12, 0x47, 0x12, 0xfe, 0xa6, 0x00, 0xcd, 0xfe, 0x48, 0xf0, 0xfe, 0x80, 0x02, 0xfe, 0x49, 0xf0, - 0xfe, 0x9a, 0x02, 0xfe, 0x4a, 0xf0, 0xfe, 0xb8, 0x02, 0xfe, 0x46, 0xf0, 0xfe, 0x4a, 0x02, 0xfe, - 0x47, 0xf0, 0xfe, 0x50, 0x02, 0xfe, 0x43, 0xf0, 0xfe, 0x3e, 0x02, 0xfe, 0x44, 0xf0, 0xfe, 0x42, - 0x02, 0xfe, 0x45, 0xf0, 0xfe, 0x46, 0x02, 0x09, 0x0b, 0xa4, 0x09, 0x06, 0x12, 0xc1, 0x02, 0x27, - 0xfe, 0x00, 0x1c, 0xfe, 0xf1, 0x10, 0xfe, 0x02, 0x1c, 0xfe, 0xed, 0x10, 0xfe, 0x1e, 0x1c, 0xfe, - 0xe9, 0x10, 0x01, 0xfe, 0x2c, 0x18, 0xfe, 0xe7, 0x10, 0xfe, 0x06, 0xfc, 0xfe, 0xa8, 0x00, 0x0f, - 0x7c, 0x01, 0xaa, 0x02, 0x27, 0x17, 0x5e, 0x4c, 0xc4, 0x01, 0xfe, 0x40, 0x10, 0x0f, 0x7c, 0x01, - 0x8e, 0xfe, 0xbd, 0x10, 0x0f, 0x7c, 0x01, 0x8e, 0xfe, 0xad, 0x10, 0xfe, 0x16, 0x1c, 0xfe, 0x58, - 0x1c, 0x09, 0x06, 0x12, 0xc1, 0x2e, 0x1b, 0x27, 0xfe, 0x3d, 0xf0, 0xfe, 0xfc, 0x01, 0x28, 0xfe, - 0x8e, 0x02, 0xfe, 0x5a, 0x1c, 0xde, 0xfe, 0x14, 0x1c, 0x17, 0xfe, 0x30, 0x00, 0x4c, 0xc4, 0x01, - 0xfe, 0x30, 0x10, 0x09, 0x06, 0x12, 0xc1, 0x02, 0xfe, 0xc6, 0x01, 0x29, 0x2d, 0x05, 0x10, 0x35, - 0xfe, 0x69, 0x10, 0x09, 0x06, 0x12, 0xc1, 0xfe, 0x04, 0xec, 0x2d, 0x08, 0x2d, 0x09, 0x3e, 0x1c, - 0x01, 0x45, 0x82, 0xfe, 0x05, 0xf6, 0xfe, 0xa8, 0x00, 0x01, 0xfe, 0x56, 0x17, 0x0a, 0x41, 0x8f, - 0x39, 0x11, 0x48, 0x1c, 0xd2, 0x08, 0x1e, 0x09, 0x52, 0x01, 0x90, 0x02, 0x27, 0x0f, 0x3f, 0x01, - 0x15, 0x05, 0x10, 0xdb, 0x08, 0x1e, 0x09, 0x52, 0x01, 0x7e, 0xfe, 0x28, 0x10, 0x0f, 0xc8, 0x01, - 0x15, 0xf2, 0x0f, 0x7d, 0x01, 0x15, 0xfe, 0x49, 0x54, 0x79, 0xfe, 0x16, 0x03, 0x08, 0x1e, 0x09, - 0x52, 0x01, 0x90, 0x02, 0x27, 0x2e, 0x82, 0xfe, 0x02, 0xe8, 0x31, 0xfe, 0xbf, 0x57, 0xfe, 0x9e, - 0x43, 0xf7, 0xfe, 0x07, 0x4b, 0xfe, 0x20, 0xf0, 0xdc, 0xfe, 0x40, 0x1c, 0x1b, 0xf8, 0xfe, 0x26, - 0xf0, 0xfe, 0x74, 0x03, 0xfe, 0xa0, 0xf0, 0xfe, 0x62, 0x03, 0xfe, 0x11, 0xf0, 0xdc, 0xfe, 0x0e, - 0x10, 0xfe, 0x9f, 0xf0, 0xfe, 0x82, 0x03, 0xf4, 0x13, 0xfe, 0x11, 0x00, 0x02, 0x6b, 0x2e, 0xfe, - 0x48, 0x1c, 0xf4, 0x1b, 0xf8, 0x34, 0xf8, 0xfe, 0x82, 0xf0, 0xfe, 0x88, 0x03, 0x2b, 0x29, 0xc6, - 0x72, 0x16, 0xc6, 0x0f, 0x7d, 0x01, 0x15, 0x72, 0x80, 0x08, 0x1e, 0x09, 0x52, 0x01, 0x45, 0x11, - 0x3f, 0x08, 0x3f, 0x09, 0xa2, 0x01, 0x90, 0xfe, 0x9c, 0x32, 0x11, 0xfe, 0xe4, 0x00, 0x2f, 0xfe, - 0xce, 0x03, 0x1b, 0x32, 0x1f, 0xfe, 0xde, 0x03, 0x01, 0x55, 0xd3, 0xfe, 0xee, 0x03, 0x73, 0x97, - 0xd7, 0xfe, 0xae, 0x06, 0x02, 0x26, 0x04, 0x7c, 0x2c, 0x19, 0xfe, 0x20, 0x05, 0x17, 0x8b, 0x01, - 0x3b, 0x01, 0x9f, 0x01, 0xa1, 0x34, 0xfe, 0x60, 0x02, 0x02, 0xf6, 0xf4, 0x2e, 0x88, 0x18, 0xfe, - 0x67, 0x1b, 0xfe, 0xbf, 0x57, 0xf7, 0xfe, 0x48, 0x1c, 0x92, 0x01, 0xfe, 0x9c, 0x13, 0xb3, 0xfe, - 0x96, 0xf0, 0xfe, 0x28, 0x04, 0x2f, 0xfe, 0x2c, 0x04, 0x34, 0x27, 0x0f, 0x3f, 0x01, 0x15, 0x05, - 0x10, 0x19, 0xfe, 0x0c, 0x05, 0x4d, 0x7a, 0xa5, 0x31, 0x86, 0x76, 0x1b, 0x32, 0x1f, 0x26, 0x04, - 0x7c, 0x2c, 0xfe, 0x10, 0x12, 0x17, 0x8b, 0x01, 0x3b, 0x34, 0xfe, 0x60, 0x02, 0x02, 0xf6, 0x21, - 0xfe, 0xa0, 0x00, 0xfe, 0x9b, 0x57, 0xfe, 0x5e, 0x12, 0x0a, 0x07, 0x06, 0xfe, 0x56, 0x12, 0x24, - 0x23, 0x9a, 0x01, 0x0c, 0x86, 0x76, 0x1f, 0xfe, 0xdc, 0x04, 0x24, 0x23, 0x9a, 0x01, 0x0c, 0x1f, - 0x26, 0x24, 0x23, 0xba, 0xfe, 0x4c, 0x44, 0xfe, 0x32, 0x12, 0x51, 0xfe, 0x44, 0x48, 0x08, 0xfe, - 0x93, 0x00, 0xfe, 0x4c, 0x54, 0x79, 0xfe, 0x0c, 0x05, 0x82, 0xa5, 0x31, 0xfe, 0x06, 0x80, 0xfe, - 0x48, 0x47, 0xfe, 0x48, 0x13, 0x40, 0x05, 0xfe, 0xcc, 0x00, 0xfe, 0x40, 0x13, 0x0a, 0x07, 0x06, - 0xef, 0xfe, 0x06, 0x10, 0x24, 0x23, 0xba, 0x0a, 0x07, 0x38, 0xe2, 0x17, 0xa9, 0x0a, 0x07, 0x06, - 0x4f, 0x17, 0xfe, 0x0d, 0x00, 0x01, 0x3b, 0x34, 0xfe, 0xa0, 0x0d, 0x02, 0x26, 0x3a, 0x11, 0xfe, - 0xe6, 0x00, 0xfe, 0x1c, 0x90, 0xb7, 0x03, 0x17, 0xa9, 0x01, 0x3b, 0x34, 0x27, 0x1b, 0x27, 0x02, - 0xfe, 0x14, 0x05, 0xfe, 0x42, 0x5b, 0x88, 0x18, 0xfe, 0x46, 0x59, 0xfe, 0xbf, 0x57, 0xf7, 0x17, - 0x46, 0xfe, 0x07, 0x80, 0xfe, 0x31, 0x44, 0x0a, 0x07, 0x0b, 0xfe, 0x78, 0x13, 0xfe, 0x20, 0x80, - 0x05, 0x18, 0xfe, 0x70, 0x12, 0x75, 0x07, 0x06, 0xfe, 0x60, 0x13, 0x04, 0xfe, 0xa2, 0x00, 0x2c, - 0x19, 0xfe, 0xac, 0x05, 0xfe, 0x31, 0xe4, 0x60, 0x75, 0x07, 0x0b, 0xfe, 0x4a, 0x13, 0x04, 0xfe, - 0xa0, 0x00, 0x2c, 0xfe, 0x42, 0x12, 0x63, 0x2f, 0xfe, 0x6c, 0x05, 0x1b, 0x32, 0xf9, 0x01, 0x0c, - 0x25, 0xfe, 0xc4, 0x05, 0x11, 0xfe, 0xe3, 0x00, 0x2b, 0x75, 0xfe, 0x4a, 0xf0, 0xfe, 0x96, 0x05, - 0xfe, 0x49, 0xf0, 0xfe, 0x90, 0x05, 0xad, 0x20, 0xfe, 0x21, 0x00, 0x8a, 0x20, 0xfe, 0x22, 0x00, - 0xa4, 0x20, 0x8f, 0xfe, 0x09, 0x48, 0x01, 0x0c, 0x25, 0xfe, 0xc4, 0x05, 0xfe, 0xe2, 0x08, 0x75, - 0x07, 0xe1, 0x4f, 0x01, 0xc2, 0x20, 0x06, 0x16, 0xe8, 0x4c, 0xfe, 0x27, 0x01, 0x0a, 0x07, 0x38, - 0xe9, 0x47, 0x01, 0xbd, 0x17, 0xa9, 0x0a, 0x07, 0x06, 0x4f, 0x17, 0xfe, 0x0d, 0x00, 0x01, 0x3b, - 0x01, 0x9f, 0x01, 0xa1, 0x34, 0xfe, 0xa0, 0x0d, 0x02, 0x26, 0x04, 0xfe, 0x9c, 0x00, 0x2c, 0xfe, - 0x3e, 0x12, 0x04, 0x5c, 0x2c, 0xfe, 0x36, 0x13, 0x47, 0x01, 0xbd, 0x25, 0xfe, 0x3c, 0x06, 0x0f, - 0x06, 0x75, 0x07, 0x22, 0xfe, 0x02, 0x12, 0x6a, 0x01, 0xfe, 0x06, 0x15, 0x1f, 0xfe, 0x32, 0x06, - 0x11, 0xc9, 0x01, 0x55, 0x11, 0xfe, 0xe5, 0x00, 0x04, 0x5c, 0xc3, 0x0d, 0x5c, 0x04, 0xfe, 0x9e, - 0x00, 0x2c, 0xfe, 0x62, 0x12, 0x04, 0x56, 0x2c, 0xfe, 0x5a, 0x13, 0x01, 0xfe, 0x7e, 0x19, 0x01, - 0xfe, 0xe8, 0x19, 0xf3, 0xa8, 0xf1, 0x08, 0x6c, 0xff, 0x02, 0x00, 0x57, 0x6e, 0x81, 0x1a, 0x59, - 0xd1, 0xa8, 0x74, 0x47, 0x01, 0xbd, 0x25, 0xfe, 0xa6, 0x06, 0x75, 0x07, 0x1d, 0xab, 0x9e, 0x0f, - 0x5e, 0x01, 0xfe, 0x34, 0x15, 0x1f, 0xfe, 0x9c, 0x06, 0x11, 0xc9, 0x01, 0x55, 0x11, 0xfe, 0xe5, - 0x00, 0x04, 0x56, 0xc3, 0x0d, 0x56, 0x09, 0x06, 0x01, 0xbd, 0xfe, 0x9c, 0x32, 0x78, 0x92, 0x01, - 0xfe, 0x9c, 0x13, 0xb3, 0x11, 0xfe, 0xe2, 0x00, 0x2f, 0xfe, 0xbe, 0x06, 0x1b, 0x32, 0xd7, 0xfe, - 0xda, 0x06, 0x85, 0xfe, 0x78, 0x07, 0xd3, 0xfe, 0x80, 0x07, 0x73, 0x97, 0x02, 0x26, 0x0a, 0x07, - 0x0b, 0xfe, 0x2e, 0x12, 0x14, 0x18, 0x01, 0x0c, 0x14, 0x00, 0x01, 0x0c, 0x14, 0x00, 0x01, 0x0c, - 0x14, 0x00, 0x01, 0x0c, 0xfe, 0x99, 0xa4, 0x01, 0x0c, 0x14, 0x00, 0x02, 0xfe, 0x50, 0x08, 0x71, - 0x07, 0x1d, 0xef, 0x0a, 0x07, 0x1d, 0xfe, 0x30, 0x13, 0x14, 0xfe, 0x1b, 0x00, 0x01, 0x0c, 0x14, - 0x00, 0x01, 0x0c, 0x14, 0x00, 0x01, 0x0c, 0x14, 0x00, 0x01, 0x0c, 0x14, 0x06, 0x01, 0x0c, 0x14, - 0x00, 0x02, 0xfe, 0x0a, 0x0c, 0x6a, 0xfe, 0x9a, 0x81, 0x6f, 0x8f, 0xfe, 0x09, 0x6f, 0xfe, 0x93, - 0x45, 0x19, 0xfe, 0x88, 0x07, 0x2f, 0xfe, 0x60, 0x07, 0x1b, 0x32, 0xd7, 0xfe, 0x58, 0x07, 0x73, - 0x97, 0x85, 0xfe, 0x78, 0x07, 0x02, 0x26, 0x01, 0x55, 0x02, 0xfe, 0xbe, 0x06, 0x14, 0x22, 0x02, - 0xfe, 0xbe, 0x06, 0xfe, 0x9c, 0xf7, 0xfe, 0xf0, 0x07, 0xfe, 0x2c, 0x90, 0xfe, 0xae, 0x90, 0x53, - 0xfe, 0xd6, 0x07, 0x0d, 0x66, 0x12, 0x67, 0x0a, 0x41, 0x60, 0x39, 0x01, 0xfe, 0x14, 0x19, 0x05, - 0x10, 0x87, 0xfe, 0x83, 0xe7, 0xfe, 0x95, 0x00, 0x8a, 0xfe, 0x03, 0x40, 0x0a, 0x41, 0x46, 0x39, - 0x01, 0xc5, 0xb6, 0xfe, 0x1f, 0x40, 0x16, 0x68, 0x01, 0xfe, 0xbe, 0x13, 0xfe, 0x08, 0x50, 0xfe, - 0x8a, 0x50, 0xfe, 0x34, 0x51, 0xfe, 0xb6, 0x51, 0xfe, 0x08, 0x90, 0xfe, 0x8a, 0x90, 0x0d, 0x64, - 0x12, 0x65, 0xda, 0xfa, 0x0d, 0x3c, 0x12, 0x3d, 0xfe, 0x60, 0x10, 0x0a, 0x07, 0x60, 0xe9, 0xfe, - 0x2c, 0x90, 0xfe, 0xae, 0x90, 0x0d, 0x66, 0x12, 0x67, 0x0a, 0x07, 0x46, 0xd1, 0x01, 0xc5, 0xfe, - 0x1f, 0x80, 0x16, 0x68, 0xfe, 0x34, 0x90, 0xfe, 0xb6, 0x90, 0x0d, 0x43, 0x12, 0x44, 0xfe, 0x08, - 0x90, 0xfe, 0x8a, 0x90, 0x0d, 0x64, 0x12, 0x65, 0xa7, 0x07, 0x46, 0xdb, 0xda, 0xfa, 0x0d, 0x3c, - 0x12, 0x3d, 0xad, 0xfe, 0x28, 0x90, 0xfe, 0xaa, 0x90, 0x0d, 0x3c, 0x12, 0x3d, 0x0d, 0x30, 0x12, - 0x42, 0x2b, 0x0d, 0x54, 0x0d, 0x69, 0x0a, 0x41, 0x22, 0x39, 0x2e, 0x08, 0x84, 0x2f, 0xfe, 0x70, - 0x08, 0xfe, 0x9e, 0xf0, 0xfe, 0x84, 0x08, 0xa3, 0x19, 0x32, 0x2e, 0x5b, 0xfe, 0xed, 0x10, 0xac, - 0xfe, 0xa8, 0x08, 0xae, 0xfe, 0xc4, 0x08, 0x85, 0xfe, 0x9c, 0x08, 0xd3, 0xfe, 0xa2, 0x08, 0x73, - 0x97, 0x02, 0x26, 0x01, 0x55, 0xfe, 0xc9, 0x10, 0x14, 0x22, 0xfe, 0xc9, 0x10, 0x71, 0x07, 0x06, - 0xfe, 0x10, 0x12, 0x71, 0x07, 0x0b, 0x50, 0x0a, 0x07, 0x0b, 0xfe, 0xa6, 0x12, 0xfe, 0x2e, 0x1c, - 0xb0, 0x71, 0x07, 0x06, 0x50, 0x71, 0x07, 0x0b, 0xfe, 0x92, 0x12, 0xfe, 0x2c, 0x1c, 0xa7, 0x07, - 0x46, 0xaf, 0xa7, 0x41, 0x46, 0xfe, 0x05, 0x40, 0xda, 0xfa, 0xfe, 0x28, 0x50, 0xfe, 0xaa, 0x50, - 0xfe, 0xaa, 0xf0, 0xfe, 0xf6, 0x09, 0xfe, 0xac, 0xf0, 0xfe, 0x24, 0x09, 0x02, 0xfe, 0x02, 0x0a, - 0xfe, 0xb7, 0xf0, 0xfe, 0x20, 0x09, 0xfe, 0x02, 0xf6, 0x1d, 0x6a, 0xfe, 0x70, 0x18, 0xfe, 0xf1, - 0x18, 0xfe, 0x40, 0x55, 0xfe, 0xe1, 0x55, 0xfe, 0x10, 0x58, 0xfe, 0x91, 0x58, 0xfe, 0x14, 0x59, - 0xfe, 0x95, 0x59, 0x1b, 0x9b, 0xfe, 0x8c, 0xf0, 0xfe, 0x20, 0x09, 0xfe, 0xac, 0xf0, 0xfe, 0x14, - 0x09, 0xed, 0xfe, 0xcb, 0x10, 0xfe, 0xad, 0xf0, 0xfe, 0x30, 0x09, 0x02, 0xfe, 0x3c, 0x0b, 0xee, - 0xfe, 0xbf, 0x10, 0xfe, 0x2b, 0xf0, 0x9b, 0xfe, 0x6b, 0x18, 0x1a, 0xfe, 0x00, 0xfe, 0xe2, 0xcd, - 0xfe, 0xd2, 0xf0, 0x9b, 0xfe, 0x76, 0x18, 0x1a, 0x18, 0x19, 0x9b, 0x04, 0xe7, 0x1a, 0x06, 0x19, - 0x9b, 0xac, 0x58, 0xae, 0x58, 0xed, 0xee, 0xfe, 0x89, 0x10, 0x92, 0x63, 0x3a, 0x17, 0xa9, 0x01, - 0x3b, 0x13, 0xfe, 0x35, 0x00, 0x34, 0x6b, 0x13, 0x93, 0x02, 0x6b, 0xfb, 0xb2, 0x0b, 0xfe, 0x1a, - 0x12, 0x51, 0xfe, 0x19, 0x82, 0xfe, 0x6c, 0x18, 0xfe, 0x44, 0x54, 0xf0, 0xdf, 0xfe, 0x74, 0x18, - 0x94, 0x95, 0x19, 0xfe, 0xf2, 0x08, 0x02, 0x58, 0x0a, 0x07, 0x60, 0xaf, 0x04, 0x30, 0x2a, 0x42, - 0x0d, 0x43, 0x12, 0x44, 0x83, 0x30, 0x5a, 0x42, 0xfe, 0x6c, 0x18, 0xfe, 0xed, 0x18, 0xfe, 0x44, - 0x54, 0xfe, 0xe5, 0x54, 0x36, 0x43, 0x21, 0x44, 0x04, 0x54, 0x2a, 0x69, 0x94, 0xfe, 0xe3, 0x54, - 0xfe, 0x74, 0x18, 0xfe, 0xf5, 0x18, 0x94, 0xfe, 0xe3, 0x54, 0x95, 0xca, 0x53, 0xfe, 0xf2, 0x08, - 0x02, 0x58, 0xfe, 0x37, 0xf0, 0xfe, 0xfe, 0x09, 0xfe, 0x8b, 0xf0, 0xfe, 0x84, 0x09, 0x02, 0x58, - 0xfb, 0xb2, 0x0b, 0x28, 0xfe, 0x1e, 0x0b, 0x36, 0x54, 0x21, 0x69, 0x53, 0x7a, 0x08, 0xfe, 0xc0, - 0x07, 0x47, 0x62, 0x00, 0xd9, 0xfe, 0x01, 0x59, 0xfe, 0x52, 0xf0, 0xfe, 0x30, 0x0a, 0x94, 0x99, - 0xfe, 0x48, 0x0a, 0x36, 0x54, 0x94, 0xfe, 0xe3, 0x54, 0x4e, 0x54, 0x70, 0x69, 0xfe, 0x14, 0x58, - 0xfe, 0x95, 0x58, 0x02, 0x58, 0x36, 0x54, 0x21, 0x69, 0xfe, 0x14, 0x59, 0xfe, 0x95, 0x59, 0xf0, - 0x4e, 0x54, 0x4e, 0x69, 0x02, 0x58, 0x0a, 0x07, 0x60, 0xfe, 0x82, 0x12, 0x0a, 0x07, 0x22, 0xfe, - 0x66, 0x13, 0x29, 0x68, 0x72, 0xd0, 0xfe, 0x83, 0x80, 0xfe, 0xc8, 0x44, 0xfe, 0x2e, 0x13, 0xfe, - 0x04, 0x91, 0xfe, 0x86, 0x91, 0x6d, 0x31, 0xfe, 0x40, 0x59, 0xfe, 0xc1, 0x59, 0x53, 0xfe, 0xfa, - 0x08, 0x04, 0x66, 0x2a, 0x67, 0x0d, 0xb5, 0x12, 0x93, 0x4e, 0x66, 0x70, 0x67, 0x01, 0xc5, 0xb6, - 0x6d, 0x31, 0x16, 0x68, 0x83, 0x30, 0x5a, 0x42, 0x36, 0x43, 0x21, 0x44, 0x95, 0xca, 0xfe, 0x04, - 0xfa, 0x30, 0xfe, 0x05, 0xfa, 0x42, 0x01, 0xfe, 0xbe, 0x13, 0xfe, 0x36, 0x10, 0x2b, 0x0d, 0xb5, - 0x0d, 0x93, 0x36, 0x43, 0x21, 0x44, 0xb0, 0x0a, 0x07, 0x22, 0x19, 0xfe, 0xfa, 0x08, 0x36, 0x3c, - 0x21, 0x3d, 0x0a, 0x07, 0xfe, 0xf7, 0x00, 0x39, 0x04, 0x64, 0x2a, 0x65, 0xfe, 0x10, 0x58, 0xfe, - 0x91, 0x58, 0x4e, 0x54, 0x70, 0x69, 0x02, 0xfe, 0x18, 0x0a, 0x0a, 0x07, 0x22, 0x19, 0xfe, 0xfa, - 0x08, 0x0a, 0x07, 0xfe, 0xf7, 0x00, 0x39, 0xf0, 0xdf, 0x6a, 0xfe, 0x10, 0x90, 0xfe, 0x92, 0x90, - 0xfe, 0xd3, 0x10, 0x40, 0x05, 0xcb, 0x19, 0xfe, 0x2c, 0x09, 0x11, 0xcb, 0xfb, 0xb2, 0x0b, 0xfe, - 0x14, 0x13, 0x04, 0x3c, 0x2a, 0x3d, 0x53, 0xfe, 0x2c, 0x09, 0xfe, 0x0c, 0x58, 0xfe, 0x8d, 0x58, - 0x02, 0x58, 0x2b, 0x47, 0xfe, 0x19, 0x80, 0xfe, 0xf1, 0x10, 0x0a, 0x07, 0x0b, 0xab, 0xfe, 0x6c, - 0x19, 0xfe, 0x19, 0x41, 0xfe, 0x8e, 0x10, 0xfe, 0x6c, 0x19, 0x4e, 0x3c, 0xfe, 0xed, 0x19, 0x70, - 0x3d, 0xfe, 0x0c, 0x51, 0xfe, 0x8e, 0x51, 0xfe, 0x6b, 0x18, 0x1a, 0xfe, 0x00, 0xff, 0x35, 0xfe, - 0x74, 0x10, 0xcd, 0xfe, 0xd2, 0xf0, 0xfe, 0xb6, 0x0b, 0xfe, 0x76, 0x18, 0x1a, 0x18, 0xd6, 0x04, - 0xe7, 0x1a, 0x06, 0x89, 0x13, 0xfe, 0x16, 0x00, 0x02, 0x6b, 0xfe, 0xd1, 0xf0, 0xfe, 0xc8, 0x0b, - 0x17, 0x84, 0x01, 0x3b, 0x13, 0xfe, 0x17, 0x00, 0xfe, 0x42, 0x10, 0xfe, 0xce, 0xf0, 0xfe, 0xce, - 0x0b, 0xfe, 0x3c, 0x10, 0xfe, 0xcd, 0xf0, 0xfe, 0xda, 0x0b, 0x13, 0xfe, 0x22, 0x00, 0x02, 0x6b, - 0xfe, 0xcb, 0xf0, 0xfe, 0xe6, 0x0b, 0x13, 0xfe, 0x24, 0x00, 0x02, 0x6b, 0xfe, 0xd0, 0xf0, 0xfe, - 0xf0, 0x0b, 0x13, 0xb1, 0xe0, 0xfe, 0xcf, 0xf0, 0xfe, 0xfa, 0x0b, 0x13, 0x8f, 0xdd, 0xfe, 0xcc, - 0xf0, 0xfe, 0x0a, 0x0c, 0xfe, 0x84, 0x80, 0xb2, 0x22, 0x4f, 0x13, 0xfe, 0x12, 0x00, 0x2e, 0x08, - 0x84, 0x2f, 0xfe, 0x10, 0x0c, 0xfe, 0x9e, 0xf0, 0xfe, 0x24, 0x0c, 0xa3, 0x19, 0x32, 0x2e, 0x5b, - 0xfe, 0xed, 0x10, 0xac, 0x26, 0xae, 0x26, 0x2e, 0xfe, 0x9c, 0x32, 0x2f, 0xfe, 0x30, 0x0c, 0x1b, - 0x32, 0x85, 0xfe, 0x4c, 0x0c, 0x73, 0x97, 0xac, 0xfe, 0xf0, 0x07, 0xae, 0xfe, 0xf0, 0x07, 0x02, - 0x26, 0x01, 0x55, 0xfe, 0xdb, 0x10, 0x11, 0xfe, 0xe8, 0x00, 0xed, 0xee, 0x92, 0x86, 0x76, 0xfe, - 0x89, 0xf0, 0x26, 0x24, 0x23, 0xfe, 0xe9, 0x09, 0x01, 0x0c, 0x86, 0x76, 0x1f, 0x26, 0x24, 0x23, - 0x9a, 0x34, 0xfe, 0x88, 0x0c, 0x1b, 0x32, 0x02, 0xfe, 0x7c, 0x0c, 0xa3, 0x50, 0x13, 0xfe, 0x42, - 0x00, 0x02, 0x6b, 0xa6, 0x06, 0xfe, 0x81, 0x49, 0xfe, 0xcc, 0x12, 0x0a, 0x07, 0x0b, 0xfe, 0x5a, - 0x13, 0x13, 0x00, 0x61, 0x0b, 0xfe, 0x6a, 0x12, 0x61, 0xfe, 0x28, 0x00, 0x28, 0xfe, 0xce, 0x0d, - 0x0f, 0x7d, 0x01, 0x15, 0x05, 0x00, 0x89, 0x37, 0xfe, 0x28, 0x00, 0x02, 0xfe, 0xce, 0x0d, 0x01, - 0x9f, 0x01, 0xa1, 0x0f, 0xc8, 0x01, 0xfe, 0x24, 0x0f, 0xb9, 0x08, 0x3f, 0x09, 0xa2, 0x01, 0x45, - 0x11, 0x48, 0x08, 0x1e, 0x09, 0x52, 0x01, 0x7e, 0x02, 0x27, 0x13, 0xfe, 0x44, 0x00, 0x61, 0x0b, - 0xab, 0x37, 0x0b, 0xfe, 0xc0, 0x10, 0x01, 0xc2, 0x37, 0x0b, 0xfe, 0xb6, 0x10, 0x01, 0xc2, 0xfe, - 0x19, 0x82, 0xfe, 0x34, 0x46, 0xfe, 0x0a, 0x13, 0x37, 0x0b, 0x13, 0xfe, 0x43, 0x00, 0xfe, 0xa2, - 0x10, 0x0a, 0x41, 0x0b, 0x39, 0x01, 0x9f, 0x01, 0xa1, 0xb9, 0x08, 0x3f, 0x09, 0xa2, 0x01, 0x45, - 0x11, 0x48, 0x08, 0x1e, 0x09, 0x52, 0x01, 0x7e, 0x88, 0x0b, 0xb9, 0x1c, 0xd2, 0x02, 0xfe, 0x4c, - 0x03, 0x0a, 0x07, 0x0b, 0xd6, 0x37, 0x0b, 0x13, 0x00, 0xfe, 0x54, 0x10, 0x71, 0x07, 0x1d, 0xfe, - 0x50, 0x12, 0x0a, 0x07, 0x1d, 0xfe, 0x48, 0x13, 0xfe, 0x1c, 0x1c, 0xfe, 0x9d, 0xf0, 0xfe, 0x8c, - 0x0d, 0xfe, 0x1c, 0x1c, 0xfe, 0x9d, 0xf0, 0xfe, 0x92, 0x0d, 0x0a, 0x41, 0x1d, 0x39, 0xfe, 0x95, - 0x10, 0x13, 0xfe, 0x15, 0x00, 0xfe, 0x04, 0xe6, 0x0b, 0x6a, 0xfe, 0x26, 0x10, 0x13, 0xfe, 0x13, - 0x00, 0xdd, 0x13, 0xfe, 0x47, 0x00, 0x8a, 0x13, 0xfe, 0x41, 0x00, 0xa4, 0x13, 0xfe, 0x24, 0x00, - 0x04, 0x7c, 0x2c, 0x28, 0xf6, 0x6a, 0xfe, 0x04, 0xe6, 0x1d, 0xfe, 0x9d, 0x41, 0xfe, 0x1c, 0x42, - 0xb9, 0x01, 0xea, 0x02, 0x27, 0xde, 0x17, 0x0b, 0x4c, 0xfe, 0x9b, 0x00, 0xe5, 0x17, 0xfe, 0x31, - 0x00, 0x4c, 0xc4, 0x01, 0xfe, 0x30, 0x10, 0x02, 0xfe, 0xc6, 0x01, 0x1c, 0xfe, 0x06, 0xec, 0xfe, - 0xb9, 0x00, 0x8c, 0x37, 0x38, 0xc7, 0x35, 0x1c, 0xfe, 0x06, 0xea, 0xfe, 0xb9, 0x00, 0xfe, 0x47, - 0x4b, 0x9e, 0xfe, 0x75, 0x57, 0x04, 0x5f, 0xfe, 0x98, 0x56, 0xfe, 0x28, 0x12, 0x0f, 0x7d, 0xfe, - 0xf4, 0x14, 0x47, 0xf2, 0x0f, 0xc8, 0xfe, 0xea, 0x14, 0xfe, 0x49, 0x54, 0x98, 0xfe, 0x42, 0x0e, - 0x0f, 0x1e, 0xfe, 0xde, 0x14, 0xfe, 0x44, 0x48, 0x02, 0xfe, 0x4c, 0x03, 0x0f, 0x5f, 0xfe, 0xc8, - 0x14, 0x8c, 0x37, 0x38, 0xc7, 0x35, 0x1c, 0xfe, 0xce, 0x47, 0xfe, 0xbd, 0x13, 0x02, 0x27, 0x29, - 0x2d, 0x05, 0x10, 0xfe, 0x78, 0x12, 0x2b, 0x16, 0x5e, 0x16, 0xb4, 0x29, 0x48, 0x47, 0x4c, 0x48, - 0xa3, 0xd9, 0xfe, 0xbc, 0xf0, 0xfe, 0xde, 0x0e, 0x08, 0x06, 0x16, 0x5e, 0x01, 0xfe, 0xe6, 0x16, - 0x04, 0xfe, 0x38, 0x01, 0x2a, 0xfe, 0x3a, 0x01, 0x53, 0xfe, 0xe2, 0x0e, 0x04, 0xfe, 0x38, 0x01, - 0x1a, 0xfe, 0xf0, 0xff, 0x0d, 0xfe, 0x60, 0x01, 0x04, 0xfe, 0x3a, 0x01, 0x0d, 0xfe, 0x62, 0x01, - 0x20, 0x06, 0x16, 0x48, 0xfe, 0x04, 0xec, 0x2d, 0x08, 0x2d, 0x09, 0x3e, 0x1c, 0x01, 0x45, 0x82, - 0xfe, 0x05, 0xf6, 0xfe, 0x34, 0x01, 0x01, 0xfe, 0x56, 0x17, 0x11, 0x48, 0xd2, 0x08, 0x06, 0x03, - 0x2b, 0x03, 0x29, 0x5e, 0xfe, 0xf7, 0x12, 0x29, 0xb4, 0x72, 0x16, 0xb4, 0x05, 0x84, 0xfe, 0x93, - 0x13, 0xfe, 0x24, 0x1c, 0x17, 0x18, 0x4c, 0xfe, 0x9b, 0x00, 0xe5, 0xfe, 0xd9, 0x10, 0x9c, 0xfe, - 0x03, 0xdc, 0xfe, 0x73, 0x57, 0xfe, 0x80, 0x5d, 0x03, 0x9c, 0xfe, 0x03, 0xdc, 0xfe, 0x5b, 0x57, - 0xfe, 0x80, 0x5d, 0x03, 0xfe, 0x03, 0x57, 0x9c, 0x2b, 0xfe, 0x00, 0xcc, 0x03, 0xfe, 0x03, 0x57, - 0x9c, 0x80, 0x03, 0x01, 0xfe, 0x8e, 0x17, 0x40, 0x05, 0x48, 0xfe, 0x0a, 0x13, 0x08, 0x1e, 0x09, - 0x52, 0xdd, 0x01, 0x9f, 0x01, 0xa1, 0x08, 0x3f, 0x09, 0xa2, 0x01, 0x45, 0x11, 0xfe, 0xe9, 0x00, - 0x0a, 0x07, 0x8f, 0xfe, 0x52, 0x13, 0x01, 0xfe, 0x18, 0x17, 0xfe, 0x1e, 0x1c, 0xfe, 0x14, 0x90, - 0x0d, 0xfe, 0x64, 0x01, 0xfe, 0x16, 0x90, 0x0d, 0xfe, 0x66, 0x01, 0x0a, 0x07, 0x46, 0xef, 0xfe, - 0x03, 0x80, 0x5b, 0x4d, 0x11, 0x7b, 0x08, 0x2d, 0x09, 0x3e, 0x1c, 0x7a, 0x01, 0x90, 0xfe, 0x62, - 0x08, 0x72, 0x4d, 0x11, 0x7b, 0x08, 0x2d, 0x09, 0x3e, 0x1c, 0x7a, 0x01, 0x90, 0x6d, 0x31, 0x11, - 0x7b, 0x08, 0x2d, 0x09, 0x3e, 0x1c, 0x7a, 0x01, 0x7e, 0x03, 0xfe, 0x08, 0x1c, 0x04, 0xfe, 0xac, - 0x00, 0xfe, 0x06, 0x58, 0x04, 0xfe, 0xae, 0x00, 0xfe, 0x07, 0x58, 0x04, 0xfe, 0xb0, 0x00, 0xfe, - 0x08, 0x58, 0x04, 0xfe, 0xb2, 0x00, 0xfe, 0x09, 0x58, 0xfe, 0x0a, 0x1c, 0x20, 0x74, 0x16, 0xfe, - 0xb9, 0x00, 0x2b, 0x0d, 0x5c, 0x0d, 0x56, 0x20, 0x10, 0x16, 0x2d, 0x16, 0x3e, 0x51, 0xa6, 0xfe, - 0x93, 0x00, 0x08, 0x2d, 0x09, 0x3e, 0x1c, 0x01, 0x7e, 0x82, 0x11, 0x7b, 0xfe, 0x14, 0x56, 0xfe, - 0xd6, 0xf0, 0x8a, 0xde, 0x92, 0xfe, 0x14, 0x1c, 0xfe, 0x10, 0x1c, 0xfe, 0x18, 0x1c, 0x03, 0x1c, - 0xfe, 0x0c, 0x14, 0x8c, 0xfe, 0x07, 0xe6, 0x38, 0xfe, 0xce, 0x47, 0xfe, 0xf5, 0x13, 0x03, 0x01, - 0xc2, 0x0f, 0x3f, 0x01, 0x15, 0x05, 0x10, 0xdb, 0x0f, 0x1e, 0x01, 0x15, 0x05, 0x10, 0xe2, 0xfe, - 0x44, 0x58, 0x4d, 0xfe, 0x01, 0xec, 0xc4, 0xfe, 0x9e, 0x40, 0xfe, 0x9d, 0xe7, 0x00, 0xfe, 0x9c, - 0xe7, 0x1d, 0xa5, 0x31, 0x01, 0xea, 0xfe, 0xc9, 0x10, 0x03, 0x2e, 0x86, 0x76, 0x24, 0x23, 0xba, - 0x05, 0x1d, 0xfe, 0x48, 0x12, 0x05, 0x0b, 0xfe, 0x4c, 0x12, 0x05, 0x18, 0xfe, 0x30, 0x12, 0x05, - 0xd4, 0x19, 0xfe, 0xd4, 0x11, 0x05, 0xfe, 0x23, 0x00, 0x19, 0xfe, 0xe0, 0x11, 0x05, 0x06, 0x19, - 0xfe, 0x3e, 0x12, 0x05, 0x22, 0xfe, 0x12, 0x12, 0x05, 0x00, 0x19, 0x26, 0x17, 0xd4, 0x01, 0x3b, - 0xce, 0x3a, 0x01, 0x0c, 0x85, 0x55, 0x03, 0x3a, 0x11, 0xfe, 0xcc, 0x00, 0x02, 0x27, 0x3a, 0x40, - 0x05, 0xcb, 0xfe, 0xe3, 0x13, 0x36, 0x3c, 0x21, 0x3d, 0x53, 0xfe, 0x92, 0x11, 0x0a, 0x07, 0x60, - 0xfe, 0x72, 0x12, 0x83, 0x30, 0x5a, 0x42, 0x95, 0xca, 0x98, 0xfe, 0x5c, 0x11, 0x29, 0x68, 0xfe, - 0x26, 0x13, 0x04, 0xb5, 0x2a, 0x93, 0x53, 0xfe, 0xb2, 0x0d, 0x0d, 0x66, 0x12, 0x67, 0x2b, 0x0d, - 0xb5, 0x0d, 0x93, 0x01, 0xc5, 0x20, 0x74, 0x5b, 0x16, 0x68, 0x01, 0xfe, 0xbe, 0x13, 0x83, 0x30, - 0x5a, 0x42, 0xfe, 0x04, 0x55, 0xfe, 0xa5, 0x55, 0xfe, 0x04, 0xfa, 0x30, 0xfe, 0x05, 0xfa, 0x42, - 0xfe, 0x91, 0x10, 0x04, 0x43, 0x2a, 0x44, 0xfe, 0x40, 0x56, 0xfe, 0xe1, 0x56, 0x0d, 0x43, 0x12, - 0x44, 0xad, 0x83, 0x30, 0x5a, 0x42, 0x95, 0xca, 0x04, 0x64, 0x2a, 0x65, 0xfe, 0x00, 0x56, 0xfe, - 0xa1, 0x56, 0x0d, 0x64, 0x12, 0x65, 0x0a, 0x07, 0x60, 0xfe, 0x1e, 0x12, 0x29, 0x68, 0xfe, 0x1f, - 0x40, 0x04, 0x66, 0x2a, 0x67, 0xfe, 0x2c, 0x50, 0xfe, 0xae, 0x50, 0x04, 0x43, 0x2a, 0x44, 0xfe, - 0x34, 0x50, 0xfe, 0xb6, 0x50, 0x04, 0x64, 0x2a, 0x65, 0xfe, 0x08, 0x50, 0xfe, 0x8a, 0x50, 0x04, - 0x3c, 0x2a, 0x3d, 0xfe, 0x28, 0x50, 0xfe, 0xaa, 0x50, 0x02, 0xa0, 0x20, 0x06, 0x16, 0xfc, 0x02, - 0x7f, 0x3a, 0x01, 0x0c, 0x1f, 0x57, 0x24, 0x23, 0xba, 0x05, 0x06, 0x28, 0x57, 0x40, 0x05, 0xcb, - 0x28, 0x7f, 0x01, 0xfe, 0x9c, 0x13, 0x1a, 0x59, 0x19, 0x57, 0x0a, 0x07, 0x0b, 0xe4, 0x36, 0x3c, - 0x21, 0x3d, 0xfe, 0x0a, 0x55, 0x35, 0xfe, 0x8b, 0x55, 0x4e, 0x3c, 0x70, 0x3d, 0xfe, 0x0c, 0x51, - 0xfe, 0x8e, 0x51, 0x02, 0x7f, 0xdf, 0xfe, 0x0a, 0x45, 0xfe, 0x19, 0x41, 0x02, 0x7f, 0x3a, 0x01, - 0x0c, 0x1f, 0xfe, 0xd6, 0x10, 0x24, 0x23, 0xfe, 0xe9, 0x09, 0x61, 0x18, 0xfe, 0x94, 0x12, 0x61, - 0x0b, 0x4f, 0x02, 0x57, 0x2f, 0xfe, 0x5e, 0x12, 0x1b, 0x32, 0x1f, 0xfe, 0xd6, 0x10, 0x24, 0x23, - 0x9a, 0x05, 0x18, 0x28, 0x57, 0x01, 0x0c, 0x1f, 0xfe, 0xd6, 0x10, 0x24, 0x23, 0xfe, 0xe8, 0x09, - 0x51, 0x04, 0xfe, 0x9c, 0x00, 0x2c, 0x35, 0xfe, 0xbb, 0x45, 0x61, 0x00, 0x50, 0x37, 0x06, 0xa6, - 0x59, 0xfe, 0xc0, 0x14, 0xfe, 0xf8, 0x14, 0xb3, 0x40, 0x05, 0xc9, 0xfe, 0x16, 0x13, 0x04, 0xfe, - 0x9e, 0x00, 0x2c, 0xd6, 0x04, 0x56, 0x2c, 0x35, 0x63, 0x02, 0x7f, 0xfe, 0xc0, 0x5d, 0xfe, 0xe4, - 0x14, 0xfe, 0x03, 0x17, 0x04, 0x5c, 0xc3, 0x0d, 0x5c, 0x63, 0x3a, 0x01, 0x0c, 0x25, 0xa0, 0x01, - 0xfe, 0x06, 0x15, 0x02, 0xa0, 0x2f, 0xfe, 0xe8, 0x12, 0x1b, 0x32, 0x1f, 0x57, 0x24, 0x23, 0x9a, - 0x05, 0x06, 0x28, 0x57, 0xfe, 0xf6, 0x14, 0xfe, 0x42, 0x58, 0xfe, 0x70, 0x14, 0xfe, 0x92, 0x14, - 0xb3, 0xfe, 0x4a, 0xf4, 0x0b, 0x19, 0x57, 0xfe, 0x4a, 0xf4, 0x06, 0xd8, 0x40, 0x05, 0xc9, 0xd1, - 0x02, 0x7f, 0x04, 0x56, 0xc3, 0x0d, 0x56, 0x63, 0x3a, 0x01, 0x0c, 0x25, 0xa0, 0x01, 0xfe, 0x34, - 0x15, 0x02, 0xa0, 0x25, 0xfe, 0x50, 0x13, 0x78, 0xf9, 0x78, 0x03, 0x34, 0xfe, 0x4c, 0x13, 0x73, - 0xfe, 0x4c, 0x13, 0x63, 0x3a, 0x01, 0x0c, 0xfe, 0xe3, 0x10, 0x08, 0x6c, 0xff, 0x02, 0x00, 0x57, - 0x6e, 0x81, 0x1a, 0xfe, 0xff, 0x7f, 0xfe, 0x30, 0x56, 0xfe, 0x00, 0x5c, 0x03, 0x08, 0x6c, 0xff, - 0x02, 0x00, 0x57, 0x6e, 0x81, 0x1a, 0x59, 0xfe, 0x30, 0x56, 0xfe, 0x00, 0x5c, 0x03, 0x08, 0x6c, - 0xff, 0x02, 0x00, 0x57, 0x6e, 0x81, 0x03, 0x08, 0x6c, 0xff, 0x02, 0x00, 0x57, 0x6e, 0x81, 0xfe, - 0x0b, 0x58, 0x03, 0x0f, 0x5c, 0x01, 0x8e, 0x0f, 0x56, 0x01, 0x8e, 0x03, 0xd0, 0x1a, 0x10, 0xff, - 0x03, 0x00, 0x54, 0xfe, 0x00, 0xf4, 0x22, 0x6e, 0xfe, 0x00, 0x7d, 0xfe, 0x01, 0x7d, 0xfe, 0x02, - 0x7d, 0xfe, 0x03, 0x7c, 0x6d, 0x31, 0x0d, 0x64, 0x12, 0x65, 0x4e, 0x43, 0x70, 0x44, 0x03, 0xfe, - 0x62, 0x18, 0xfe, 0x82, 0x5a, 0xfe, 0xe1, 0x1a, 0xbf, 0xfe, 0x02, 0x58, 0x03, 0x01, 0xfe, 0x7e, - 0x19, 0xfe, 0x42, 0x48, 0x6a, 0x51, 0x9e, 0x01, 0x0c, 0x1f, 0xfe, 0xfe, 0x14, 0x24, 0x23, 0xfe, - 0xe9, 0x09, 0xfe, 0xc1, 0x59, 0x01, 0x0c, 0x1f, 0xfe, 0xfe, 0x14, 0x24, 0x23, 0xfe, 0xe8, 0x0a, - 0x04, 0xfe, 0x9e, 0x00, 0x2c, 0xfe, 0xc4, 0x12, 0x2b, 0xb8, 0x1d, 0xe4, 0x61, 0xd5, 0x79, 0xfe, - 0x4c, 0x14, 0x4f, 0x08, 0x06, 0x09, 0xd5, 0xa6, 0xfe, 0x00, 0x10, 0xfe, 0x78, 0x10, 0xff, 0x02, - 0x83, 0x55, 0x8a, 0xff, 0x02, 0x83, 0x55, 0xb8, 0x18, 0xfe, 0x12, 0x13, 0x62, 0xfe, 0x30, 0x00, - 0x98, 0xfe, 0xa6, 0x14, 0x09, 0x8b, 0x08, 0x06, 0xfe, 0x56, 0x10, 0xb8, 0x0b, 0xfe, 0x16, 0x13, - 0x62, 0xfe, 0x64, 0x00, 0x98, 0xfe, 0xa6, 0x14, 0x0f, 0xfe, 0x64, 0x00, 0x09, 0xb1, 0x08, 0x06, - 0xfe, 0x28, 0x10, 0xb8, 0x06, 0xfe, 0x60, 0x13, 0x62, 0xfe, 0xc8, 0x00, 0x98, 0xfe, 0xa6, 0x14, - 0x0f, 0xfe, 0xc8, 0x00, 0x09, 0x5e, 0x08, 0x06, 0xad, 0x62, 0xfe, 0x90, 0x01, 0x99, 0xfe, 0xb2, - 0x14, 0x9e, 0xb0, 0xfe, 0x43, 0xf4, 0xb4, 0xfe, 0x56, 0xf0, 0xfe, 0xc4, 0x14, 0xfe, 0x04, 0xf4, - 0x6c, 0xfe, 0x43, 0xf4, 0xb1, 0xfe, 0xf3, 0x10, 0xb7, 0x01, 0xfe, 0x8e, 0x13, 0x1a, 0x59, 0xaf, - 0xfe, 0x00, 0x17, 0xfe, 0x4d, 0xe4, 0x74, 0x99, 0xfe, 0xf8, 0x14, 0xa8, 0x74, 0xfe, 0x14, 0x10, - 0xfe, 0x00, 0x17, 0xfe, 0x4d, 0xe4, 0xf1, 0x99, 0xfe, 0xf8, 0x14, 0xa8, 0xf1, 0xa4, 0x51, 0x9e, - 0x08, 0x06, 0xfe, 0xb4, 0x56, 0xfe, 0xc3, 0x58, 0x03, 0x51, 0x08, 0x0b, 0x03, 0x14, 0x06, 0x01, - 0x0c, 0x25, 0xec, 0x14, 0x0b, 0x01, 0x0c, 0x25, 0xec, 0x14, 0x18, 0x01, 0x0c, 0x25, 0xec, 0x78, - 0xfe, 0x89, 0x49, 0x01, 0x0c, 0x03, 0x14, 0x06, 0x01, 0x0c, 0x25, 0xbc, 0x14, 0x18, 0x01, 0x0c, - 0x25, 0xbc, 0x14, 0x06, 0x01, 0x0c, 0x25, 0xbc, 0xfe, 0x89, 0x49, 0x01, 0x0c, 0x25, 0xbc, 0x78, - 0xfe, 0x89, 0x4a, 0x01, 0x0c, 0x03, 0x51, 0x03, 0x29, 0xe8, 0x05, 0x06, 0x3b, 0xb6, 0x16, 0xe8, - 0xfe, 0x49, 0xf4, 0x00, 0x4f, 0x78, 0xce, 0x63, 0xfe, 0x01, 0xec, 0xfe, 0x27, 0x01, 0xf9, 0x01, - 0x0c, 0x40, 0x05, 0xfe, 0xe3, 0x00, 0xfe, 0x20, 0x13, 0x1f, 0xfe, 0xb6, 0x15, 0x2b, 0x16, 0xfc, - 0x01, 0x55, 0x29, 0xfc, 0x05, 0x06, 0x50, 0x0a, 0x41, 0x06, 0x39, 0x03, 0x0d, 0x5d, 0x12, 0x91, - 0xfe, 0x43, 0x58, 0x01, 0x15, 0x05, 0x10, 0xfe, 0x1e, 0x12, 0x4a, 0xf3, 0x96, 0x01, 0x49, 0xfe, - 0x90, 0x4d, 0xe6, 0x10, 0xfe, 0xc5, 0x59, 0x01, 0x49, 0xfe, 0x8d, 0x56, 0xbf, 0x4a, 0x03, 0x4a, - 0x21, 0x91, 0x01, 0x15, 0x4a, 0x96, 0x01, 0x49, 0xeb, 0x10, 0xe6, 0x10, 0x21, 0x5d, 0x62, 0x1e, - 0x89, 0x0f, 0x5f, 0x01, 0xaa, 0x03, 0x0d, 0x5d, 0x12, 0x91, 0xfe, 0xc3, 0x58, 0x01, 0x15, 0x05, - 0x10, 0xfe, 0x1a, 0x12, 0x4a, 0xf3, 0x96, 0x01, 0x49, 0xeb, 0x10, 0xfe, 0x80, 0x4d, 0xfe, 0xc5, - 0x59, 0x01, 0x49, 0x4a, 0x03, 0x4a, 0x21, 0x5d, 0x01, 0x15, 0x4a, 0x96, 0x01, 0x49, 0xeb, 0x10, - 0xe6, 0x10, 0x21, 0x5d, 0x62, 0x1e, 0x89, 0x0f, 0x5f, 0x01, 0xaa, 0x03, 0x0d, 0x5d, 0x12, 0x91, - 0xfe, 0x43, 0x58, 0x01, 0x15, 0xfe, 0x42, 0x48, 0x96, 0x01, 0x49, 0xfe, 0xc0, 0x5a, 0xb7, 0xfe, - 0x00, 0xcd, 0xfe, 0x01, 0xcc, 0xfe, 0x4a, 0x46, 0xe4, 0x9c, 0x80, 0x05, 0x10, 0xfe, 0x2e, 0x13, - 0x5a, 0x5d, 0xfe, 0x4d, 0xf4, 0x1e, 0xfe, 0x1c, 0x13, 0x0f, 0x5f, 0x01, 0x8e, 0xb0, 0xfe, 0x40, - 0x4c, 0xfe, 0xc5, 0x58, 0x01, 0x49, 0xfe, 0x00, 0x07, 0x80, 0x05, 0x10, 0x89, 0x5a, 0x91, 0xfe, - 0x05, 0x57, 0xfe, 0x08, 0x10, 0xfe, 0x45, 0x58, 0x01, 0x49, 0xfe, 0x8d, 0x56, 0xbf, 0xfe, 0x80, - 0x4c, 0xfe, 0x05, 0x17, 0x03, 0x09, 0x10, 0x77, 0x6f, 0xfe, 0x60, 0x01, 0xfe, 0x18, 0xdf, 0xfe, - 0x19, 0xde, 0xfe, 0x24, 0x1c, 0xe3, 0x38, 0x9d, 0xfe, 0xfa, 0x16, 0x01, 0xfe, 0x08, 0x18, 0xd9, - 0x8d, 0x38, 0x6f, 0xfe, 0x2c, 0x01, 0xfe, 0x2f, 0x19, 0x03, 0xc0, 0x28, 0xfe, 0xea, 0x16, 0xfe, - 0xe2, 0x10, 0x09, 0x10, 0x77, 0x04, 0xfe, 0x64, 0x01, 0xfe, 0x00, 0xf4, 0x22, 0xfe, 0x18, 0x58, - 0x04, 0xfe, 0x66, 0x01, 0xfe, 0x19, 0x58, 0x8d, 0x22, 0xfe, 0x3c, 0x90, 0xfe, 0x30, 0xf4, 0x06, - 0xfe, 0x3c, 0x50, 0x6f, 0xfe, 0x38, 0x00, 0xfe, 0x0f, 0x79, 0xfe, 0x1c, 0xf7, 0x22, 0x9d, 0xfe, - 0x44, 0x17, 0xfe, 0xbe, 0x14, 0x35, 0x03, 0xc0, 0x28, 0xfe, 0x1c, 0x17, 0xfe, 0xa4, 0x10, 0x09, - 0x10, 0x77, 0xbf, 0xfe, 0x18, 0xdf, 0xfe, 0x19, 0xdf, 0xe3, 0x30, 0x9d, 0xfe, 0x66, 0x17, 0xfe, - 0x9c, 0x14, 0xfe, 0x18, 0x13, 0x8d, 0x30, 0x6f, 0x1d, 0xfe, 0xaf, 0x19, 0xfe, 0x98, 0xe7, 0x00, - 0xa7, 0x07, 0xfe, 0x7f, 0x00, 0xfe, 0x05, 0x40, 0x03, 0xc0, 0x28, 0xfe, 0x5a, 0x17, 0xfe, 0x6c, - 0x10, 0x09, 0x10, 0x77, 0xfe, 0x30, 0xbc, 0xfe, 0xb2, 0xbc, 0x8d, 0xe1, 0x6f, 0x1d, 0xfe, 0x0f, - 0x79, 0xfe, 0x1c, 0xf7, 0xe1, 0x9d, 0xfe, 0xa6, 0x17, 0xfe, 0x5c, 0x14, 0x35, 0x03, 0xc0, 0x28, - 0xfe, 0x92, 0x17, 0xfe, 0x42, 0x10, 0xfe, 0x02, 0xf6, 0x10, 0x77, 0xfe, 0x18, 0xfe, 0x66, 0xfe, - 0x19, 0xfe, 0x67, 0xd0, 0xe3, 0x46, 0x9d, 0xfe, 0xcc, 0x17, 0xfe, 0x36, 0x14, 0xfe, 0x1c, 0x13, - 0x8d, 0x46, 0x47, 0xfe, 0x83, 0x58, 0xfe, 0xaf, 0x19, 0xfe, 0x80, 0xe7, 0x10, 0xfe, 0x81, 0xe7, - 0x10, 0x11, 0xfe, 0xdd, 0x00, 0x6d, 0x31, 0x03, 0x6d, 0x31, 0xfe, 0x12, 0x45, 0x28, 0xfe, 0xbc, - 0x17, 0x17, 0x06, 0x4c, 0xfe, 0x9b, 0x00, 0xe5, 0x02, 0x27, 0xfe, 0x39, 0xf0, 0xfe, 0x10, 0x18, - 0x2b, 0x03, 0xfe, 0x7e, 0x18, 0x1a, 0x18, 0x87, 0x08, 0x0e, 0x03, 0x77, 0x04, 0xe7, 0x1a, 0x06, - 0xfe, 0xef, 0x12, 0xfe, 0xe1, 0x10, 0x1c, 0x0f, 0x1e, 0x01, 0x15, 0x05, 0x10, 0x50, 0x4d, 0xfe, - 0x78, 0x14, 0xfe, 0x34, 0x12, 0x59, 0x8c, 0x37, 0x38, 0xc7, 0xfe, 0xe9, 0x13, 0x1c, 0x0f, 0x3f, - 0x01, 0x15, 0x05, 0x10, 0x50, 0x4d, 0xfe, 0x56, 0x14, 0xe9, 0x59, 0x8c, 0x37, 0x38, 0xc7, 0xfe, - 0xe9, 0x13, 0x09, 0x0b, 0x03, 0xfe, 0x9c, 0xe7, 0x0b, 0x13, 0xfe, 0x15, 0x00, 0x7a, 0xa5, 0x31, - 0x01, 0xea, 0x09, 0x06, 0x03, 0x0a, 0x41, 0x38, 0x39, 0x08, 0x3f, 0x09, 0xa2, 0x01, 0x45, 0x11, - 0x48, 0x08, 0x1e, 0x09, 0x52, 0x01, 0x7e, 0x09, 0x06, 0x03, 0xfe, 0x38, 0x90, 0xfe, 0xba, 0x90, - 0x36, 0xfe, 0xa8, 0x00, 0x21, 0x7b, 0xfe, 0x48, 0x55, 0x35, 0xfe, 0xc9, 0x55, 0x03, 0x29, 0xc6, - 0x5b, 0x16, 0xc6, 0x03, 0x0f, 0xc8, 0x01, 0x15, 0xf2, 0x0f, 0x7d, 0x01, 0x15, 0xfe, 0x49, 0x44, - 0x28, 0xfe, 0x06, 0x19, 0x0f, 0x1e, 0x01, 0x15, 0x05, 0x10, 0x50, 0x0f, 0x5f, 0x01, 0xaa, 0x0f, - 0x7d, 0x01, 0x15, 0x5b, 0x80, 0x03, 0xfe, 0x40, 0x5e, 0xfe, 0xe2, 0x08, 0xfe, 0xc0, 0x4c, 0x29, - 0x3e, 0x05, 0x10, 0xfe, 0x52, 0x12, 0x4d, 0x05, 0x00, 0xfe, 0x18, 0x12, 0xfe, 0xe1, 0x18, 0xfe, - 0x19, 0xf4, 0xfe, 0x7f, 0x00, 0xaf, 0xfe, 0xe2, 0x08, 0x5b, 0x4d, 0x40, 0x05, 0x7b, 0xab, 0xfe, - 0x82, 0x48, 0xfe, 0x01, 0x80, 0xfe, 0xd7, 0x10, 0xfe, 0xc4, 0x48, 0x08, 0x2d, 0x09, 0x3e, 0xfe, - 0x40, 0x5f, 0x1c, 0x01, 0x45, 0x11, 0xfe, 0xdd, 0x00, 0xfe, 0x14, 0x46, 0x08, 0x2d, 0x09, 0x3e, - 0x01, 0x45, 0x11, 0xfe, 0xdd, 0x00, 0xfe, 0x40, 0x4a, 0x72, 0xfe, 0x06, 0x17, 0xfe, 0x01, 0x07, - 0xfe, 0x82, 0x48, 0xfe, 0x04, 0x17, 0x03, 0xf5, 0x18, 0x79, 0xfe, 0x8e, 0x19, 0x04, 0xfe, 0x90, - 0x00, 0xfe, 0x3a, 0x45, 0xfe, 0x2c, 0x10, 0xf5, 0xd4, 0x79, 0xfe, 0xa0, 0x19, 0x04, 0xfe, 0x92, - 0x00, 0xcf, 0x1d, 0xe0, 0xf5, 0xfe, 0x0b, 0x00, 0x79, 0xfe, 0xb2, 0x19, 0x04, 0xfe, 0x94, 0x00, - 0xcf, 0x22, 0xfe, 0x08, 0x10, 0x04, 0xfe, 0x96, 0x00, 0xcf, 0x8b, 0xfe, 0x4e, 0x45, 0xd8, 0xfe, - 0x0a, 0x45, 0xff, 0x04, 0x68, 0x54, 0xfe, 0xf1, 0x10, 0x1a, 0x74, 0xfe, 0x08, 0x1c, 0xfe, 0x67, - 0x19, 0xfe, 0x0a, 0x1c, 0xfe, 0x1a, 0xf4, 0xfe, 0x00, 0x04, 0xd8, 0xfe, 0x48, 0xf4, 0x18, 0x99, - 0xfe, 0xe6, 0x19, 0x08, 0x18, 0x03, 0x05, 0x84, 0xfe, 0x5a, 0xf0, 0xfe, 0xf6, 0x19, 0x20, 0xfe, - 0x09, 0x00, 0xfe, 0x34, 0x10, 0x05, 0x1d, 0xfe, 0x5a, 0xf0, 0xfe, 0x04, 0x1a, 0x20, 0xd5, 0xfe, - 0x26, 0x10, 0x05, 0x18, 0x87, 0x20, 0x8b, 0xe0, 0x05, 0x0b, 0x87, 0x20, 0xb1, 0xfe, 0x0e, 0x10, - 0x05, 0x06, 0x87, 0x20, 0x5e, 0xce, 0xb6, 0x03, 0x17, 0xfe, 0x09, 0x00, 0x01, 0x3b, 0x2f, 0xfe, - 0x34, 0x1a, 0x04, 0x76, 0xb7, 0x03, 0x1b, 0xfe, 0x54, 0x1a, 0xfe, 0x14, 0xf0, 0x0c, 0x2f, 0xfe, - 0x48, 0x1a, 0x1b, 0xfe, 0x54, 0x1a, 0xfe, 0x82, 0xf0, 0xfe, 0x4c, 0x1a, 0x03, 0xff, 0x15, 0x00, - 0x00, + 0x00, 0x00, 0x00, 0xf2, 0x00, 0xf0, 0x00, 0xfc, 0x00, 0x16, 0x01, 0x00, 0x48, 0xe4, 0x03, 0xf6, + 0x18, 0xe4, 0x02, 0x00, 0x18, 0x80, 0x68, 0x19, 0x00, 0xfa, 0xff, 0xff, 0x00, 0xf6, 0x9e, 0xe7, + 0xff, 0x00, 0xc0, 0x0e, 0x82, 0xe7, 0x00, 0xea, 0x09, 0xe7, 0x01, 0xf6, 0x01, 0xfa, 0x03, 0x00, + 0x01, 0xe6, 0x55, 0xf0, 0x04, 0x00, 0x1e, 0xf0, 0x85, 0xf0, 0x18, 0xf4, 0x08, 0x00, 0xbc, 0x00, + 0x38, 0x54, 0x00, 0xec, 0xd5, 0xf0, 0x64, 0x0d, 0x00, 0xe6, 0x86, 0xf0, 0xb1, 0xf0, 0x98, 0x57, + 0x01, 0xfc, 0xb4, 0x00, 0xd4, 0x01, 0x0c, 0x1c, 0x3e, 0x1c, 0x10, 0x00, 0x3c, 0x00, 0xbb, 0x00, + 0x00, 0x10, 0x54, 0x19, 0x02, 0x80, 0x32, 0xf0, 0x5e, 0x0d, 0x02, 0x13, 0x58, 0x13, 0x18, 0x40, + 0x00, 0x57, 0x02, 0xfc, 0x03, 0xfc, 0x3e, 0x00, 0xc0, 0x00, 0x6c, 0x01, 0x6e, 0x01, 0x74, 0x01, + 0x76, 0x01, 0x6c, 0x10, 0xb4, 0x10, 0xb9, 0x54, 0x00, 0x80, 0x03, 0xe6, 0x01, 0xea, 0xb6, 0x00, + 0x01, 0x01, 0x3e, 0x01, 0x7a, 0x01, 0xae, 0x08, 0x04, 0x12, 0xbb, 0x55, 0x3c, 0x56, 0x3e, 0x57, + 0x03, 0x58, 0x1b, 0x80, 0x30, 0xe4, 0x4b, 0xe4, 0x5d, 0xf0, 0x02, 0xfa, 0x20, 0x00, 0x32, 0x00, + 0x40, 0x00, 0x80, 0x00, 0x24, 0x01, 0x3c, 0x01, 0x68, 0x01, 0x6a, 0x01, 0x70, 0x01, 0x72, 0x01, + 0x78, 0x01, 0x7c, 0x01, 0x62, 0x0a, 0x68, 0x0d, 0x08, 0x12, 0x06, 0x13, 0x4c, 0x1c, 0x02, 0x4a, + 0x02, 0xee, 0x5b, 0xf0, 0x03, 0xf7, 0x05, 0x00, 0x0c, 0x00, 0x0f, 0x00, 0x47, 0x00, 0xbe, 0x00, + 0x00, 0x01, 0xbe, 0x10, 0xfa, 0x15, 0x32, 0x1c, 0x38, 0x1c, 0x4e, 0x1c, 0x10, 0x44, 0x00, 0x4c, + 0x04, 0x80, 0x04, 0xea, 0x5c, 0xf0, 0xa7, 0xf0, 0x04, 0xf6, 0x03, 0xfa, 0x34, 0x00, 0x36, 0x00, + 0x98, 0x00, 0xcc, 0x00, 0x20, 0x01, 0x4e, 0x01, 0x2e, 0x0b, 0x26, 0x0c, 0xb6, 0x0e, 0x0c, 0x10, + 0xc0, 0x10, 0x0a, 0x12, 0x04, 0x13, 0x30, 0x1c, 0x02, 0x48, 0x00, 0x4e, 0x42, 0x54, 0x44, 0x55, + 0xbd, 0x56, 0x00, 0xdc, 0x4a, 0xe4, 0x05, 0xf0, 0x09, 0xf0, 0x59, 0xf0, 0xb8, 0xf0, 0x4b, 0xf4, + 0x06, 0xf7, 0x0e, 0xf7, 0x04, 0xfc, 0x05, 0xfc, 0x06, 0x00, 0x19, 0x00, 0x33, 0x00, 0xa4, 0x00, + 0xb5, 0x00, 0xba, 0x00, 0xd0, 0x00, 0xe1, 0x00, 0xe7, 0x00, 0xac, 0x0e, 0x02, 0x10, 0x04, 0x10, + 0x0a, 0x10, 0x0a, 0x13, 0x12, 0x13, 0xc2, 0x13, 0xd2, 0x13, 0xa2, 0x15, 0xa6, 0x15, 0x42, 0x17, + 0x34, 0x1c, 0x36, 0x1c, 0x08, 0x44, 0x38, 0x44, 0x91, 0x44, 0x48, 0x46, 0x01, 0x48, 0x68, 0x54, + 0x3a, 0x55, 0x83, 0x55, 0xe5, 0x55, 0xb0, 0x57, 0x01, 0x58, 0x83, 0x59, 0x06, 0x83, 0x19, 0xe4, + 0x05, 0xe6, 0x0b, 0xf0, 0x0c, 0xf0, 0x04, 0xf8, 0x05, 0xf8, 0x07, 0x00, 0x0a, 0x00, 0x1c, 0x00, + 0x3f, 0x00, 0x9b, 0x00, 0x9e, 0x00, 0xa8, 0x00, 0xaa, 0x00, 0xb9, 0x00, 0xe0, 0x00, 0x22, 0x01, + 0x26, 0x01, 0x79, 0x01, 0xc4, 0x01, 0xc6, 0x01, 0x74, 0x02, 0x5a, 0x03, 0xd6, 0x03, 0xd2, 0x04, + 0x7e, 0x06, 0xdc, 0x07, 0x68, 0x08, 0x69, 0x08, 0xba, 0x08, 0xe9, 0x09, 0xde, 0x0b, 0xd2, 0x0e, + 0x0e, 0x10, 0x1a, 0x10, 0xc8, 0x10, 0xed, 0x10, 0xf1, 0x10, 0x06, 0x12, 0x0c, 0x12, 0x0c, 0x13, + 0x10, 0x13, 0x16, 0x13, 0x1e, 0x13, 0xe4, 0x13, 0x14, 0x14, 0xd4, 0x14, 0x68, 0x15, 0x58, 0x18, + 0x64, 0x18, 0x6b, 0x18, 0x80, 0x19, 0x12, 0x1c, 0x20, 0x1c, 0x46, 0x1c, 0x9c, 0x32, 0x00, 0x40, + 0x0a, 0x45, 0x0e, 0x47, 0x48, 0x47, 0x41, 0x48, 0x89, 0x48, 0xfe, 0x9c, 0xf0, 0x2a, 0x02, 0xfe, + 0x8e, 0x0d, 0xff, 0x10, 0x00, 0x00, 0xd3, 0xfe, 0x82, 0x19, 0x00, 0xd2, 0xfe, 0x84, 0x01, 0xff, + 0x03, 0x00, 0x00, 0xfe, 0x2e, 0x14, 0xfe, 0x08, 0x05, 0xff, 0x38, 0x00, 0x00, 0xfe, 0x57, 0x24, + 0x00, 0xfe, 0x4c, 0x00, 0x59, 0xff, 0x04, 0x00, 0x00, 0x10, 0xff, 0x09, 0x00, 0x00, 0xff, 0x08, + 0x01, 0x01, 0xff, 0x08, 0xff, 0xff, 0xff, 0x27, 0x00, 0x00, 0xff, 0x10, 0xff, 0xff, 0xff, 0x11, + 0x00, 0x00, 0xfe, 0x78, 0x56, 0xfe, 0x34, 0x12, 0xff, 0x21, 0x00, 0x00, 0xfe, 0x04, 0xf7, 0xd2, + 0x2b, 0x98, 0x09, 0x01, 0xfe, 0x60, 0x0f, 0xfe, 0x04, 0xf7, 0xd2, 0x98, 0x09, 0x4f, 0x2b, 0xfe, + 0x3d, 0xf0, 0xfe, 0xfa, 0x01, 0xfe, 0x20, 0xf0, 0xd6, 0x03, 0x5b, 0x4c, 0x02, 0xfe, 0xaa, 0x0d, + 0x01, 0xfe, 0x0a, 0x0e, 0xfe, 0xe9, 0x12, 0xfe, 0xfc, 0x10, 0xfe, 0x28, 0x1c, 0x03, 0xfe, 0xa6, + 0x00, 0xfe, 0xdf, 0x12, 0x43, 0x16, 0xfe, 0xa6, 0x00, 0xbc, 0xfe, 0x48, 0xf0, 0xfe, 0x7e, 0x02, + 0xfe, 0x49, 0xf0, 0xfe, 0x98, 0x02, 0xfe, 0x4a, 0xf0, 0xfe, 0xb6, 0x02, 0xfe, 0x46, 0xf0, 0xfe, + 0x48, 0x02, 0xfe, 0x47, 0xf0, 0xfe, 0x4e, 0x02, 0xfe, 0x43, 0xf0, 0xfe, 0x3c, 0x02, 0xfe, 0x44, + 0xf0, 0xfe, 0x40, 0x02, 0xfe, 0x45, 0xf0, 0xfe, 0x44, 0x02, 0x15, 0x09, 0xa7, 0x15, 0x05, 0x16, + 0x9f, 0x02, 0x2a, 0xfe, 0x00, 0x1c, 0xe4, 0xfe, 0x02, 0x1c, 0xe3, 0xfe, 0x1e, 0x1c, 0xfe, 0xe9, + 0x10, 0x01, 0xfe, 0xb6, 0x17, 0xfe, 0xe7, 0x10, 0xfe, 0x06, 0xfc, 0xcb, 0x07, 0x6f, 0x01, 0xa5, + 0x02, 0x2a, 0x18, 0x57, 0x46, 0xa0, 0x01, 0xfe, 0xf6, 0x0f, 0x07, 0x6f, 0x01, 0x86, 0xfe, 0xbd, + 0x10, 0x07, 0x6f, 0x01, 0x86, 0xfe, 0xad, 0x10, 0xfe, 0x16, 0x1c, 0xfe, 0x58, 0x1c, 0x15, 0x05, + 0x16, 0x9f, 0x2b, 0x1b, 0x2a, 0xfe, 0x3d, 0xf0, 0xfe, 0xfa, 0x01, 0x22, 0xfe, 0x8c, 0x02, 0xfe, + 0x5a, 0x1c, 0xf3, 0xfe, 0x14, 0x1c, 0x18, 0xfe, 0x30, 0x00, 0x46, 0xa0, 0x01, 0xfe, 0xe6, 0x0f, + 0x15, 0x05, 0x16, 0x9f, 0x02, 0xd3, 0x21, 0x1f, 0x06, 0x10, 0x35, 0xfe, 0x69, 0x10, 0x15, 0x05, + 0x16, 0x9f, 0xfe, 0x04, 0xec, 0x1f, 0x67, 0x44, 0x13, 0x1f, 0xfe, 0x05, 0xf6, 0xcb, 0x01, 0xfe, + 0xe8, 0x16, 0x0a, 0x52, 0x56, 0x37, 0x12, 0x2f, 0x4f, 0xbe, 0x01, 0xfe, 0x20, 0x16, 0x02, 0x2a, + 0x07, 0x3c, 0x01, 0x11, 0x06, 0x00, 0x65, 0x01, 0x72, 0xfe, 0x20, 0x10, 0x07, 0xa2, 0x01, 0x11, + 0xfe, 0x41, 0x58, 0x07, 0x3c, 0x01, 0x11, 0xfe, 0x49, 0x54, 0x69, 0xfe, 0x04, 0x03, 0x01, 0xfe, + 0x20, 0x16, 0x02, 0x2a, 0x2b, 0x67, 0xfe, 0x02, 0xe8, 0x29, 0xfe, 0xbf, 0x57, 0xfe, 0x9e, 0x43, + 0xfe, 0x77, 0x57, 0xfe, 0x27, 0xf0, 0xfe, 0xe0, 0x01, 0xfe, 0x07, 0x4b, 0xfe, 0x20, 0xf0, 0xd6, + 0xfe, 0x40, 0x1c, 0x1b, 0xd5, 0xfe, 0x26, 0xf0, 0xfe, 0x56, 0x03, 0xfe, 0xa0, 0xf0, 0xfe, 0x44, + 0x03, 0xfe, 0x11, 0xf0, 0xd6, 0xe0, 0xfe, 0x9f, 0xf0, 0xfe, 0x64, 0x03, 0xf5, 0x0f, 0xfe, 0x11, + 0x00, 0x02, 0x63, 0x2b, 0xfe, 0x48, 0x1c, 0xf5, 0x20, 0x21, 0xa1, 0xb2, 0x13, 0xa1, 0x07, 0x3c, + 0x01, 0x11, 0xb2, 0x77, 0x01, 0xfe, 0x52, 0x16, 0x12, 0xce, 0x1b, 0xd5, 0xfe, 0x01, 0xf0, 0xd5, + 0xfe, 0x82, 0xf0, 0xfe, 0x8a, 0x03, 0xf6, 0x12, 0xfe, 0xe4, 0x00, 0x26, 0xfe, 0x9c, 0x03, 0x1b, + 0x34, 0x1c, 0xfe, 0xac, 0x03, 0x01, 0x41, 0xfe, 0x06, 0xf0, 0xfe, 0xbc, 0x03, 0x94, 0x85, 0xfe, + 0x0a, 0xf0, 0xfe, 0x6e, 0x06, 0x02, 0x23, 0x03, 0x6f, 0x27, 0x19, 0xfe, 0xde, 0x04, 0x18, 0x6c, + 0x01, 0x36, 0x7b, 0xfe, 0x5e, 0x02, 0x02, 0xd4, 0xf5, 0x2b, 0x98, 0x17, 0xfe, 0x67, 0x1b, 0xfe, + 0xbf, 0x57, 0xfe, 0x77, 0x57, 0xfe, 0x48, 0x1c, 0x73, 0x01, 0xab, 0x8b, 0x07, 0x3c, 0x01, 0x11, + 0x06, 0x00, 0x19, 0xd7, 0x07, 0xce, 0x01, 0x11, 0x8c, 0x4e, 0x62, 0x79, 0x29, 0x03, 0x6f, 0x27, + 0xfe, 0x10, 0x12, 0x18, 0x6c, 0x01, 0x36, 0x7b, 0xfe, 0x5e, 0x02, 0x02, 0xd4, 0xc3, 0x80, 0xc4, + 0x82, 0x1b, 0x23, 0x26, 0xfe, 0x34, 0x04, 0x1c, 0xfe, 0x30, 0x04, 0x3a, 0xfe, 0xa0, 0x00, 0xfe, + 0x9b, 0x57, 0xfe, 0x46, 0x12, 0x2c, 0xff, 0x02, 0x00, 0x10, 0x01, 0x0b, 0x1c, 0xfe, 0xc8, 0x04, + 0x2c, 0x01, 0x0b, 0x1c, 0x23, 0x33, 0x31, 0xda, 0xfe, 0x4c, 0x44, 0xfe, 0x3c, 0x12, 0x4e, 0xfe, + 0x44, 0x48, 0x0e, 0x6e, 0xfe, 0x4c, 0x54, 0x69, 0xd7, 0x67, 0x79, 0x29, 0xfe, 0x06, 0x80, 0xfa, + 0xfe, 0x52, 0x13, 0x32, 0x06, 0x81, 0xfe, 0x4a, 0x13, 0xfe, 0x18, 0x10, 0x0e, 0x6e, 0xfe, 0x4c, + 0x54, 0x69, 0xd7, 0xfe, 0x06, 0x80, 0xfa, 0xfe, 0x38, 0x13, 0x32, 0x06, 0x81, 0xfe, 0x30, 0x13, + 0x0a, 0x08, 0x2d, 0xfe, 0x1c, 0x12, 0x18, 0x9c, 0x0a, 0x08, 0x05, 0x4c, 0x18, 0xfe, 0x0d, 0x00, + 0x01, 0x36, 0x7b, 0xfe, 0x46, 0x0d, 0x02, 0x23, 0x2c, 0x12, 0xfe, 0xe6, 0x00, 0xfe, 0x1c, 0x90, + 0xfe, 0x40, 0x5c, 0x04, 0x18, 0x9c, 0x01, 0x36, 0x02, 0x2a, 0xfe, 0x42, 0x5b, 0x98, 0x17, 0xfe, + 0x46, 0x59, 0xfe, 0xbf, 0x57, 0xfe, 0x77, 0x57, 0xfe, 0x87, 0x80, 0xfe, 0x31, 0xe4, 0x59, 0x0a, + 0x08, 0x09, 0xfe, 0x84, 0x13, 0xfe, 0x20, 0x80, 0x06, 0x17, 0xfe, 0x7c, 0x12, 0x51, 0x08, 0x05, + 0xfe, 0x6c, 0x13, 0x03, 0xfe, 0xa2, 0x00, 0x27, 0x19, 0xfe, 0x74, 0x05, 0xfe, 0x31, 0xe4, 0x58, + 0x51, 0x08, 0x09, 0xfe, 0x56, 0x13, 0x03, 0xfe, 0xa0, 0x00, 0x27, 0xfe, 0x4e, 0x12, 0x66, 0xff, + 0x02, 0x00, 0x10, 0x26, 0xfe, 0x2c, 0x05, 0x1b, 0x34, 0xfc, 0xff, 0x02, 0x00, 0x10, 0x26, 0xfe, + 0x3a, 0x05, 0x25, 0xfe, 0x8c, 0x05, 0x12, 0xfe, 0xe3, 0x00, 0x20, 0x51, 0xfe, 0x4a, 0xf0, 0xfe, + 0x5a, 0x05, 0xfe, 0x49, 0xf0, 0xfe, 0x54, 0x05, 0x87, 0x24, 0xfe, 0x21, 0x00, 0xa8, 0x24, 0xfe, + 0x22, 0x00, 0xa7, 0x24, 0x56, 0xfe, 0x09, 0x48, 0xff, 0x02, 0x00, 0x10, 0x26, 0xfe, 0x6a, 0x05, + 0x25, 0xfe, 0x8c, 0x05, 0xfe, 0xe2, 0x08, 0x51, 0x08, 0xc7, 0x4c, 0x01, 0xac, 0x24, 0x05, 0x13, + 0xd0, 0x46, 0xfe, 0x27, 0x01, 0x0a, 0x08, 0x2d, 0xfe, 0x22, 0x12, 0x43, 0x01, 0xae, 0x18, 0x9c, + 0x0a, 0x08, 0x05, 0x4c, 0x18, 0xfe, 0x0d, 0x00, 0x01, 0x36, 0x7b, 0xfe, 0x46, 0x0d, 0x02, 0x23, + 0x03, 0xfe, 0x9c, 0x00, 0x27, 0xfe, 0x3e, 0x12, 0x03, 0x5a, 0x27, 0xfe, 0x36, 0x13, 0x43, 0x01, + 0xae, 0x25, 0xfe, 0xfc, 0x05, 0x07, 0x05, 0x51, 0x08, 0x1e, 0xfe, 0x02, 0x12, 0x4d, 0x01, 0xfe, + 0x3c, 0x15, 0x1c, 0xfe, 0xf2, 0x05, 0x12, 0xa3, 0x01, 0x41, 0x12, 0xfe, 0xe5, 0x00, 0x03, 0x5a, + 0xbb, 0x0c, 0x5a, 0x03, 0xca, 0x27, 0xfe, 0x62, 0x12, 0x03, 0x47, 0x27, 0xfe, 0x5a, 0x13, 0x01, + 0xfe, 0xa6, 0x18, 0x01, 0xfe, 0x10, 0x19, 0xfe, 0x43, 0x48, 0xc0, 0xc8, 0x0e, 0x70, 0xff, 0x02, + 0x00, 0x57, 0x50, 0x91, 0x1d, 0x44, 0x8a, 0xc0, 0x6d, 0x43, 0x01, 0xae, 0x25, 0xfe, 0x66, 0x06, + 0x51, 0x08, 0x1a, 0xe5, 0x90, 0x07, 0x57, 0x01, 0xfe, 0x6a, 0x15, 0x1c, 0xfe, 0x5c, 0x06, 0x12, + 0xa3, 0x01, 0x41, 0x12, 0xfe, 0xe5, 0x00, 0x03, 0x47, 0xbb, 0x0c, 0x47, 0x15, 0x05, 0x01, 0xae, + 0xf6, 0x75, 0x73, 0x01, 0xab, 0x8b, 0x12, 0xfe, 0xe2, 0x00, 0x26, 0xd8, 0x1b, 0x34, 0xfe, 0x0a, + 0xf0, 0xfe, 0x9a, 0x06, 0x93, 0xfe, 0x50, 0x07, 0xfe, 0x06, 0xf0, 0xfe, 0x58, 0x07, 0x94, 0x85, + 0x02, 0x23, 0x0a, 0x08, 0x09, 0xfe, 0x2e, 0x12, 0x14, 0x17, 0x01, 0x0b, 0x14, 0x00, 0x01, 0x0b, + 0x14, 0x00, 0x01, 0x0b, 0x14, 0x00, 0x01, 0x0b, 0xfe, 0x99, 0xa4, 0x01, 0x0b, 0x14, 0x00, 0x02, + 0xfe, 0x26, 0x08, 0x78, 0x08, 0x1a, 0xfe, 0x38, 0x12, 0x0a, 0x08, 0x1a, 0xfe, 0x30, 0x13, 0x14, + 0xfe, 0x1b, 0x00, 0x01, 0x0b, 0x14, 0x00, 0x01, 0x0b, 0x14, 0x00, 0x01, 0x0b, 0x14, 0x00, 0x01, + 0x0b, 0x14, 0x05, 0x01, 0x0b, 0x14, 0x00, 0x02, 0xde, 0x6a, 0x56, 0xb8, 0x4d, 0xfe, 0x9a, 0x81, + 0x53, 0x2d, 0x7a, 0xfe, 0x26, 0x07, 0x07, 0x2d, 0xfe, 0x09, 0x6f, 0xf8, 0xfe, 0xca, 0x45, 0xfe, + 0x32, 0x12, 0x92, 0x6c, 0x8a, 0x6a, 0x7e, 0x26, 0xfe, 0x38, 0x07, 0x1b, 0x34, 0xfe, 0x0a, 0xf0, + 0xfe, 0x26, 0x07, 0x94, 0x85, 0x93, 0xfe, 0x50, 0x07, 0x02, 0x23, 0x01, 0x41, 0x02, 0xd8, 0x14, + 0x1e, 0x02, 0xd8, 0xfe, 0x9c, 0xf7, 0xd9, 0xfe, 0x2c, 0x90, 0xfe, 0xae, 0x90, 0x54, 0xfe, 0xbe, + 0x07, 0x0c, 0x5e, 0x16, 0x5f, 0x0a, 0x52, 0x58, 0x37, 0x21, 0x1f, 0x06, 0x10, 0xfe, 0x0e, 0x12, + 0x8c, 0xfe, 0x80, 0x80, 0x46, 0x1f, 0x68, 0x29, 0xfe, 0x06, 0x10, 0xfe, 0x83, 0xe7, 0xfe, 0x48, + 0x00, 0xa8, 0xfe, 0x03, 0x40, 0x0a, 0x52, 0x59, 0x37, 0x01, 0xaf, 0xb3, 0xfe, 0x1f, 0x40, 0x13, + 0x60, 0x01, 0xeb, 0xfe, 0x08, 0x50, 0xfe, 0x8a, 0x50, 0xfe, 0x44, 0x51, 0xfe, 0xc6, 0x51, 0x87, + 0xfe, 0x08, 0x90, 0xfe, 0x8a, 0x90, 0x0c, 0x5c, 0x16, 0x5d, 0xfe, 0x0c, 0x90, 0xfe, 0x8e, 0x90, + 0xfe, 0x40, 0x50, 0xfe, 0xc2, 0x50, 0x0c, 0x3d, 0x16, 0x3e, 0xfe, 0x4a, 0x10, 0x0a, 0x08, 0x58, + 0xfe, 0x2a, 0x12, 0xfe, 0x2c, 0x90, 0xfe, 0xae, 0x90, 0x0c, 0x5e, 0x16, 0x5f, 0x0a, 0x08, 0x59, + 0x8a, 0x01, 0xaf, 0xfe, 0x1f, 0x80, 0x13, 0x60, 0xfe, 0x44, 0x90, 0xfe, 0xc6, 0x90, 0x0c, 0x3f, + 0x16, 0x40, 0xfe, 0x08, 0x90, 0xfe, 0x8a, 0x90, 0x0c, 0x5c, 0x16, 0x5d, 0xfe, 0x40, 0x90, 0xfe, + 0xc2, 0x90, 0x0c, 0x3d, 0x16, 0x3e, 0x0c, 0x2e, 0x16, 0x3b, 0x20, 0x0c, 0x4a, 0x0c, 0x61, 0x0a, + 0x52, 0x1e, 0x37, 0x2b, 0x0e, 0x6b, 0x26, 0xfe, 0x46, 0x08, 0xfe, 0x9e, 0xf0, 0xfe, 0x5a, 0x08, + 0xb6, 0x19, 0x34, 0x2b, 0x76, 0xe3, 0xc1, 0xfe, 0x7e, 0x08, 0xc2, 0xfe, 0x9c, 0x08, 0x93, 0xfe, + 0x72, 0x08, 0xfe, 0x06, 0xf0, 0xfe, 0x78, 0x08, 0x94, 0x85, 0x02, 0x23, 0x01, 0x41, 0xfe, 0xc9, + 0x10, 0x14, 0x1e, 0xfe, 0xc9, 0x10, 0x78, 0x08, 0x05, 0xfe, 0x10, 0x12, 0x78, 0x08, 0x09, 0x64, + 0x0a, 0x08, 0x09, 0xfe, 0x90, 0x12, 0xfe, 0x2e, 0x1c, 0x02, 0xfe, 0xfc, 0x0a, 0x78, 0x08, 0x05, + 0x64, 0x78, 0x08, 0x09, 0xfe, 0x7a, 0x12, 0xfe, 0x2c, 0x1c, 0xfe, 0xaa, 0xf0, 0xfe, 0xb6, 0x09, + 0xfe, 0xac, 0xf0, 0xfe, 0xe4, 0x08, 0x02, 0xfe, 0xc2, 0x09, 0xfe, 0xb7, 0xf0, 0xfe, 0xe0, 0x08, + 0xfe, 0x02, 0xf6, 0x1a, 0x4d, 0xfe, 0x70, 0x18, 0xfe, 0xf1, 0x18, 0xfe, 0x40, 0x55, 0xfe, 0xe1, + 0x55, 0xfe, 0x10, 0x58, 0xfe, 0x91, 0x58, 0xfe, 0x14, 0x59, 0xfe, 0x95, 0x59, 0x1b, 0x84, 0xfe, + 0x8c, 0xf0, 0xfe, 0xe0, 0x08, 0xfe, 0xac, 0xf0, 0xfe, 0xd4, 0x08, 0xb0, 0xfe, 0xcb, 0x10, 0xfe, + 0xad, 0xf0, 0xfe, 0xf0, 0x08, 0x02, 0xfe, 0xfc, 0x0a, 0xb1, 0xfe, 0xbf, 0x10, 0xfe, 0x2b, 0xf0, + 0x84, 0xf1, 0x1d, 0xfe, 0x00, 0xfe, 0xfe, 0x1c, 0x12, 0xbc, 0xfe, 0xd2, 0xf0, 0x84, 0xfe, 0x76, + 0x18, 0x1d, 0x17, 0x19, 0x84, 0x03, 0xcf, 0x1d, 0x05, 0x19, 0x84, 0xc1, 0x4b, 0xc2, 0x4b, 0xb0, + 0xb1, 0xfe, 0x89, 0x10, 0x73, 0x66, 0x2c, 0x18, 0x9c, 0x01, 0x36, 0x0f, 0xfe, 0x35, 0x00, 0xfe, + 0x01, 0xf0, 0x63, 0x0f, 0x7f, 0x02, 0x63, 0xfe, 0x98, 0x80, 0xbf, 0x09, 0xfe, 0x1a, 0x12, 0x4e, + 0xfe, 0x19, 0x82, 0xfe, 0x6c, 0x18, 0xfe, 0x44, 0x54, 0xb8, 0xfe, 0x19, 0x81, 0xfe, 0x74, 0x18, + 0x8e, 0x8f, 0x19, 0xfe, 0xb2, 0x08, 0x02, 0x4b, 0x0a, 0x08, 0x58, 0xe8, 0x03, 0x2e, 0x28, 0x3b, + 0x0c, 0x3f, 0x16, 0x40, 0x9a, 0x2e, 0x9b, 0x3b, 0xfe, 0x6c, 0x18, 0xfe, 0xed, 0x18, 0xfe, 0x44, + 0x54, 0xfe, 0xe5, 0x54, 0x39, 0x3f, 0x3a, 0x40, 0x03, 0x4a, 0x28, 0x61, 0x8e, 0xfe, 0xe3, 0x54, + 0xfe, 0x74, 0x18, 0xfe, 0xf5, 0x18, 0x8e, 0xfe, 0xe3, 0x54, 0x8f, 0xba, 0x54, 0xfe, 0xb2, 0x08, + 0x02, 0x4b, 0xfe, 0x37, 0xf0, 0xfe, 0xbe, 0x09, 0xfe, 0x8b, 0xf0, 0xfe, 0x44, 0x09, 0x02, 0x4b, + 0xfe, 0x98, 0x80, 0xbf, 0x09, 0x22, 0xfe, 0xde, 0x0a, 0x39, 0x4a, 0x3a, 0x61, 0x54, 0xfe, 0x22, + 0x0a, 0x0e, 0xfe, 0xc0, 0x07, 0x43, 0x97, 0x00, 0xe7, 0xfe, 0x01, 0x59, 0xfe, 0x52, 0xf0, 0xfe, + 0xf0, 0x09, 0x8e, 0x7a, 0xfe, 0x08, 0x0a, 0x39, 0x4a, 0x8e, 0xfe, 0xe3, 0x54, 0x55, 0x4a, 0x7d, + 0x61, 0xfe, 0x14, 0x58, 0xfe, 0x95, 0x58, 0x02, 0x4b, 0x39, 0x4a, 0x3a, 0x61, 0xfe, 0x14, 0x59, + 0xfe, 0x95, 0x59, 0xb8, 0x55, 0x4a, 0x55, 0x61, 0x02, 0x4b, 0x0a, 0x08, 0x58, 0xfe, 0x82, 0x12, + 0x0a, 0x08, 0x1e, 0xfe, 0x66, 0x13, 0x21, 0x60, 0xb2, 0xfe, 0x03, 0xa1, 0xfe, 0x83, 0x80, 0xfe, + 0xc8, 0x44, 0xfe, 0x2e, 0x13, 0xfe, 0x04, 0x91, 0xfe, 0x86, 0x91, 0x68, 0x29, 0xfe, 0x40, 0x59, + 0xfe, 0xc1, 0x59, 0x54, 0xdc, 0x03, 0x5e, 0x28, 0x5f, 0x0c, 0x7e, 0x16, 0x7f, 0x55, 0x5e, 0x7d, + 0x5f, 0x01, 0xaf, 0xb3, 0x68, 0x29, 0x13, 0x60, 0x9a, 0x2e, 0x9b, 0x3b, 0x39, 0x3f, 0x3a, 0x40, + 0x8f, 0xba, 0xfe, 0x04, 0xfa, 0x2e, 0xfe, 0x05, 0xfa, 0x3b, 0x01, 0xeb, 0xfe, 0x36, 0x10, 0x20, + 0x0c, 0x7e, 0x0c, 0x7f, 0x39, 0x3f, 0x3a, 0x40, 0xfe, 0x12, 0x10, 0x0a, 0x08, 0x1e, 0x19, 0xdc, + 0x39, 0x3d, 0x3a, 0x3e, 0x0a, 0x08, 0xfe, 0xf7, 0x00, 0x37, 0x03, 0x5c, 0x28, 0x5d, 0xfe, 0x10, + 0x58, 0xfe, 0x91, 0x58, 0x55, 0x4a, 0x7d, 0x61, 0x02, 0xfe, 0xd8, 0x09, 0x0a, 0x08, 0x1e, 0x19, + 0xdc, 0x0a, 0x08, 0xfe, 0xf7, 0x00, 0x37, 0xb8, 0xfe, 0x19, 0x81, 0x4d, 0xfe, 0x10, 0x90, 0xfe, + 0x92, 0x90, 0xfe, 0xd3, 0x10, 0x32, 0x06, 0xa4, 0x19, 0xfe, 0xec, 0x08, 0x12, 0xa4, 0xfe, 0x98, + 0x80, 0xbf, 0x09, 0xfe, 0x14, 0x13, 0x03, 0x3d, 0x28, 0x3e, 0x54, 0xfe, 0xec, 0x08, 0xfe, 0x0c, + 0x58, 0xfe, 0x8d, 0x58, 0x02, 0x4b, 0x20, 0x43, 0xfe, 0x19, 0x80, 0xe4, 0x0a, 0x08, 0x09, 0xfe, + 0x1a, 0x12, 0xfe, 0x6c, 0x19, 0xfe, 0x19, 0x41, 0xf1, 0xbc, 0xfe, 0xd1, 0xf0, 0xde, 0x18, 0x6b, + 0x01, 0x36, 0x0f, 0xfe, 0x44, 0x00, 0xfe, 0x8e, 0x10, 0xfe, 0x6c, 0x19, 0x55, 0x3d, 0xfe, 0xed, + 0x19, 0x7d, 0x3e, 0xfe, 0x0c, 0x51, 0xfe, 0x8e, 0x51, 0xf1, 0x1d, 0xfe, 0x00, 0xff, 0x35, 0xfe, + 0x74, 0x10, 0xbc, 0xfe, 0xd2, 0xf0, 0xfe, 0x8a, 0x0b, 0xfe, 0x76, 0x18, 0x1d, 0x17, 0x89, 0x03, + 0xcf, 0x1d, 0x05, 0xfe, 0x08, 0x13, 0x0f, 0xfe, 0x16, 0x00, 0x02, 0x63, 0xfe, 0xd1, 0xf0, 0xfe, + 0x9c, 0x0b, 0x18, 0x6b, 0x01, 0x36, 0x0f, 0xfe, 0x17, 0x00, 0xfe, 0x42, 0x10, 0xfe, 0xce, 0xf0, + 0xfe, 0xa2, 0x0b, 0xfe, 0x3c, 0x10, 0xfe, 0xcd, 0xf0, 0xfe, 0xae, 0x0b, 0x0f, 0xfe, 0x22, 0x00, + 0x02, 0x63, 0xfe, 0xcb, 0xf0, 0xfe, 0xba, 0x0b, 0x0f, 0xfe, 0x24, 0x00, 0x02, 0x63, 0xfe, 0xd0, + 0xf0, 0xfe, 0xc4, 0x0b, 0x0f, 0x9d, 0xe1, 0xfe, 0xcf, 0xf0, 0xfe, 0xce, 0x0b, 0x0f, 0x56, 0xfe, + 0x10, 0x10, 0xfe, 0xcc, 0xf0, 0xde, 0xfe, 0x84, 0x80, 0xbf, 0x1e, 0x4c, 0x0f, 0xfe, 0x12, 0x00, + 0x2b, 0x0e, 0x6b, 0x26, 0xfe, 0xe4, 0x0b, 0xfe, 0x9e, 0xf0, 0xfe, 0xf8, 0x0b, 0xb6, 0x19, 0x34, + 0x2b, 0x76, 0xe3, 0xc1, 0x23, 0xc2, 0x23, 0x2b, 0xf6, 0x26, 0xfe, 0x04, 0x0c, 0x1b, 0x34, 0x93, + 0xfe, 0x20, 0x0c, 0x94, 0x85, 0xc1, 0xd9, 0xc2, 0xd9, 0x02, 0x23, 0x01, 0x41, 0xfe, 0xdb, 0x10, + 0x12, 0xfe, 0xe8, 0x00, 0xb0, 0xb1, 0x73, 0xc3, 0x80, 0xc4, 0x82, 0xfe, 0x89, 0xf0, 0x23, 0x33, + 0x31, 0xdd, 0xc3, 0x80, 0xc4, 0x82, 0x26, 0xfe, 0x4a, 0x0c, 0x1c, 0x23, 0x33, 0x31, 0xdb, 0xb6, + 0x64, 0x0f, 0xfe, 0x42, 0x00, 0x02, 0x63, 0x7c, 0x05, 0xfe, 0x81, 0x49, 0xfe, 0xa2, 0x12, 0x0a, + 0x08, 0x09, 0xfe, 0x44, 0x13, 0x0f, 0x00, 0x53, 0x09, 0xfe, 0x54, 0x12, 0x53, 0xfe, 0x28, 0x00, + 0x22, 0xfe, 0x7c, 0x0d, 0x07, 0x3c, 0x01, 0x11, 0x06, 0x00, 0x65, 0x45, 0xfe, 0x28, 0x00, 0xfe, + 0xe2, 0x10, 0x01, 0xef, 0x01, 0xf0, 0x07, 0xa2, 0x01, 0xfe, 0xca, 0x0e, 0x62, 0x12, 0x2f, 0x01, + 0x72, 0x02, 0x2a, 0x0f, 0xfe, 0x44, 0x00, 0x53, 0x09, 0xe5, 0x45, 0x09, 0x42, 0x01, 0xac, 0x45, + 0x09, 0xfe, 0xaa, 0x10, 0x01, 0xac, 0xfe, 0x19, 0x82, 0xfe, 0x34, 0x46, 0xa9, 0x45, 0x09, 0x0f, + 0xfe, 0x43, 0x00, 0xfe, 0x96, 0x10, 0x0a, 0x52, 0x09, 0x37, 0x01, 0xef, 0x01, 0xf0, 0x62, 0x12, + 0x2f, 0x01, 0x72, 0x98, 0x09, 0x62, 0x4f, 0xbe, 0x02, 0xfe, 0x2a, 0x03, 0x0a, 0x08, 0x09, 0x89, + 0x45, 0x09, 0x0f, 0x00, 0xfe, 0x5c, 0x10, 0x78, 0x08, 0x1a, 0xfe, 0x58, 0x12, 0x0a, 0x08, 0x1a, + 0xfe, 0x50, 0x13, 0xfe, 0x1c, 0x1c, 0xfe, 0x9d, 0xf0, 0xfe, 0x32, 0x0d, 0xfe, 0x1c, 0x1c, 0xfe, + 0x9d, 0xf0, 0xfe, 0x38, 0x0d, 0x0a, 0x52, 0x1a, 0x37, 0xfe, 0xa9, 0x10, 0x0f, 0xfe, 0x15, 0x00, + 0xfe, 0x04, 0xe6, 0x09, 0x4d, 0xfe, 0x2e, 0x10, 0x0f, 0xfe, 0x13, 0x00, 0xfe, 0x10, 0x10, 0x0f, + 0x6e, 0xa8, 0x0f, 0xfe, 0x41, 0x00, 0xa7, 0x0f, 0xfe, 0x24, 0x00, 0x8b, 0xb0, 0xb1, 0x73, 0x03, + 0x6f, 0x27, 0x22, 0xd4, 0x4d, 0xfe, 0x04, 0xe6, 0x1a, 0xfe, 0x9d, 0x41, 0xfe, 0x1c, 0x42, 0x62, + 0x01, 0xdf, 0x02, 0x2a, 0xf3, 0x18, 0x09, 0x46, 0xc9, 0xf4, 0x18, 0xfe, 0x31, 0x00, 0x46, 0xa0, + 0x01, 0xfe, 0xe6, 0x0f, 0x02, 0xd3, 0x4f, 0xfe, 0x06, 0xec, 0xcd, 0xf9, 0x45, 0x2d, 0xfe, 0xce, + 0x45, 0x35, 0x4f, 0xfe, 0x06, 0xea, 0xcd, 0xfe, 0x47, 0x4b, 0x90, 0xfe, 0x75, 0x57, 0x03, 0x5b, + 0xfe, 0x98, 0x56, 0xfe, 0x28, 0x12, 0x07, 0x3c, 0xfe, 0xec, 0x14, 0x43, 0xfe, 0x41, 0x58, 0x07, + 0xa2, 0xfe, 0xe2, 0x14, 0xfe, 0x49, 0x54, 0x95, 0xfe, 0xf0, 0x0d, 0x07, 0x49, 0xfe, 0xd6, 0x14, + 0xfe, 0x44, 0x48, 0x02, 0xfe, 0x2a, 0x03, 0x07, 0x5b, 0xfe, 0xc0, 0x14, 0xf9, 0x45, 0x2d, 0xfe, + 0xce, 0x45, 0x35, 0x4f, 0xfe, 0xce, 0x47, 0xfe, 0xbd, 0x13, 0x02, 0x2a, 0x21, 0x1f, 0x06, 0x10, + 0xfe, 0x70, 0x12, 0x20, 0x13, 0x57, 0x13, 0x9e, 0x21, 0x2f, 0x43, 0x46, 0x2f, 0xb6, 0xe7, 0xfe, + 0xbc, 0xf0, 0xfe, 0x84, 0x0e, 0x0e, 0x05, 0x13, 0x57, 0x01, 0xfe, 0x78, 0x16, 0x03, 0xfe, 0x38, + 0x01, 0x28, 0xfe, 0x3a, 0x01, 0x54, 0xfe, 0x88, 0x0e, 0x03, 0xfe, 0x38, 0x01, 0x1d, 0xfe, 0xf0, + 0xff, 0x0c, 0xfe, 0x60, 0x01, 0x03, 0xfe, 0x3a, 0x01, 0x0c, 0xfe, 0x62, 0x01, 0x24, 0x05, 0x13, + 0x2f, 0xfe, 0x04, 0xec, 0x1f, 0x67, 0x44, 0x13, 0x1f, 0xfe, 0x05, 0xf6, 0xfe, 0x34, 0x01, 0x01, + 0xfe, 0xe8, 0x16, 0x12, 0x2f, 0xbe, 0x0e, 0x05, 0x04, 0x20, 0x04, 0x21, 0x57, 0xfe, 0xf7, 0x12, + 0x21, 0x9e, 0xb2, 0x13, 0x9e, 0x06, 0x6b, 0xfe, 0x9b, 0x13, 0xfe, 0x24, 0x1c, 0x18, 0x17, 0x46, + 0xc9, 0xf4, 0xfe, 0xd9, 0x10, 0xbd, 0xfe, 0x03, 0xdc, 0xfe, 0x73, 0x57, 0xfe, 0x80, 0x5d, 0x04, + 0xbd, 0xfe, 0x03, 0xdc, 0xfe, 0x5b, 0x57, 0xfe, 0x80, 0x5d, 0x04, 0xfe, 0x03, 0x57, 0xbd, 0x20, + 0xfe, 0x00, 0xcc, 0x04, 0xfe, 0x03, 0x57, 0xbd, 0x77, 0x04, 0x0a, 0x08, 0x56, 0xfe, 0x22, 0x13, + 0xfe, 0x1c, 0x80, 0x06, 0x05, 0xfe, 0x1a, 0x13, 0xfe, 0x1e, 0x80, 0xe9, 0xfe, 0x1d, 0x80, 0xaa, + 0xfe, 0x0c, 0x90, 0xfe, 0x0e, 0x13, 0xfe, 0x0e, 0x90, 0xa9, 0xfe, 0x3c, 0x90, 0xfe, 0x30, 0xf4, + 0x09, 0xfe, 0x3c, 0x50, 0xa7, 0x01, 0xfe, 0x18, 0x17, 0x32, 0x06, 0x2f, 0x65, 0x01, 0xfe, 0x52, + 0x16, 0xfe, 0x08, 0x10, 0x01, 0xef, 0x01, 0xf0, 0x12, 0xfe, 0xe9, 0x00, 0x0a, 0x08, 0x56, 0xfe, + 0x2c, 0x13, 0x01, 0xfe, 0xaa, 0x16, 0xfe, 0x1e, 0x1c, 0xfe, 0x14, 0x90, 0x0c, 0xfe, 0x64, 0x01, + 0xfe, 0x16, 0x90, 0x0c, 0xfe, 0x66, 0x01, 0x0a, 0x08, 0x59, 0xfe, 0x12, 0x12, 0xfe, 0x03, 0x80, + 0x8c, 0xfe, 0x01, 0xec, 0x1f, 0xfe, 0x80, 0x40, 0x13, 0x1f, 0x68, 0x29, 0x12, 0xcc, 0x62, 0x21, + 0x1f, 0xf7, 0x79, 0x1f, 0x04, 0xfe, 0x08, 0x1c, 0x03, 0xfe, 0xac, 0x00, 0xfe, 0x06, 0x58, 0x03, + 0xfe, 0xae, 0x00, 0xfe, 0x07, 0x58, 0x03, 0xfe, 0xb0, 0x00, 0xfe, 0x08, 0x58, 0x03, 0xfe, 0xb2, + 0x00, 0xfe, 0x09, 0x58, 0xfe, 0x0a, 0x1c, 0x24, 0x6d, 0x13, 0xcd, 0x20, 0x0c, 0x5a, 0x0c, 0x47, + 0x0e, 0x3c, 0x50, 0x4d, 0x15, 0x2d, 0xfe, 0x90, 0x4d, 0xfe, 0x91, 0x54, 0x22, 0xfe, 0x9a, 0x0f, + 0x45, 0x10, 0x0e, 0x49, 0x50, 0x15, 0x56, 0xfe, 0x90, 0x4d, 0xfe, 0x91, 0x54, 0x22, 0xfe, 0xb0, + 0x0f, 0x24, 0x10, 0x13, 0x1f, 0x7c, 0x6e, 0x67, 0x21, 0x1f, 0xf7, 0x79, 0x1f, 0x12, 0xcc, 0xfe, + 0x14, 0x56, 0xfe, 0xd6, 0xf0, 0xfe, 0xc4, 0x0f, 0xf3, 0x73, 0xfe, 0x14, 0x1c, 0xfe, 0x10, 0x1c, + 0xfe, 0x18, 0x1c, 0x04, 0x4f, 0xfe, 0x0c, 0x14, 0xf9, 0xfe, 0x07, 0xe6, 0x2d, 0xfe, 0xce, 0x47, + 0xfe, 0xf5, 0x13, 0x04, 0x01, 0xac, 0x7c, 0x6e, 0x67, 0xfe, 0x06, 0x80, 0xfa, 0xfe, 0x42, 0x13, + 0x32, 0x06, 0x2f, 0xfe, 0x34, 0x13, 0x07, 0x49, 0x01, 0x11, 0xb5, 0xfe, 0x36, 0x12, 0xfb, 0xfe, + 0x45, 0x48, 0x01, 0xec, 0xfe, 0x00, 0xcc, 0xb5, 0xfe, 0xf3, 0x13, 0x44, 0x77, 0x06, 0x10, 0xa9, + 0x07, 0x83, 0x01, 0x11, 0xfe, 0x80, 0x5c, 0x01, 0x72, 0xe0, 0x06, 0x81, 0x64, 0xfe, 0x14, 0x56, + 0xfe, 0xd6, 0xf0, 0xfe, 0xfe, 0x0f, 0x04, 0xfe, 0x44, 0x58, 0x8c, 0xfe, 0x01, 0xec, 0xa0, 0xfe, + 0x9e, 0x40, 0xfe, 0x9d, 0xe7, 0x00, 0xfe, 0x9c, 0xe7, 0x1a, 0x79, 0x29, 0x01, 0xdf, 0xfe, 0xdd, + 0x10, 0x2b, 0xc3, 0x80, 0xc4, 0x82, 0x33, 0x31, 0xda, 0x06, 0x1a, 0xfe, 0x48, 0x12, 0x06, 0x09, + 0xfe, 0x56, 0x12, 0x06, 0x17, 0xfe, 0x30, 0x12, 0x06, 0xc5, 0x19, 0xfe, 0xd0, 0x11, 0x06, 0xfe, + 0x23, 0x00, 0x19, 0xfe, 0xdc, 0x11, 0x06, 0x05, 0x19, 0xfe, 0x3a, 0x12, 0x06, 0x1e, 0xfe, 0x12, + 0x12, 0x06, 0x00, 0x19, 0x23, 0x18, 0xc5, 0x01, 0x36, 0xa6, 0x2c, 0x01, 0x0b, 0x93, 0x41, 0x04, + 0x2c, 0xfe, 0x62, 0x08, 0x07, 0xce, 0x01, 0xfe, 0xca, 0x0e, 0x12, 0x81, 0x02, 0x2a, 0x2c, 0x32, + 0x06, 0xa4, 0xfe, 0xd9, 0x13, 0x39, 0x3d, 0x3a, 0x3e, 0x54, 0xfe, 0x8e, 0x11, 0x0a, 0x08, 0x58, + 0xfe, 0x72, 0x12, 0x9a, 0x2e, 0x9b, 0x3b, 0x8f, 0xba, 0x95, 0xfe, 0x58, 0x11, 0x21, 0x60, 0xfe, + 0x26, 0x13, 0x03, 0x7e, 0x28, 0x7f, 0x54, 0xfe, 0x58, 0x0d, 0x0c, 0x5e, 0x16, 0x5f, 0x20, 0x0c, + 0x7e, 0x0c, 0x7f, 0x01, 0xaf, 0x24, 0x6d, 0x76, 0x13, 0x60, 0x01, 0xeb, 0x9a, 0x2e, 0x9b, 0x3b, + 0xfe, 0x04, 0x55, 0xfe, 0xa5, 0x55, 0xfe, 0x04, 0xfa, 0x2e, 0xfe, 0x05, 0xfa, 0x3b, 0xfe, 0x91, + 0x10, 0x03, 0x3f, 0x28, 0x40, 0xfe, 0x40, 0x56, 0xfe, 0xe1, 0x56, 0x0c, 0x3f, 0x16, 0x40, 0x87, + 0x9a, 0x2e, 0x9b, 0x3b, 0x8f, 0xba, 0x03, 0x5c, 0x28, 0x5d, 0xfe, 0x00, 0x56, 0xfe, 0xa1, 0x56, + 0x0c, 0x5c, 0x16, 0x5d, 0x0a, 0x08, 0x58, 0xfe, 0x1e, 0x12, 0x21, 0x60, 0xfe, 0x1f, 0x40, 0x03, + 0x5e, 0x28, 0x5f, 0xfe, 0x2c, 0x50, 0xfe, 0xae, 0x50, 0x03, 0x3f, 0x28, 0x40, 0xfe, 0x44, 0x50, + 0xfe, 0xc6, 0x50, 0x03, 0x5c, 0x28, 0x5d, 0xfe, 0x08, 0x50, 0xfe, 0x8a, 0x50, 0x03, 0x3d, 0x28, + 0x3e, 0xfe, 0x40, 0x50, 0xfe, 0xc2, 0x50, 0x02, 0x88, 0x24, 0x05, 0x13, 0xd1, 0x02, 0x71, 0x2c, + 0x01, 0x0b, 0x1c, 0x42, 0x33, 0x31, 0xda, 0x06, 0x05, 0x22, 0x42, 0x32, 0x06, 0xa4, 0x22, 0x71, + 0x01, 0xab, 0x1d, 0x44, 0x19, 0x42, 0x0a, 0x08, 0x09, 0xea, 0x39, 0x3d, 0x3a, 0x3e, 0xfe, 0x0a, + 0x55, 0x35, 0xfe, 0x8b, 0x55, 0x55, 0x3d, 0x7d, 0x3e, 0xfe, 0x0c, 0x51, 0xfe, 0x8e, 0x51, 0x02, + 0x71, 0xfe, 0x19, 0x81, 0xf8, 0xfe, 0x19, 0x41, 0x02, 0x71, 0x2c, 0x01, 0x0b, 0x1b, 0x34, 0x1c, + 0xe2, 0x33, 0x31, 0xdd, 0x53, 0x17, 0xfe, 0xa6, 0x12, 0x53, 0x09, 0x4c, 0x02, 0x42, 0x01, 0x0b, + 0x1b, 0x34, 0x1c, 0xe2, 0x33, 0x31, 0xdb, 0x06, 0x17, 0x22, 0x42, 0x01, 0x0b, 0x1c, 0xe2, 0x33, + 0x31, 0xfe, 0xe8, 0x09, 0xfe, 0xc2, 0x49, 0x4e, 0x03, 0xfe, 0x9c, 0x00, 0x27, 0x89, 0x51, 0x08, + 0x1e, 0x35, 0xa6, 0xfe, 0xbb, 0x45, 0x53, 0x00, 0x64, 0x45, 0x05, 0x7c, 0x44, 0xfe, 0xda, 0x14, + 0x01, 0xab, 0x8b, 0xfe, 0x4b, 0x45, 0xea, 0x32, 0x06, 0xa3, 0xe9, 0x03, 0xca, 0x27, 0x89, 0x03, + 0x47, 0x27, 0x35, 0x66, 0x02, 0x71, 0xfe, 0xc0, 0x5d, 0xfe, 0xf8, 0x14, 0xfe, 0x03, 0x17, 0x03, + 0x5a, 0xbb, 0x0c, 0x5a, 0x66, 0x2c, 0x01, 0x0b, 0x25, 0x88, 0x01, 0xfe, 0x3c, 0x15, 0x02, 0x88, + 0x01, 0x0b, 0x1b, 0x34, 0x1c, 0x42, 0x33, 0x31, 0xdb, 0x06, 0x05, 0x22, 0x42, 0x01, 0xfe, 0x20, + 0x14, 0xfe, 0x42, 0x58, 0xfe, 0x82, 0x14, 0xfe, 0xa4, 0x14, 0x8b, 0xfe, 0x4a, 0xf4, 0x09, 0x19, + 0x42, 0xfe, 0x4a, 0xf4, 0x05, 0xe6, 0x32, 0x06, 0xa3, 0x8a, 0x02, 0x71, 0x03, 0x47, 0xbb, 0x0c, + 0x47, 0x66, 0x2c, 0x01, 0x0b, 0x25, 0x88, 0x01, 0xfe, 0x6a, 0x15, 0x02, 0x88, 0x0e, 0x05, 0x26, + 0xfe, 0x5c, 0x13, 0x25, 0xfe, 0x72, 0x13, 0x75, 0xfc, 0x01, 0x0b, 0x20, 0x75, 0x04, 0x7b, 0xfe, + 0x6e, 0x13, 0x1b, 0xfe, 0x6e, 0x13, 0x1c, 0xfe, 0x5c, 0x13, 0x66, 0x2c, 0x01, 0x0b, 0xfe, 0xd5, + 0x10, 0x0e, 0x70, 0xff, 0x02, 0x00, 0x57, 0x50, 0x91, 0x1d, 0xfe, 0xff, 0x7f, 0xfe, 0x30, 0x56, + 0xfe, 0x00, 0x5c, 0x04, 0x0e, 0x70, 0xff, 0x02, 0x00, 0x57, 0x50, 0x91, 0x1d, 0x44, 0xfe, 0x30, + 0x56, 0xfe, 0x00, 0x5c, 0x04, 0x0e, 0x70, 0xff, 0x02, 0x00, 0x57, 0x50, 0x91, 0x04, 0x0e, 0x70, + 0xff, 0x02, 0x00, 0x57, 0x50, 0x91, 0xfe, 0x0b, 0x58, 0x04, 0x07, 0x5a, 0x01, 0x86, 0x07, 0x47, + 0x01, 0x86, 0x04, 0xfe, 0x03, 0xa1, 0x1d, 0x10, 0xff, 0x03, 0x00, 0x54, 0xfe, 0x00, 0xf4, 0x1e, + 0x50, 0xfe, 0x00, 0x7d, 0xfe, 0x01, 0x7d, 0xfe, 0x02, 0x7d, 0xfe, 0x03, 0x7c, 0x68, 0x29, 0x0c, + 0x5c, 0x16, 0x5d, 0x55, 0x3f, 0x7d, 0x40, 0x04, 0xfe, 0x62, 0x08, 0xfe, 0x82, 0x4a, 0xfe, 0xe1, + 0x1a, 0xfe, 0x83, 0x5a, 0x8c, 0x04, 0x01, 0xfe, 0xa6, 0x18, 0xfe, 0x42, 0x48, 0x4d, 0x4e, 0x90, + 0x01, 0x0b, 0x1c, 0xfe, 0x34, 0x15, 0x33, 0x31, 0xdd, 0x01, 0x0b, 0x1c, 0xfe, 0x34, 0x15, 0x33, + 0x31, 0xfe, 0xe8, 0x0a, 0xfe, 0xc1, 0x59, 0x03, 0xca, 0x27, 0xfe, 0xcc, 0x12, 0x51, 0x08, 0x1a, + 0xfe, 0xc4, 0x13, 0x20, 0x92, 0x1a, 0xea, 0x53, 0xc6, 0x69, 0xfe, 0x7a, 0x14, 0x4c, 0x0e, 0x05, + 0x15, 0xc6, 0x7c, 0x30, 0xfe, 0x78, 0x10, 0xff, 0x02, 0x83, 0x55, 0xa8, 0xff, 0x02, 0x83, 0x55, + 0x92, 0x17, 0xaa, 0x97, 0xfe, 0x30, 0x00, 0x95, 0xed, 0x15, 0x6c, 0x0e, 0x05, 0xfe, 0x56, 0x10, + 0x92, 0x09, 0xe9, 0x97, 0xfe, 0x64, 0x00, 0x95, 0xed, 0x07, 0xfe, 0x64, 0x00, 0x15, 0x9d, 0x0e, + 0x05, 0xfe, 0x28, 0x10, 0x92, 0x05, 0xfe, 0x60, 0x13, 0x97, 0xfe, 0xc8, 0x00, 0x95, 0xed, 0x07, + 0xfe, 0xc8, 0x00, 0x15, 0x57, 0x0e, 0x05, 0x87, 0x97, 0xfe, 0x90, 0x01, 0x7a, 0xfe, 0xe0, 0x14, + 0x90, 0xfe, 0x12, 0x10, 0xfe, 0x43, 0xf4, 0x9e, 0xfe, 0x56, 0xf0, 0xfe, 0xf2, 0x14, 0xfe, 0x04, + 0xf4, 0x70, 0xfe, 0x43, 0xf4, 0x9d, 0xfe, 0xf3, 0x10, 0xfe, 0x40, 0x5c, 0x01, 0xfe, 0xb4, 0x13, + 0x1d, 0x44, 0xe8, 0xfe, 0x00, 0x17, 0xfe, 0x4d, 0xe4, 0x6d, 0x7a, 0xfe, 0x2e, 0x15, 0xc0, 0x6d, + 0xfe, 0x1c, 0x10, 0xfe, 0x00, 0x17, 0xfe, 0x4d, 0xe4, 0xc8, 0x7a, 0xfe, 0x2e, 0x15, 0xc0, 0xc8, + 0x87, 0x4e, 0x20, 0xfe, 0x4d, 0xf4, 0x00, 0xe5, 0x90, 0x0e, 0x05, 0xfe, 0xb4, 0x56, 0xfe, 0xc3, + 0x58, 0x04, 0x4e, 0x0e, 0x09, 0x04, 0x14, 0x05, 0x01, 0x0b, 0x25, 0xee, 0x14, 0x09, 0x01, 0x0b, + 0x25, 0xee, 0x14, 0x17, 0x01, 0x0b, 0x25, 0xee, 0x75, 0xfe, 0x89, 0x49, 0x01, 0x0b, 0x04, 0x14, + 0x05, 0x01, 0x0b, 0x25, 0xad, 0x14, 0x17, 0x01, 0x0b, 0x25, 0xad, 0x14, 0x05, 0x01, 0x0b, 0x25, + 0xad, 0xfe, 0x89, 0x49, 0x01, 0x0b, 0x25, 0xad, 0x75, 0xfe, 0x89, 0x4a, 0x01, 0x0b, 0x04, 0x4e, + 0x04, 0x21, 0xd0, 0x06, 0x05, 0xfe, 0x48, 0x13, 0xb3, 0x13, 0xd0, 0xfe, 0x49, 0xf4, 0x00, 0x4c, + 0x75, 0xa6, 0x66, 0xfe, 0x01, 0xec, 0xfe, 0x27, 0x01, 0xfc, 0xff, 0x02, 0x00, 0x10, 0x26, 0xfe, + 0xcc, 0x15, 0x32, 0x06, 0xfe, 0xe3, 0x00, 0xfe, 0x20, 0x13, 0x1c, 0xfe, 0xf0, 0x15, 0x20, 0x13, + 0xd1, 0x01, 0x41, 0x21, 0xd1, 0x06, 0x05, 0x64, 0x0a, 0x52, 0x05, 0x37, 0x04, 0x07, 0x49, 0x01, + 0x11, 0xf7, 0x8d, 0x06, 0x10, 0xaa, 0x07, 0x83, 0x01, 0x11, 0x8d, 0x07, 0x5b, 0x01, 0xa5, 0x04, + 0x07, 0x83, 0x01, 0x11, 0x8d, 0xfe, 0x80, 0xe7, 0x10, 0x06, 0x10, 0x89, 0xfe, 0x45, 0x58, 0x01, + 0xec, 0x8d, 0x04, 0x07, 0x49, 0x01, 0x11, 0x8d, 0x07, 0x5b, 0x01, 0xa5, 0x04, 0x07, 0x49, 0x01, + 0x11, 0xfe, 0x80, 0x80, 0xfe, 0x80, 0x4c, 0xfe, 0x49, 0xe4, 0x10, 0xaa, 0x07, 0x83, 0x01, 0x11, + 0xfe, 0x80, 0x4c, 0x07, 0x5b, 0x01, 0x86, 0x04, 0x15, 0x10, 0x74, 0x6a, 0xfe, 0x60, 0x01, 0xfe, + 0x18, 0xdf, 0xfe, 0x19, 0xde, 0xfe, 0x24, 0x1c, 0xfe, 0x1d, 0xf7, 0x2d, 0x96, 0xfe, 0x8c, 0x16, + 0x01, 0xfe, 0x92, 0x17, 0xe7, 0x99, 0x2d, 0x6a, 0xfe, 0x2c, 0x01, 0xfe, 0x2f, 0x19, 0x04, 0xb4, + 0x22, 0xfe, 0x7c, 0x16, 0xfe, 0xda, 0x10, 0x15, 0x10, 0x74, 0x03, 0xfe, 0x64, 0x01, 0xfe, 0x00, + 0xf4, 0x1e, 0xfe, 0x18, 0x58, 0x03, 0xfe, 0x66, 0x01, 0xfe, 0x19, 0x58, 0x99, 0x1e, 0xfe, 0x3c, + 0x90, 0xfe, 0x30, 0xf4, 0x05, 0xfe, 0x3c, 0x50, 0x6a, 0xfe, 0x38, 0x00, 0xfe, 0x0f, 0x79, 0xfe, + 0x1c, 0xf7, 0x1e, 0x96, 0xfe, 0xd6, 0x16, 0xfe, 0xb6, 0x14, 0x35, 0x04, 0xb4, 0x22, 0xfe, 0xae, + 0x16, 0xfe, 0x9c, 0x10, 0x15, 0x10, 0x74, 0xfe, 0x83, 0x5a, 0xfe, 0x18, 0xdf, 0xfe, 0x19, 0xde, + 0xfe, 0x1d, 0xf7, 0x2e, 0x96, 0xfe, 0xf8, 0x16, 0xfe, 0x94, 0x14, 0xe8, 0x99, 0x2e, 0x6a, 0x1a, + 0xfe, 0xaf, 0x19, 0xfe, 0x98, 0xe7, 0x00, 0x04, 0xb4, 0x22, 0xfe, 0xec, 0x16, 0x41, 0x15, 0x10, + 0x74, 0xfe, 0x30, 0xbc, 0xfe, 0xb2, 0xbc, 0x99, 0xc7, 0x6a, 0x1a, 0xfe, 0x0f, 0x79, 0xfe, 0x1c, + 0xf7, 0xc7, 0x96, 0xfe, 0x30, 0x17, 0xfe, 0x5c, 0x14, 0x35, 0x04, 0xb4, 0x22, 0xfe, 0x1c, 0x17, + 0xfe, 0x42, 0x10, 0xfe, 0x02, 0xf6, 0x10, 0x74, 0xfe, 0x18, 0xfe, 0x5e, 0xfe, 0x19, 0xfe, 0x5f, + 0xfe, 0x03, 0xa1, 0xfe, 0x1d, 0xf7, 0x59, 0x96, 0xfe, 0x56, 0x17, 0xfe, 0x36, 0x14, 0xfe, 0x1c, + 0x13, 0x99, 0x59, 0x43, 0xfe, 0x83, 0x58, 0xfe, 0xaf, 0x19, 0xfe, 0x80, 0xe7, 0x10, 0xfe, 0x81, + 0xe7, 0x10, 0x12, 0xfe, 0xdd, 0x00, 0x68, 0x29, 0x04, 0x68, 0x29, 0xfe, 0x12, 0x45, 0x22, 0xfe, + 0x46, 0x17, 0x18, 0x05, 0x46, 0xc9, 0xf4, 0x02, 0x2a, 0xfe, 0x39, 0xf0, 0xfe, 0x9a, 0x17, 0x20, + 0x04, 0xfe, 0x7e, 0x18, 0x1d, 0x17, 0x65, 0x0e, 0x0d, 0x04, 0x74, 0x03, 0xcf, 0x1d, 0x05, 0xfe, + 0xef, 0x12, 0xfe, 0xe1, 0x10, 0x7c, 0x6e, 0x67, 0x32, 0x06, 0x2f, 0xfe, 0x3c, 0x13, 0xfe, 0x7e, + 0x14, 0xfe, 0x42, 0x13, 0x4f, 0xbe, 0x07, 0x49, 0x01, 0x11, 0xb5, 0xfe, 0x3e, 0x12, 0xfb, 0xfe, + 0x45, 0x48, 0x01, 0xec, 0xfe, 0x00, 0xcc, 0xb5, 0xfe, 0xf3, 0x13, 0x44, 0x77, 0x06, 0x10, 0xa9, + 0x07, 0x83, 0x01, 0x11, 0xfe, 0x80, 0x4c, 0x01, 0x72, 0xfe, 0x16, 0x10, 0x06, 0x81, 0x8a, 0xfe, + 0x3c, 0x14, 0xfe, 0x24, 0x12, 0xfe, 0x14, 0x56, 0xfe, 0xd6, 0xf0, 0xfe, 0xba, 0x17, 0x15, 0x09, + 0x04, 0xfe, 0x9c, 0xe7, 0x09, 0x0f, 0xfe, 0x15, 0x00, 0x62, 0x79, 0x29, 0x01, 0xdf, 0x15, 0x05, + 0x04, 0x0a, 0x52, 0x2d, 0x37, 0x12, 0x2f, 0x01, 0x72, 0x15, 0x05, 0x04, 0xfe, 0x38, 0x90, 0xfe, + 0xba, 0x90, 0x39, 0xcb, 0x3a, 0xcc, 0xfe, 0x48, 0x55, 0x35, 0xfe, 0xc9, 0x55, 0x04, 0x21, 0xa1, + 0x76, 0x13, 0xa1, 0x04, 0x07, 0xa2, 0x01, 0x11, 0xfb, 0x07, 0x3c, 0x01, 0x11, 0xfe, 0x49, 0x44, + 0x19, 0xfe, 0x82, 0x18, 0x76, 0x77, 0x04, 0x07, 0x49, 0x01, 0x11, 0x06, 0x10, 0x64, 0x07, 0x5b, + 0x01, 0xa5, 0x07, 0x3c, 0x01, 0x11, 0x76, 0x77, 0x04, 0xfe, 0x4e, 0xe4, 0x17, 0x69, 0xfe, 0xb6, + 0x18, 0x03, 0xfe, 0x90, 0x00, 0xfe, 0x3a, 0x45, 0xfe, 0x2c, 0x10, 0xfe, 0x4e, 0xe4, 0xc5, 0x69, + 0xfe, 0xc8, 0x18, 0x03, 0xfe, 0x92, 0x00, 0xfe, 0x02, 0xe6, 0x1a, 0xe1, 0xfe, 0x4e, 0xe4, 0xfe, + 0x0b, 0x00, 0x69, 0xfe, 0xda, 0x18, 0x03, 0xfe, 0x94, 0x00, 0xfe, 0x02, 0xe6, 0x1e, 0xfe, 0x08, + 0x10, 0x03, 0xfe, 0x96, 0x00, 0xfe, 0x02, 0xe6, 0x6c, 0xfe, 0x4e, 0x45, 0xe6, 0xf8, 0xff, 0x04, + 0x68, 0x54, 0xe4, 0x1d, 0x6d, 0xfe, 0x08, 0x1c, 0xfe, 0x67, 0x19, 0xfe, 0x0a, 0x1c, 0xfe, 0x1a, + 0xf4, 0xfe, 0x00, 0x04, 0xe6, 0xfe, 0x48, 0xf4, 0x17, 0x7a, 0xfe, 0x0e, 0x19, 0x0e, 0x17, 0x04, + 0x06, 0x6b, 0xfe, 0x5a, 0xf0, 0xfe, 0x1e, 0x19, 0x24, 0xfe, 0x09, 0x00, 0xfe, 0x34, 0x10, 0x06, + 0x1a, 0xfe, 0x5a, 0xf0, 0xfe, 0x2c, 0x19, 0x24, 0xc6, 0xfe, 0x26, 0x10, 0x06, 0x17, 0x65, 0x24, + 0x6c, 0xe1, 0x06, 0x09, 0x65, 0x24, 0x9d, 0xe0, 0x06, 0x05, 0x65, 0x24, 0x57, 0xa6, 0xb3, 0x04, + 0x18, 0xfe, 0x09, 0x00, 0x01, 0x36, 0xfe, 0x04, 0xfe, 0x80, 0x03, 0x82, 0xfe, 0x40, 0x5c, 0x04, + 0x1b, 0xf2, 0xfe, 0x14, 0xf0, 0x0b, 0x26, 0xfe, 0x70, 0x19, 0x1b, 0xf2, 0x7b, 0xf2, 0xfe, 0x82, + 0xf0, 0xfe, 0x74, 0x19, 0x04, 0xff, 0xff, 0x00, 0x00, +}; + +u_int16_t adv_asc38C0800_mcode_size = sizeof(adv_asc38C0800_mcode); /* 0x1489 */ + +/* + * This checksum is used to compare with that one that will be calculated + * at run time. + * This is performed to ensure the uCode is correctly loaded into the Lram. + */ +u_int32_t adv_asc38C0800_mcode_chksum = 0x04F62935UL; /* Expanded checksum. */ + + + +u_int8_t adv_asc38C1600_mcode[] = { + 0x00, 0x00, 0x00, 0xf2, 0x00, 0xfc, 0x00, 0x16, 0x00, 0xf0, 0x01, 0x00, 0xc6, 0x1b, 0x48, 0xe4, + 0x18, 0xe4, 0x03, 0xf6, 0x02, 0x00, 0x18, 0x80, 0x00, 0xfa, 0xff, 0xff, 0x04, 0x00, 0x00, 0xf6, + 0x09, 0xe7, 0x82, 0xe7, 0x85, 0xf0, 0x86, 0xf0, 0x9e, 0xe7, 0xff, 0x00, 0xac, 0x0e, 0x55, 0xf0, + 0x01, 0xf6, 0x03, 0x00, 0x98, 0x57, 0x00, 0xec, 0x18, 0xf4, 0x01, 0xe6, 0x00, 0xea, 0x01, 0xfa, + 0x08, 0x00, 0xb2, 0x1b, 0x38, 0x54, 0x32, 0xf0, 0x64, 0x0d, 0x1e, 0xf0, 0xd5, 0xf0, 0xbc, 0x00, + 0x4b, 0xe4, 0x00, 0xe6, 0xb1, 0xf0, 0xb4, 0x00, 0x02, 0x13, 0x3e, 0x1c, 0xd8, 0x01, 0x00, 0x10, + 0x06, 0x13, 0x0c, 0x1c, 0xb9, 0x54, 0x00, 0x57, 0x00, 0x80, 0x02, 0x80, 0x1b, 0x80, 0x01, 0xfc, + 0x10, 0x00, 0xbe, 0x00, 0x5e, 0x0d, 0xa4, 0x10, 0x5c, 0x10, 0xb6, 0x13, 0x18, 0x40, 0xbd, 0x56, + 0x03, 0xe6, 0x5c, 0xf0, 0x0f, 0x00, 0x20, 0x00, 0xc0, 0x00, 0x6c, 0x01, 0x6e, 0x01, 0x04, 0x12, + 0x04, 0x13, 0xbb, 0x55, 0x3c, 0x56, 0x03, 0x58, 0x01, 0xea, 0x40, 0x00, 0xb6, 0x00, 0xbb, 0x00, + 0x00, 0x01, 0x01, 0x01, 0x3e, 0x01, 0x70, 0x09, 0x0a, 0x12, 0x4c, 0x1c, 0x3e, 0x57, 0x30, 0xe4, + 0x05, 0xe6, 0x0c, 0x00, 0x3c, 0x00, 0x3e, 0x00, 0x80, 0x00, 0x24, 0x01, 0x3c, 0x01, 0x68, 0x01, + 0x6a, 0x01, 0x70, 0x01, 0x72, 0x01, 0x74, 0x01, 0x76, 0x01, 0x78, 0x01, 0x7c, 0x01, 0x62, 0x0a, + 0x68, 0x0d, 0x0c, 0x10, 0xae, 0x10, 0xb0, 0x10, 0x08, 0x12, 0x02, 0x18, 0x4e, 0x1c, 0x02, 0x4a, + 0x3a, 0x55, 0x4a, 0xe4, 0x02, 0xee, 0x5b, 0xf0, 0x03, 0xf7, 0x06, 0xf7, 0x03, 0xfc, 0x05, 0x00, + 0x06, 0x00, 0x3f, 0x00, 0xe1, 0x00, 0xa2, 0x0e, 0x2e, 0x14, 0x04, 0x18, 0x58, 0x18, 0x30, 0x1c, + 0x32, 0x1c, 0x38, 0x1c, 0x10, 0x44, 0x02, 0x48, 0x00, 0x4c, 0xb0, 0x57, 0x04, 0x80, 0x4d, 0xe4, + 0x04, 0xea, 0x5d, 0xf0, 0xa7, 0xf0, 0x04, 0xf6, 0x02, 0xfc, 0x09, 0x00, 0x19, 0x00, 0x32, 0x00, + 0x33, 0x00, 0x34, 0x00, 0x36, 0x00, 0x98, 0x00, 0x9e, 0x00, 0xcc, 0x00, 0x20, 0x01, 0x4e, 0x01, + 0x79, 0x01, 0xa0, 0x08, 0x26, 0x0c, 0x02, 0x10, 0x04, 0x10, 0x0c, 0x12, 0x0a, 0x13, 0x5a, 0x14, + 0x36, 0x17, 0x00, 0x4e, 0x00, 0x54, 0x00, 0xdc, 0x05, 0xf0, 0x09, 0xf0, 0x59, 0xf0, 0xb8, 0xf0, + 0x0e, 0xf7, 0x0a, 0x00, 0x9c, 0x00, 0xa4, 0x00, 0xb5, 0x00, 0xba, 0x00, 0xd0, 0x00, 0xe7, 0x00, + 0x69, 0x08, 0xe9, 0x09, 0x1e, 0x0b, 0x98, 0x0e, 0x0a, 0x10, 0x0e, 0x10, 0x12, 0x13, 0xa8, 0x17, + 0x7e, 0x18, 0xa0, 0x19, 0x04, 0x1b, 0x34, 0x1c, 0x36, 0x1c, 0x08, 0x44, 0x38, 0x44, 0x91, 0x44, + 0x48, 0x46, 0x41, 0x48, 0x89, 0x48, 0x68, 0x54, 0x83, 0x55, 0x01, 0x58, 0x83, 0x59, 0x40, 0x5c, + 0x06, 0x83, 0x31, 0xe4, 0x02, 0xe6, 0x07, 0xf0, 0x08, 0xf0, 0x0b, 0xf0, 0x0c, 0xf0, 0x48, 0xf4, + 0x4b, 0xf4, 0x04, 0xf8, 0x05, 0xf8, 0x02, 0xfa, 0x03, 0xfa, 0x04, 0xfc, 0x05, 0xfc, 0x07, 0x00, + 0x9b, 0x00, 0xa8, 0x00, 0xaa, 0x00, 0xb9, 0x00, 0xe0, 0x00, 0xe5, 0x00, 0x22, 0x01, 0x26, 0x01, + 0x60, 0x01, 0x7a, 0x01, 0xc8, 0x01, 0xca, 0x01, 0x78, 0x02, 0x5e, 0x03, 0xda, 0x03, 0xd6, 0x04, + 0x42, 0x07, 0x68, 0x08, 0x7a, 0x09, 0xce, 0x0b, 0xbe, 0x0e, 0x06, 0x10, 0x12, 0x10, 0x1a, 0x10, + 0xb8, 0x10, 0xed, 0x10, 0xf1, 0x10, 0xf3, 0x10, 0x00, 0x11, 0x06, 0x12, 0x0c, 0x13, 0x0e, 0x13, + 0x10, 0x13, 0x16, 0x13, 0x1e, 0x13, 0x74, 0x14, 0xa4, 0x14, 0xfe, 0x9c, 0xf0, 0x2e, 0x04, 0xfe, + 0x8e, 0x0d, 0xff, 0x10, 0x00, 0x00, 0xe3, 0xfe, 0xe0, 0x1b, 0x00, 0xe2, 0xfe, 0x88, 0x01, 0xff, + 0x03, 0x00, 0x00, 0x7c, 0xfe, 0x08, 0x05, 0xff, 0x38, 0x00, 0x00, 0xfe, 0x57, 0x24, 0x00, 0xfe, + 0x50, 0x00, 0x5c, 0xff, 0x04, 0x00, 0x00, 0x15, 0xff, 0x09, 0x00, 0x00, 0xff, 0x08, 0x01, 0x01, + 0xff, 0x08, 0xff, 0xff, 0xff, 0x27, 0x00, 0x00, 0xff, 0x10, 0xff, 0xff, 0xff, 0x13, 0x00, 0x00, + 0xfe, 0x78, 0x56, 0xfe, 0x34, 0x12, 0xff, 0x21, 0x00, 0x00, 0xfe, 0x04, 0xf7, 0xe2, 0x31, 0x75, + 0x0a, 0x01, 0xfe, 0x4c, 0x0f, 0xfe, 0x04, 0xf7, 0xe2, 0x75, 0x0a, 0x56, 0x31, 0xfe, 0x3d, 0xf0, + 0xfe, 0xfe, 0x01, 0xfe, 0x20, 0xf0, 0xe6, 0x02, 0x5e, 0x47, 0x04, 0xfe, 0xaa, 0x0d, 0x01, 0xfe, + 0x0a, 0x0e, 0xfe, 0xe9, 0x12, 0xfe, 0xfc, 0x10, 0xfe, 0x28, 0x1c, 0x02, 0xfe, 0xa6, 0x00, 0xfe, + 0xdf, 0x12, 0x32, 0x1f, 0xfe, 0xa6, 0x00, 0xc5, 0xfe, 0x48, 0xf0, 0xfe, 0x82, 0x02, 0xfe, 0x49, + 0xf0, 0xfe, 0x9c, 0x02, 0xfe, 0x4a, 0xf0, 0xfe, 0xba, 0x02, 0xfe, 0x46, 0xf0, 0xfe, 0x4c, 0x02, + 0xfe, 0x47, 0xf0, 0xfe, 0x52, 0x02, 0xfe, 0x43, 0xf0, 0xfe, 0x40, 0x02, 0xfe, 0x44, 0xf0, 0xfe, + 0x44, 0x02, 0xfe, 0x45, 0xf0, 0xfe, 0x48, 0x02, 0x18, 0x0a, 0x9c, 0x18, 0x05, 0x1f, 0xab, 0x04, + 0x2e, 0xfe, 0x00, 0x1c, 0xf2, 0xfe, 0x02, 0x1c, 0xf1, 0xfe, 0x1e, 0x1c, 0xfe, 0xe9, 0x10, 0x01, + 0xfe, 0x14, 0x1a, 0xfe, 0xe7, 0x10, 0xfe, 0x06, 0xfc, 0xd9, 0x09, 0x39, 0x01, 0xb3, 0x04, 0x2e, + 0x1d, 0x8f, 0x4c, 0xac, 0x01, 0xfe, 0xe6, 0x0f, 0x09, 0x39, 0x01, 0x7b, 0xfe, 0xbd, 0x10, 0x09, + 0x39, 0x01, 0x7b, 0xfe, 0xad, 0x10, 0xfe, 0x16, 0x1c, 0xfe, 0x58, 0x1c, 0x18, 0x05, 0x1f, 0xab, + 0x31, 0x25, 0x2e, 0xfe, 0x3d, 0xf0, 0xfe, 0xfe, 0x01, 0x26, 0xfe, 0x90, 0x02, 0xfe, 0x5a, 0x1c, + 0xfe, 0x12, 0x1c, 0xfe, 0x14, 0x1c, 0x1d, 0xfe, 0x30, 0x00, 0x4c, 0xac, 0x01, 0xfe, 0xd6, 0x0f, + 0x18, 0x05, 0x1f, 0xab, 0x04, 0xe3, 0x1b, 0x27, 0x07, 0x15, 0x2c, 0xfe, 0x69, 0x10, 0x18, 0x05, + 0x1f, 0xab, 0xfe, 0x04, 0xec, 0x27, 0x6f, 0x34, 0x1e, 0x27, 0xfe, 0x05, 0xf6, 0xd9, 0x01, 0xfe, + 0x46, 0x19, 0x0b, 0x57, 0x43, 0x3e, 0x11, 0x4f, 0x56, 0xc8, 0x01, 0xb8, 0x04, 0x2e, 0x09, 0x44, + 0x01, 0x16, 0x07, 0x00, 0x30, 0x01, 0x7e, 0xfe, 0x20, 0x10, 0x09, 0xae, 0x01, 0x16, 0xfe, 0x41, + 0x58, 0x09, 0x44, 0x01, 0x16, 0xfe, 0x49, 0x54, 0x73, 0xfe, 0x08, 0x03, 0x01, 0xb8, 0x04, 0x2e, + 0x31, 0x6f, 0xfe, 0x02, 0xe8, 0x2b, 0xfe, 0xbf, 0x57, 0xfe, 0x9e, 0x43, 0xfe, 0x77, 0x57, 0xfe, + 0x27, 0xf0, 0xfe, 0xe4, 0x01, 0xfe, 0x07, 0x4b, 0xfe, 0x20, 0xf0, 0xe6, 0xfe, 0x40, 0x1c, 0x25, + 0xe5, 0xfe, 0x26, 0xf0, 0xfe, 0x5a, 0x03, 0xfe, 0xa0, 0xf0, 0xfe, 0x48, 0x03, 0xfe, 0x11, 0xf0, + 0xe6, 0xb5, 0xfe, 0x9f, 0xf0, 0xfe, 0x68, 0x03, 0xfe, 0x46, 0x1c, 0x14, 0xfe, 0x11, 0x00, 0x04, + 0x68, 0x31, 0xfe, 0x48, 0x1c, 0xfe, 0x46, 0x1c, 0x22, 0x1b, 0xad, 0xbd, 0x1e, 0xad, 0x09, 0x44, + 0x01, 0x16, 0xbd, 0x84, 0x01, 0xfe, 0xb0, 0x18, 0x11, 0xdc, 0x25, 0xe5, 0xfe, 0x01, 0xf0, 0xe5, + 0xfe, 0x82, 0xf0, 0xfe, 0x8e, 0x03, 0xfe, 0x9c, 0x32, 0x11, 0xfe, 0xe4, 0x00, 0x2a, 0xfe, 0xa0, + 0x03, 0x25, 0x3a, 0x12, 0xfe, 0xb0, 0x03, 0x01, 0x3c, 0xfe, 0x06, 0xf0, 0xfe, 0xc0, 0x03, 0xa5, + 0x9a, 0xfe, 0x0a, 0xf0, 0xfe, 0x32, 0x07, 0x04, 0x24, 0x02, 0x39, 0x1a, 0x17, 0xfe, 0xe2, 0x04, + 0x1d, 0x59, 0x01, 0x3d, 0x8a, 0xfe, 0x62, 0x02, 0x04, 0xe4, 0xfe, 0x46, 0x1c, 0x31, 0x75, 0x19, + 0xfe, 0x67, 0x1b, 0xfe, 0xbf, 0x57, 0xfe, 0x77, 0x57, 0xfe, 0x48, 0x1c, 0x80, 0x01, 0x7c, 0x7f, + 0x09, 0x44, 0x01, 0x16, 0x07, 0x00, 0x17, 0xe7, 0x09, 0xdc, 0x01, 0x16, 0x83, 0x4a, 0x67, 0x88, + 0x2b, 0x02, 0x39, 0x1a, 0xfe, 0x10, 0x12, 0x1d, 0x59, 0x01, 0x3d, 0x8a, 0xfe, 0x62, 0x02, 0x04, + 0xe4, 0xd1, 0x93, 0xd2, 0x96, 0x25, 0x24, 0x2a, 0xfe, 0x38, 0x04, 0x12, 0xfe, 0x34, 0x04, 0x76, + 0xfe, 0xa0, 0x00, 0xfe, 0x9b, 0x57, 0xfe, 0x46, 0x12, 0x2d, 0xff, 0x02, 0x00, 0x10, 0x01, 0x06, + 0x12, 0xfe, 0xcc, 0x04, 0x2d, 0x01, 0x06, 0x12, 0x24, 0x23, 0x21, 0xe9, 0xfe, 0x4c, 0x44, 0xfe, + 0x3c, 0x12, 0x4a, 0xfe, 0x44, 0x48, 0x0f, 0x39, 0xfe, 0x4c, 0x54, 0x73, 0xe7, 0x6f, 0x88, 0x2b, + 0xfe, 0x06, 0x80, 0xfe, 0x48, 0x47, 0xfe, 0x52, 0x13, 0x35, 0x07, 0x95, 0xfe, 0x4a, 0x13, 0xfe, + 0x18, 0x10, 0x0f, 0x39, 0xfe, 0x4c, 0x54, 0x73, 0xe7, 0xfe, 0x06, 0x80, 0xfe, 0x48, 0x47, 0xfe, + 0x38, 0x13, 0x35, 0x07, 0x95, 0xfe, 0x30, 0x13, 0x0b, 0x08, 0x38, 0xfe, 0x1c, 0x12, 0x1d, 0x78, + 0x0b, 0x08, 0x05, 0x47, 0x1d, 0xfe, 0x0d, 0x00, 0x01, 0x3d, 0x8a, 0xfe, 0x46, 0x0d, 0x04, 0x24, + 0x2d, 0x11, 0xfe, 0xe6, 0x00, 0xfe, 0x1c, 0x90, 0xc7, 0x03, 0x1d, 0x78, 0x01, 0x3d, 0x04, 0x2e, + 0xfe, 0x42, 0x5b, 0x75, 0x19, 0xfe, 0x46, 0x59, 0xfe, 0xbf, 0x57, 0xfe, 0x77, 0x57, 0xfe, 0x87, + 0x80, 0xc9, 0x5c, 0x0b, 0x08, 0x0a, 0xfe, 0x84, 0x13, 0xfe, 0x20, 0x80, 0x07, 0x19, 0xfe, 0x7c, + 0x12, 0x36, 0x08, 0x05, 0xfe, 0x6c, 0x13, 0x02, 0xfe, 0xa2, 0x00, 0x1a, 0x17, 0xfe, 0x78, 0x05, + 0xc9, 0x4d, 0x36, 0x08, 0x0a, 0xfe, 0x56, 0x13, 0x02, 0xfe, 0xa0, 0x00, 0x1a, 0xfe, 0x4e, 0x12, + 0x55, 0xff, 0x02, 0x00, 0x10, 0x2a, 0xfe, 0x30, 0x05, 0x25, 0x3a, 0xc2, 0xff, 0x02, 0x00, 0x10, + 0x2a, 0xfe, 0x3e, 0x05, 0x13, 0xfe, 0x90, 0x05, 0x11, 0xfe, 0xe3, 0x00, 0x22, 0x36, 0xfe, 0x4a, + 0xf0, 0xfe, 0x5e, 0x05, 0xfe, 0x49, 0xf0, 0xfe, 0x58, 0x05, 0x69, 0x29, 0xfe, 0x21, 0x00, 0xb4, + 0x29, 0xfe, 0x22, 0x00, 0x9c, 0x29, 0x43, 0xfe, 0x09, 0x48, 0xff, 0x02, 0x00, 0x10, 0x2a, 0xfe, + 0x6e, 0x05, 0x13, 0xfe, 0x90, 0x05, 0xfe, 0xe2, 0x08, 0x36, 0x08, 0xfe, 0x1c, 0x00, 0x47, 0x01, + 0x9f, 0x29, 0x05, 0x1e, 0xdf, 0x4c, 0xfe, 0x27, 0x01, 0x0b, 0x08, 0x38, 0xfe, 0x22, 0x12, 0x32, + 0x01, 0x7d, 0x1d, 0x78, 0x0b, 0x08, 0x05, 0x47, 0x1d, 0xfe, 0x0d, 0x00, 0x01, 0x3d, 0x8a, 0xfe, + 0x46, 0x0d, 0x04, 0x24, 0x02, 0xe1, 0x1a, 0xfe, 0xc6, 0x13, 0x02, 0xaa, 0x1a, 0xfe, 0x3e, 0x12, + 0x02, 0x5d, 0x1a, 0xfe, 0x36, 0x13, 0x32, 0x01, 0x7d, 0x13, 0xfe, 0x08, 0x06, 0x09, 0x05, 0x36, + 0x08, 0x20, 0xfe, 0x02, 0x12, 0x49, 0x01, 0xfe, 0x42, 0x17, 0x12, 0xfe, 0xfe, 0x05, 0x11, 0x7a, + 0x01, 0x3c, 0x11, 0xdd, 0x02, 0x5d, 0x85, 0x0c, 0x5d, 0x02, 0x94, 0x1a, 0xfe, 0x6e, 0x12, 0x02, + 0x4e, 0x1a, 0xfe, 0x66, 0x13, 0x01, 0xba, 0x07, 0x0e, 0x41, 0xfe, 0x28, 0x06, 0x29, 0x0e, 0x01, + 0xfe, 0x6e, 0x1b, 0xfe, 0x43, 0x48, 0x58, 0x79, 0x0f, 0x50, 0xff, 0x02, 0x00, 0x57, 0x4b, 0xa3, + 0x1c, 0x34, 0x48, 0x58, 0x42, 0x32, 0x01, 0x7d, 0x13, 0xfe, 0x7e, 0x06, 0x36, 0x08, 0x0e, 0xf5, + 0x3f, 0x09, 0x8f, 0x01, 0xfe, 0x70, 0x17, 0x12, 0xfe, 0x74, 0x06, 0x11, 0x7a, 0x01, 0x3c, 0x11, + 0xdd, 0x02, 0x4e, 0x85, 0x0c, 0x4e, 0x18, 0x05, 0x01, 0x7d, 0xfe, 0xaa, 0x10, 0x02, 0x66, 0x1a, + 0xfe, 0x9a, 0x13, 0x32, 0x01, 0x7d, 0x02, 0x94, 0x1a, 0xfe, 0x18, 0x12, 0x36, 0x08, 0x0e, 0xf8, + 0x01, 0xba, 0x01, 0xfe, 0x6e, 0x1b, 0xfe, 0x43, 0x48, 0x58, 0x79, 0xed, 0x3f, 0x09, 0x8f, 0x02, + 0xaa, 0x1a, 0xfe, 0x0e, 0x12, 0x36, 0x08, 0x20, 0x30, 0xfe, 0x02, 0xf6, 0x05, 0x69, 0x70, 0x87, + 0x00, 0x47, 0x58, 0x42, 0x32, 0x28, 0x8d, 0x48, 0xc9, 0x0a, 0x13, 0xfe, 0x2a, 0x07, 0x01, 0xfe, + 0xac, 0x17, 0x12, 0xfe, 0x20, 0x07, 0x22, 0x1e, 0x98, 0x11, 0x7a, 0x01, 0x3c, 0x11, 0xdd, 0x1b, + 0x98, 0x07, 0x05, 0xf7, 0x02, 0xe1, 0xfe, 0x58, 0x57, 0x0c, 0xe1, 0x04, 0xfe, 0xc2, 0x05, 0x02, + 0x66, 0x85, 0x0c, 0x66, 0x18, 0x05, 0x01, 0x7d, 0xfe, 0x9c, 0x32, 0x6e, 0x80, 0x01, 0x7c, 0x7f, + 0x11, 0xfe, 0xe2, 0x00, 0x2a, 0xe8, 0x25, 0x3a, 0xfe, 0x0a, 0xf0, 0xfe, 0x5e, 0x07, 0xa4, 0xfe, + 0x14, 0x08, 0xfe, 0x06, 0xf0, 0xfe, 0x1c, 0x08, 0xa5, 0x9a, 0x04, 0x24, 0x0b, 0x08, 0x0a, 0xfe, + 0x2e, 0x12, 0x10, 0x19, 0x01, 0x06, 0x10, 0x00, 0x01, 0x06, 0x10, 0x00, 0x01, 0x06, 0x10, 0x00, + 0x01, 0x06, 0xfe, 0x99, 0xa4, 0x01, 0x06, 0x10, 0x00, 0x04, 0xfe, 0xea, 0x08, 0x86, 0x08, 0x0e, + 0xfe, 0x38, 0x12, 0x0b, 0x08, 0x0e, 0xfe, 0x30, 0x13, 0x10, 0xfe, 0x1b, 0x00, 0x01, 0x06, 0x10, + 0x00, 0x01, 0x06, 0x10, 0x00, 0x01, 0x06, 0x10, 0x00, 0x01, 0x06, 0x10, 0x05, 0x01, 0x06, 0x10, + 0x00, 0x04, 0xeb, 0x74, 0x43, 0x70, 0x49, 0xfe, 0x9a, 0x81, 0x28, 0x38, 0x41, 0xfe, 0xea, 0x07, + 0x09, 0x38, 0xfe, 0x09, 0x6f, 0xfe, 0x0a, 0x45, 0xfe, 0xca, 0x45, 0xfe, 0x32, 0x12, 0x71, 0x59, + 0x48, 0x74, 0x91, 0x2a, 0xfe, 0xfc, 0x07, 0x25, 0x3a, 0xfe, 0x0a, 0xf0, 0xfe, 0xea, 0x07, 0xa5, + 0x9a, 0xa4, 0xfe, 0x14, 0x08, 0x04, 0x24, 0x01, 0x3c, 0x04, 0xe8, 0x10, 0x20, 0x04, 0xe8, 0xfe, + 0x9c, 0xf7, 0x99, 0xfe, 0x2c, 0x90, 0xfe, 0xae, 0x90, 0x89, 0xfe, 0x82, 0x08, 0x0c, 0x61, 0x1f, + 0x62, 0x0b, 0x57, 0x4d, 0x3e, 0x1b, 0x27, 0x07, 0x15, 0xfe, 0x0e, 0x12, 0x83, 0xfe, 0x80, 0x80, + 0x4c, 0x27, 0x72, 0x2b, 0xed, 0xfe, 0x83, 0xe7, 0xfe, 0xbf, 0x00, 0xb4, 0xfe, 0x03, 0x40, 0x0b, + 0x57, 0x5c, 0x3e, 0x01, 0xb9, 0xbe, 0xfe, 0x1f, 0x40, 0x1e, 0x65, 0x01, 0xfb, 0xfe, 0x08, 0x50, + 0xfe, 0x8a, 0x50, 0xfe, 0x44, 0x51, 0xfe, 0xc6, 0x51, 0x69, 0xfe, 0x08, 0x90, 0xfe, 0x8a, 0x90, + 0x0c, 0x5f, 0x1f, 0x60, 0xfe, 0x0c, 0x90, 0xfe, 0x8e, 0x90, 0xfe, 0x40, 0x50, 0xfe, 0xc2, 0x50, + 0x0c, 0x45, 0x1f, 0x46, 0xfe, 0x4a, 0x10, 0x0b, 0x08, 0x4d, 0xfe, 0x2a, 0x12, 0xfe, 0x2c, 0x90, + 0xfe, 0xae, 0x90, 0x0c, 0x61, 0x1f, 0x62, 0x0b, 0x08, 0x5c, 0x48, 0x01, 0xb9, 0xfe, 0x1f, 0x80, + 0x1e, 0x65, 0xfe, 0x44, 0x90, 0xfe, 0xc6, 0x90, 0x0c, 0x63, 0x1f, 0x64, 0xfe, 0x08, 0x90, 0xfe, + 0x8a, 0x90, 0x0c, 0x5f, 0x1f, 0x60, 0xfe, 0x40, 0x90, 0xfe, 0xc2, 0x90, 0x0c, 0x45, 0x1f, 0x46, + 0x0c, 0x5a, 0x1f, 0x5b, 0x0b, 0x57, 0x20, 0x3e, 0x31, 0x0f, 0x77, 0x2a, 0xfe, 0x00, 0x09, 0xfe, + 0x9e, 0xf0, 0xfe, 0x14, 0x09, 0xfe, 0x01, 0x48, 0x17, 0x3a, 0x31, 0x82, 0xf1, 0xcd, 0xfe, 0x40, + 0x09, 0xce, 0xfe, 0x5e, 0x09, 0xcb, 0xfe, 0x40, 0x09, 0xcc, 0xfe, 0x5e, 0x09, 0xa4, 0xfe, 0x34, + 0x09, 0xfe, 0x06, 0xf0, 0xfe, 0x3a, 0x09, 0xa5, 0x9a, 0x04, 0x24, 0x01, 0x3c, 0xfe, 0xc1, 0x10, + 0x10, 0x20, 0xfe, 0xc1, 0x10, 0x86, 0x08, 0x05, 0xfe, 0x10, 0x12, 0x86, 0x08, 0x0a, 0x6c, 0x0b, + 0x08, 0x0a, 0xfe, 0x70, 0x12, 0xfe, 0x2e, 0x1c, 0x04, 0xfe, 0xec, 0x0a, 0x86, 0x08, 0x05, 0x6c, + 0x86, 0x08, 0x0a, 0xfe, 0x5a, 0x12, 0xfe, 0x2c, 0x1c, 0xfe, 0xaa, 0xf0, 0xfe, 0xe6, 0x09, 0xfe, + 0xac, 0xf0, 0xfe, 0x7e, 0x09, 0xfe, 0x92, 0x10, 0xbb, 0xf3, 0xfe, 0xad, 0xf0, 0xfe, 0x8a, 0x09, + 0x04, 0xfe, 0xec, 0x0a, 0xbc, 0xfe, 0xe7, 0x10, 0xfe, 0x2b, 0xf0, 0xb2, 0xfe, 0x6b, 0x18, 0x1c, + 0xfe, 0x00, 0xfe, 0xfe, 0x1c, 0x12, 0xc5, 0xfe, 0xd2, 0xf0, 0xb2, 0xfe, 0x76, 0x18, 0x1c, 0x19, + 0x17, 0xb2, 0x02, 0xde, 0x1c, 0x05, 0x17, 0xb2, 0xcd, 0x53, 0xce, 0x53, 0xcb, 0x53, 0xcc, 0x53, + 0xbb, 0xbc, 0xfe, 0xa9, 0x10, 0x80, 0x55, 0x2d, 0x1d, 0x78, 0x01, 0x3d, 0x14, 0xfe, 0x35, 0x00, + 0xfe, 0x01, 0xf0, 0x68, 0x14, 0x92, 0x04, 0x68, 0xfe, 0x74, 0x18, 0x1c, 0xfe, 0x00, 0xf8, 0x17, + 0x53, 0x75, 0x0e, 0x01, 0xfe, 0x0a, 0x0e, 0x47, 0x01, 0xb8, 0x1b, 0x2b, 0x83, 0x75, 0x19, 0x04, + 0x53, 0xfe, 0x98, 0x80, 0xfe, 0x19, 0xe4, 0x0a, 0x26, 0xfe, 0xce, 0x0a, 0x0b, 0x08, 0x4d, 0xfe, + 0x82, 0x12, 0x0b, 0x08, 0x20, 0xfe, 0x66, 0x13, 0x1b, 0x65, 0xbd, 0xfe, 0x03, 0xa1, 0xfe, 0x83, + 0x80, 0xfe, 0xc8, 0x44, 0xfe, 0x2e, 0x13, 0xfe, 0x04, 0x91, 0xfe, 0x86, 0x91, 0x72, 0x2b, 0xfe, + 0x40, 0x59, 0xfe, 0xc1, 0x59, 0x89, 0xea, 0x02, 0x61, 0x37, 0x62, 0x0c, 0x91, 0x1f, 0x92, 0xd3, + 0x61, 0xd4, 0x62, 0x01, 0xb9, 0xbe, 0x72, 0x2b, 0x1e, 0x65, 0xd5, 0x5a, 0xd6, 0x5b, 0x8c, 0x63, + 0x76, 0x64, 0xfe, 0x44, 0x55, 0xfe, 0xe5, 0x55, 0xfe, 0x04, 0xfa, 0x5a, 0xfe, 0x05, 0xfa, 0x5b, + 0x01, 0xfb, 0xfe, 0x36, 0x10, 0x22, 0x0c, 0x91, 0x0c, 0x92, 0x8c, 0x63, 0x76, 0x64, 0xee, 0x0b, + 0x08, 0x20, 0x17, 0xea, 0x8c, 0x45, 0x76, 0x46, 0x0b, 0x08, 0xfe, 0xf7, 0x00, 0x3e, 0x02, 0x5f, + 0x37, 0x60, 0xfe, 0x10, 0x58, 0xfe, 0x91, 0x58, 0xfe, 0x14, 0x59, 0xfe, 0x95, 0x59, 0x04, 0x53, + 0x0b, 0x08, 0x20, 0x17, 0xea, 0x0b, 0x08, 0xfe, 0xf7, 0x00, 0x3e, 0x70, 0xfe, 0x19, 0x81, 0x49, + 0xfe, 0x10, 0x90, 0xfe, 0x92, 0x90, 0xfe, 0xd7, 0x10, 0x35, 0x07, 0xaf, 0x17, 0xfe, 0x86, 0x09, + 0x11, 0xaf, 0xfe, 0x98, 0x80, 0xfe, 0x19, 0xe4, 0x0a, 0xfe, 0x14, 0x13, 0x02, 0x45, 0x37, 0x46, + 0x89, 0xfe, 0x86, 0x09, 0xfe, 0x0c, 0x58, 0xfe, 0x8d, 0x58, 0x04, 0x53, 0x22, 0x32, 0xfe, 0x19, + 0x80, 0xf2, 0x0b, 0x08, 0x0a, 0xfe, 0x1a, 0x12, 0xfe, 0x6c, 0x19, 0xfe, 0x19, 0x41, 0xfe, 0x6b, + 0x18, 0xc5, 0xfe, 0xd1, 0xf0, 0xeb, 0x1d, 0x77, 0x01, 0x3d, 0x14, 0xfe, 0x44, 0x00, 0xfe, 0x8e, + 0x10, 0xfe, 0x6c, 0x19, 0xd3, 0x45, 0xfe, 0xed, 0x19, 0xd4, 0x46, 0xfe, 0x0c, 0x51, 0xfe, 0x8e, + 0x51, 0xfe, 0x6b, 0x18, 0x1c, 0xfe, 0x00, 0xff, 0x2c, 0xfe, 0x74, 0x10, 0xc5, 0xfe, 0xd2, 0xf0, + 0xfe, 0x7a, 0x0b, 0xfe, 0x76, 0x18, 0x1c, 0x19, 0x54, 0x02, 0xde, 0x1c, 0x05, 0xfe, 0x08, 0x13, + 0x14, 0xfe, 0x16, 0x00, 0x04, 0x68, 0xfe, 0xd1, 0xf0, 0xfe, 0x8c, 0x0b, 0x1d, 0x77, 0x01, 0x3d, + 0x14, 0xfe, 0x17, 0x00, 0xfe, 0x42, 0x10, 0xfe, 0xce, 0xf0, 0xfe, 0x92, 0x0b, 0xfe, 0x3c, 0x10, + 0xfe, 0xcd, 0xf0, 0xfe, 0x9e, 0x0b, 0x14, 0xfe, 0x22, 0x00, 0x04, 0x68, 0xfe, 0xcb, 0xf0, 0xfe, + 0xaa, 0x0b, 0x14, 0xfe, 0x24, 0x00, 0x04, 0x68, 0xfe, 0xd0, 0xf0, 0xfe, 0xb4, 0x0b, 0x14, 0x8e, + 0xef, 0xfe, 0xcf, 0xf0, 0xfe, 0xbe, 0x0b, 0x14, 0x43, 0xfe, 0x10, 0x10, 0xfe, 0xcc, 0xf0, 0xeb, + 0xfe, 0x84, 0x80, 0xfe, 0x19, 0xe4, 0x20, 0x47, 0x14, 0xfe, 0x12, 0x00, 0x31, 0x0f, 0x77, 0x2a, + 0xfe, 0xd4, 0x0b, 0xfe, 0x9e, 0xf0, 0xfe, 0xe8, 0x0b, 0xfe, 0x01, 0x48, 0x17, 0x3a, 0x31, 0x82, + 0xf1, 0xcd, 0x24, 0xce, 0x24, 0xcb, 0x24, 0xcc, 0x24, 0x31, 0xfe, 0x9c, 0x32, 0x2a, 0xfe, 0xfc, + 0x0b, 0x25, 0x3a, 0xa4, 0xfe, 0x20, 0x0c, 0xa5, 0x9a, 0xcd, 0x99, 0xce, 0x99, 0xcb, 0x99, 0xcc, + 0x99, 0x04, 0x24, 0x01, 0x3c, 0xfe, 0xd3, 0x10, 0x11, 0xfe, 0xe8, 0x00, 0xbb, 0xbc, 0x80, 0xd1, + 0x93, 0xd2, 0x96, 0xfe, 0x89, 0xf0, 0x24, 0x23, 0x21, 0xb1, 0xd1, 0x93, 0xd2, 0x96, 0x2a, 0xfe, + 0x4a, 0x0c, 0x12, 0x24, 0x23, 0x21, 0xb0, 0xfe, 0x01, 0x48, 0x6c, 0x14, 0xfe, 0x42, 0x00, 0x04, + 0x68, 0x8b, 0x05, 0xfe, 0x81, 0x49, 0xfe, 0xa2, 0x12, 0x0b, 0x08, 0x0a, 0xfe, 0x44, 0x13, 0x14, + 0x00, 0x28, 0x0a, 0xfe, 0x54, 0x12, 0x28, 0xfe, 0x28, 0x00, 0x26, 0xfe, 0x7c, 0x0d, 0x09, 0x44, + 0x01, 0x16, 0x07, 0x00, 0x30, 0x40, 0xfe, 0x28, 0x00, 0xfe, 0xe2, 0x10, 0x01, 0xfe, 0xb6, 0x1a, + 0x01, 0xfe, 0xc2, 0x1a, 0x09, 0xae, 0x01, 0xfe, 0xb6, 0x0e, 0x67, 0x11, 0x4f, 0x01, 0x7e, 0x04, + 0x2e, 0x14, 0xfe, 0x44, 0x00, 0x28, 0x0a, 0xf5, 0x40, 0x0a, 0xfe, 0xb4, 0x10, 0x01, 0x9f, 0x40, + 0x0a, 0xfe, 0xaa, 0x10, 0x01, 0x9f, 0xfe, 0x19, 0x82, 0xfe, 0x34, 0x46, 0x9e, 0x40, 0x0a, 0x14, + 0xfe, 0x43, 0x00, 0xfe, 0x96, 0x10, 0x0b, 0x57, 0x0a, 0x3e, 0x01, 0xfe, 0xb6, 0x1a, 0x01, 0xfe, + 0xc2, 0x1a, 0x67, 0x11, 0x4f, 0x01, 0x7e, 0x75, 0x0a, 0x67, 0x56, 0xc8, 0x04, 0xfe, 0x2e, 0x03, + 0x0b, 0x08, 0x0a, 0x54, 0x40, 0x0a, 0x14, 0x00, 0x3c, 0x86, 0x08, 0x0e, 0xfe, 0x58, 0x12, 0x0b, + 0x08, 0x0e, 0xfe, 0x50, 0x13, 0xfe, 0x1c, 0x1c, 0xfe, 0x9d, 0xf0, 0xfe, 0x32, 0x0d, 0xfe, 0x1c, + 0x1c, 0xfe, 0x9d, 0xf0, 0xfe, 0x38, 0x0d, 0x0b, 0x57, 0x0e, 0x3e, 0xfe, 0xa9, 0x10, 0x14, 0xfe, + 0x15, 0x00, 0xfe, 0x04, 0xe6, 0x0a, 0x49, 0xfe, 0x2e, 0x10, 0x14, 0xfe, 0x13, 0x00, 0xfe, 0x10, + 0x10, 0x14, 0xfe, 0x47, 0x00, 0xb4, 0x14, 0xfe, 0x41, 0x00, 0x9c, 0x14, 0xfe, 0x24, 0x00, 0x7f, + 0xbb, 0xbc, 0x80, 0x02, 0x39, 0x1a, 0x26, 0xe4, 0x49, 0xfe, 0x04, 0xe6, 0x0e, 0xfe, 0x9d, 0x41, + 0xfe, 0x1c, 0x42, 0x67, 0x01, 0xec, 0x04, 0x2e, 0xfe, 0x12, 0x1c, 0x1d, 0x0a, 0x4c, 0xd8, 0xfe, + 0x20, 0x1c, 0x1d, 0xfe, 0x31, 0x00, 0x4c, 0xac, 0x01, 0xfe, 0xd6, 0x0f, 0x04, 0xe3, 0x56, 0xfe, + 0x06, 0xec, 0xdb, 0xfe, 0x0e, 0x47, 0x40, 0x38, 0xfe, 0xce, 0x45, 0x2c, 0x56, 0xfe, 0x06, 0xea, + 0xdb, 0xfe, 0x47, 0x4b, 0x3f, 0xfe, 0x75, 0x57, 0x02, 0x5e, 0xfe, 0x98, 0x56, 0xfe, 0x28, 0x12, + 0x09, 0x44, 0xfe, 0xd8, 0x14, 0x32, 0xfe, 0x41, 0x58, 0x09, 0xae, 0xfe, 0xce, 0x14, 0xfe, 0x49, + 0x54, 0xa6, 0xfe, 0xf0, 0x0d, 0x09, 0x52, 0xfe, 0xc2, 0x14, 0xfe, 0x44, 0x48, 0x04, 0xfe, 0x2e, + 0x03, 0x09, 0x5e, 0xfe, 0xac, 0x14, 0xfe, 0x0e, 0x47, 0x40, 0x38, 0xfe, 0xce, 0x45, 0x2c, 0x56, + 0xfe, 0xce, 0x47, 0xfe, 0xbd, 0x13, 0x04, 0x2e, 0x1b, 0x27, 0x07, 0x15, 0xfe, 0x64, 0x12, 0x22, + 0x1e, 0x90, 0xfe, 0x08, 0x1c, 0xfe, 0x7c, 0x19, 0xfe, 0xfd, 0x19, 0xfe, 0x0a, 0x1c, 0x02, 0xe0, + 0xfe, 0x48, 0x55, 0x9e, 0x37, 0xfe, 0x62, 0x01, 0xfe, 0xc9, 0x55, 0x2c, 0xfe, 0x44, 0x10, 0x01, + 0xfe, 0xd6, 0x18, 0x02, 0xfe, 0x38, 0x01, 0x37, 0xfe, 0x3a, 0x01, 0x89, 0xfe, 0x7c, 0x0e, 0x02, + 0xfe, 0x38, 0x01, 0x1c, 0xfe, 0xf0, 0xff, 0x0c, 0xe0, 0x02, 0xfe, 0x3a, 0x01, 0x0c, 0xfe, 0x62, + 0x01, 0xfe, 0x04, 0xec, 0x27, 0x6f, 0x34, 0x1e, 0x27, 0xfe, 0x05, 0xf6, 0xfe, 0x34, 0x01, 0x01, + 0xfe, 0x46, 0x19, 0x11, 0x4f, 0xc8, 0x0f, 0x05, 0x03, 0x22, 0x03, 0x1b, 0x90, 0xbd, 0x1e, 0x90, + 0x07, 0x77, 0xfe, 0xa9, 0x13, 0x1d, 0x19, 0x4c, 0xd8, 0xfe, 0x20, 0x1c, 0xfe, 0xe1, 0x10, 0xc6, + 0xfe, 0x03, 0xdc, 0xfe, 0x73, 0x57, 0xfe, 0x80, 0x5d, 0x03, 0xc6, 0xfe, 0x03, 0xdc, 0xfe, 0x5b, + 0x57, 0xfe, 0x80, 0x5d, 0x03, 0xfe, 0x03, 0x57, 0xc6, 0x22, 0xfe, 0x00, 0xcc, 0x03, 0xfe, 0x03, + 0x57, 0xc6, 0x84, 0x03, 0x0b, 0x08, 0x43, 0xfe, 0x22, 0x13, 0xfe, 0x1c, 0x80, 0x07, 0x05, 0xfe, + 0x1a, 0x13, 0xfe, 0x1e, 0x80, 0xf9, 0xfe, 0x1d, 0x80, 0xb6, 0xfe, 0x0c, 0x90, 0xf7, 0xfe, 0x0e, + 0x90, 0x9e, 0xfe, 0x3c, 0x90, 0xfe, 0x30, 0xf4, 0x0a, 0xfe, 0x3c, 0x50, 0x9c, 0x01, 0xfe, 0x76, + 0x19, 0x35, 0x07, 0x4f, 0x30, 0x01, 0xfe, 0xb0, 0x18, 0xfe, 0x08, 0x10, 0x01, 0xfe, 0xb6, 0x1a, + 0x01, 0xfe, 0xc2, 0x1a, 0x11, 0xfe, 0xe9, 0x00, 0x0b, 0x08, 0x43, 0xfe, 0x2c, 0x13, 0x01, 0xfe, + 0x08, 0x19, 0xfe, 0x1e, 0x1c, 0xfe, 0x14, 0x90, 0x0c, 0xfe, 0x64, 0x01, 0xfe, 0x16, 0x90, 0x0c, + 0xfe, 0x66, 0x01, 0x0b, 0x08, 0x5c, 0xfe, 0x12, 0x12, 0xfe, 0x03, 0x80, 0x83, 0xfe, 0x01, 0xec, + 0x27, 0xfe, 0x80, 0x40, 0x1e, 0x27, 0x72, 0x2b, 0x11, 0xda, 0x67, 0x1b, 0x27, 0xfe, 0x00, 0x40, + 0x88, 0x27, 0x03, 0xfe, 0x08, 0x1c, 0x02, 0xfe, 0xac, 0x00, 0xfe, 0x06, 0x58, 0x02, 0xfe, 0xae, + 0x00, 0xfe, 0x07, 0x58, 0x02, 0xfe, 0xb0, 0x00, 0xfe, 0x08, 0x58, 0x02, 0xfe, 0xb2, 0x00, 0xfe, + 0x09, 0x58, 0xfe, 0x0a, 0x1c, 0x29, 0x42, 0x1e, 0xdb, 0x22, 0x0c, 0x5d, 0x0c, 0x4e, 0x0c, 0x66, + 0x0f, 0x44, 0x4b, 0x49, 0x18, 0x38, 0xfe, 0x90, 0x4d, 0xfe, 0x91, 0x54, 0x26, 0xfe, 0x8a, 0x0f, + 0x40, 0x15, 0x0f, 0x52, 0x4b, 0x18, 0x43, 0xfe, 0x90, 0x4d, 0xfe, 0x91, 0x54, 0x26, 0xfe, 0xa0, + 0x0f, 0x29, 0x15, 0x1e, 0x27, 0x8b, 0x39, 0x6f, 0x1b, 0x27, 0xfe, 0x00, 0x40, 0x88, 0x27, 0x11, + 0xda, 0xfe, 0x14, 0x56, 0xfe, 0xd6, 0xf0, 0xfe, 0xb4, 0x0f, 0xfe, 0x12, 0x1c, 0x80, 0xfe, 0x14, + 0x1c, 0xfe, 0x10, 0x1c, 0xfe, 0x18, 0x1c, 0x03, 0x56, 0xfe, 0x0c, 0x14, 0xfe, 0x0e, 0x47, 0xfe, + 0x07, 0xe6, 0x38, 0xfe, 0xce, 0x47, 0xfe, 0xf5, 0x13, 0x03, 0x01, 0x9f, 0x8b, 0x39, 0x6f, 0xfe, + 0x06, 0x80, 0xfe, 0x48, 0x47, 0xfe, 0x42, 0x13, 0x35, 0x07, 0x4f, 0xfe, 0x34, 0x13, 0x09, 0x52, + 0x01, 0x16, 0xc0, 0xfe, 0x36, 0x12, 0xc1, 0xfe, 0x45, 0x48, 0x01, 0xfc, 0xfe, 0x00, 0xcc, 0xc0, + 0xfe, 0xf3, 0x13, 0x34, 0x84, 0x07, 0x15, 0x9e, 0x09, 0x97, 0x01, 0x16, 0xfe, 0x80, 0x5c, 0x01, + 0x7e, 0xb5, 0x07, 0x95, 0x6c, 0xfe, 0x14, 0x56, 0xfe, 0xd6, 0xf0, 0xfe, 0xee, 0x0f, 0x03, 0xfe, + 0x44, 0x58, 0x83, 0xfe, 0x01, 0xec, 0xac, 0xfe, 0x9e, 0x40, 0xfe, 0x9d, 0xe7, 0x00, 0xfe, 0x9c, + 0xe7, 0x0e, 0x88, 0x2b, 0x01, 0xec, 0xfe, 0xdd, 0x10, 0x31, 0xd1, 0x93, 0xd2, 0x96, 0x23, 0x21, + 0xe9, 0x07, 0x0e, 0xfe, 0x48, 0x12, 0x07, 0x0a, 0xfe, 0x56, 0x12, 0x07, 0x19, 0xfe, 0x30, 0x12, + 0x07, 0xd7, 0x17, 0xfe, 0xc0, 0x11, 0x07, 0xfe, 0x23, 0x00, 0x17, 0xfe, 0xcc, 0x11, 0x07, 0x05, + 0x17, 0xfe, 0x2a, 0x12, 0x07, 0x20, 0xfe, 0x12, 0x12, 0x07, 0x00, 0x17, 0x24, 0x1d, 0xd7, 0x01, + 0x3d, 0x9b, 0x2d, 0x01, 0x06, 0xa4, 0x3c, 0x03, 0x2d, 0xfe, 0x62, 0x08, 0x09, 0xdc, 0x01, 0xfe, + 0xb6, 0x0e, 0x11, 0x95, 0x04, 0x2e, 0x2d, 0x35, 0x07, 0xaf, 0xfe, 0xd9, 0x13, 0x8c, 0x45, 0x76, + 0x46, 0x89, 0xfe, 0x7e, 0x11, 0x0b, 0x08, 0x4d, 0xfe, 0x72, 0x12, 0xd5, 0x5a, 0xd6, 0x5b, 0xfe, + 0x44, 0x55, 0xfe, 0xe5, 0x55, 0xa6, 0xfe, 0x48, 0x11, 0x1b, 0x65, 0xfe, 0x26, 0x13, 0x02, 0x91, + 0x37, 0x92, 0x89, 0xfe, 0x58, 0x0d, 0x0c, 0x61, 0x1f, 0x62, 0x22, 0x0c, 0x91, 0x0c, 0x92, 0x01, + 0xb9, 0x29, 0x42, 0x82, 0x1e, 0x65, 0x01, 0xfb, 0xd5, 0x5a, 0xd6, 0x5b, 0xfe, 0x04, 0x55, 0xfe, + 0xa5, 0x55, 0xfe, 0x04, 0xfa, 0x5a, 0xfe, 0x05, 0xfa, 0x5b, 0xfe, 0x91, 0x10, 0x02, 0x63, 0x37, + 0x64, 0xfe, 0x40, 0x56, 0xfe, 0xe1, 0x56, 0x0c, 0x63, 0x1f, 0x64, 0x69, 0xd5, 0x5a, 0xd6, 0x5b, + 0xfe, 0x44, 0x55, 0xfe, 0xe5, 0x55, 0x02, 0x5f, 0x37, 0x60, 0xfe, 0x00, 0x56, 0xfe, 0xa1, 0x56, + 0x0c, 0x5f, 0x1f, 0x60, 0x0b, 0x08, 0x4d, 0xfe, 0x1e, 0x12, 0x1b, 0x65, 0xfe, 0x1f, 0x40, 0x02, + 0x61, 0x37, 0x62, 0xfe, 0x2c, 0x50, 0xfe, 0xae, 0x50, 0x02, 0x63, 0x37, 0x64, 0xfe, 0x44, 0x50, + 0xfe, 0xc6, 0x50, 0x02, 0x5f, 0x37, 0x60, 0xfe, 0x08, 0x50, 0xfe, 0x8a, 0x50, 0x02, 0x45, 0x37, + 0x46, 0xfe, 0x40, 0x50, 0xfe, 0xc2, 0x50, 0x04, 0x6b, 0x29, 0x05, 0x1e, 0x98, 0x04, 0x6a, 0x2d, + 0x01, 0x06, 0x12, 0x3b, 0x23, 0x21, 0xe9, 0x07, 0x05, 0x26, 0x3b, 0x35, 0x07, 0xaf, 0x26, 0x6a, + 0x01, 0x7c, 0x1c, 0x34, 0x17, 0x3b, 0x0b, 0x08, 0x0a, 0xfa, 0x8c, 0x45, 0x76, 0x46, 0xfe, 0x0a, + 0x55, 0x2c, 0xfe, 0x8b, 0x55, 0xd3, 0x45, 0xd4, 0x46, 0xfe, 0x0c, 0x51, 0xfe, 0x8e, 0x51, 0x04, + 0x6a, 0xfe, 0x19, 0x81, 0xfe, 0x0a, 0x45, 0xfe, 0x19, 0x41, 0x04, 0x6a, 0x2d, 0x01, 0x06, 0x25, + 0x3a, 0x12, 0xf0, 0x23, 0x21, 0xb1, 0x28, 0x19, 0xfe, 0xb2, 0x12, 0x28, 0x0a, 0x9d, 0x28, 0x78, + 0x17, 0xfe, 0x56, 0x13, 0x04, 0x3b, 0x01, 0x06, 0x25, 0x3a, 0x12, 0xf0, 0x23, 0x21, 0xb0, 0x07, + 0x19, 0x26, 0x3b, 0x01, 0x06, 0x12, 0xf0, 0x23, 0x21, 0xfe, 0xe8, 0x09, 0xfe, 0xc2, 0x49, 0x4a, + 0x02, 0xaa, 0x1a, 0x54, 0x36, 0x08, 0x20, 0x2c, 0x9b, 0xfe, 0xbb, 0x45, 0x28, 0x00, 0x6c, 0x40, + 0x05, 0x8b, 0x34, 0x01, 0xfe, 0xe6, 0x13, 0x01, 0x7c, 0x7f, 0xfe, 0x4b, 0x45, 0xfa, 0x35, 0x07, + 0x7a, 0xf9, 0x02, 0x94, 0x1a, 0x54, 0x02, 0x4e, 0x1a, 0x2c, 0x55, 0x04, 0x6a, 0xfe, 0xc0, 0x5d, + 0x01, 0x9f, 0xfe, 0x03, 0x17, 0x02, 0x5d, 0x85, 0x0c, 0x5d, 0x55, 0x2d, 0x01, 0x06, 0x13, 0x6b, + 0x01, 0xfe, 0x42, 0x17, 0x04, 0x6b, 0x01, 0x06, 0x25, 0x3a, 0x12, 0x3b, 0x23, 0x21, 0xb0, 0x07, + 0x05, 0x26, 0x3b, 0x01, 0xfe, 0xb0, 0x14, 0xfe, 0x42, 0x58, 0xfe, 0xe4, 0x14, 0x01, 0x7c, 0x7f, + 0xfe, 0x4a, 0xf4, 0x0a, 0x17, 0x3b, 0xfe, 0x4a, 0xf4, 0x05, 0x9d, 0x35, 0x07, 0x7a, 0x48, 0x04, + 0x6a, 0x02, 0x4e, 0x85, 0x0c, 0x4e, 0x55, 0x2d, 0x01, 0x06, 0x13, 0x6b, 0x01, 0xfe, 0x70, 0x17, + 0x04, 0x6b, 0x01, 0x06, 0x25, 0x3a, 0x12, 0x3b, 0x23, 0x21, 0xb0, 0x07, 0x0e, 0x26, 0x3b, 0x01, + 0xfe, 0xd8, 0x15, 0xc7, 0xfe, 0xa8, 0x14, 0xfe, 0xb4, 0x14, 0x7f, 0xfe, 0x00, 0x17, 0xcf, 0x0a, + 0x17, 0x3b, 0xcf, 0x05, 0x9d, 0x35, 0x07, 0x7a, 0x48, 0x04, 0x6a, 0x02, 0x66, 0x85, 0x0c, 0x66, + 0x55, 0x2d, 0x01, 0x06, 0x13, 0x6b, 0x01, 0xfe, 0xac, 0x17, 0x04, 0x6b, 0x0f, 0x05, 0x2a, 0xfe, + 0xba, 0x13, 0x13, 0xfe, 0xd0, 0x13, 0x6e, 0xc2, 0x01, 0x06, 0x22, 0x6e, 0x03, 0x8a, 0xfe, 0xcc, + 0x13, 0x25, 0xfe, 0xcc, 0x13, 0x12, 0xfe, 0xba, 0x13, 0x55, 0x2d, 0x01, 0x06, 0xfe, 0xd5, 0x10, + 0x0f, 0x50, 0xff, 0x02, 0x00, 0x57, 0x4b, 0xa3, 0x1c, 0xfe, 0xff, 0x7f, 0xfe, 0x30, 0x56, 0xfe, + 0x00, 0x5c, 0x03, 0x0f, 0x50, 0xff, 0x02, 0x00, 0x57, 0x4b, 0xa3, 0x1c, 0x34, 0xfe, 0x30, 0x56, + 0xfe, 0x00, 0x5c, 0x03, 0x0f, 0x50, 0xff, 0x02, 0x00, 0x57, 0x4b, 0xa3, 0x03, 0x0f, 0x50, 0xff, + 0x02, 0x00, 0x57, 0x4b, 0xfe, 0x00, 0x5e, 0x03, 0x0f, 0x50, 0xff, 0x02, 0x00, 0x57, 0x4b, 0xa3, + 0xfe, 0xc0, 0x5c, 0xfe, 0x41, 0x58, 0xfe, 0x19, 0xf4, 0xf4, 0xfe, 0x49, 0xf4, 0xf4, 0xf6, 0x32, + 0xc1, 0xfe, 0xe9, 0x54, 0x1c, 0xfe, 0x00, 0xff, 0xfe, 0xb0, 0x54, 0xfe, 0x01, 0x17, 0xfe, 0x0b, + 0x58, 0x03, 0x09, 0x5d, 0x01, 0x7b, 0x09, 0x4e, 0x01, 0x7b, 0x09, 0x66, 0x01, 0x7b, 0x03, 0xfe, + 0x03, 0xa1, 0x1c, 0x15, 0xff, 0x03, 0x00, 0x54, 0xfe, 0x00, 0xf4, 0x20, 0x4b, 0xfe, 0x00, 0x7d, + 0xfe, 0x01, 0x7d, 0xfe, 0x02, 0x7d, 0xfe, 0x03, 0x7c, 0x72, 0x2b, 0x0c, 0x5f, 0x1f, 0x60, 0xd3, + 0x63, 0xd4, 0x64, 0x03, 0xfe, 0x62, 0x08, 0xfe, 0x82, 0x4a, 0xfe, 0xe1, 0x1a, 0xfe, 0x83, 0x5a, + 0x83, 0x03, 0x01, 0xba, 0xfe, 0x42, 0x48, 0x49, 0x4a, 0x3f, 0x01, 0x06, 0x12, 0xfe, 0xd0, 0x15, + 0x23, 0x21, 0xb1, 0x01, 0x06, 0x12, 0xfe, 0xd0, 0x15, 0x23, 0x21, 0xfe, 0xe8, 0x0a, 0xfe, 0xc1, + 0x59, 0x02, 0x94, 0x1a, 0xfe, 0xd8, 0x12, 0x36, 0x08, 0x0e, 0xfe, 0xd0, 0x13, 0x22, 0x71, 0x0e, + 0x41, 0xfe, 0xf8, 0x14, 0xca, 0x0e, 0x71, 0x0e, 0xfa, 0x28, 0xa9, 0x73, 0xfe, 0x16, 0x15, 0x47, + 0x0f, 0x05, 0x18, 0xa9, 0x8b, 0x2f, 0xfe, 0x78, 0x10, 0xff, 0x02, 0x83, 0x55, 0xb4, 0xff, 0x02, + 0x83, 0x55, 0x71, 0x19, 0xb6, 0xd0, 0xfe, 0x30, 0x00, 0xa6, 0xfe, 0x70, 0x15, 0x18, 0x59, 0x0f, + 0x05, 0xfe, 0x56, 0x10, 0x71, 0x0a, 0xf9, 0xd0, 0xfe, 0x64, 0x00, 0xa6, 0xfe, 0x70, 0x15, 0x09, + 0xfe, 0x64, 0x00, 0x18, 0x8e, 0x0f, 0x05, 0xfe, 0x28, 0x10, 0x71, 0x05, 0xfe, 0x60, 0x13, 0xd0, + 0xfe, 0xc8, 0x00, 0xa6, 0xfe, 0x70, 0x15, 0x09, 0xfe, 0xc8, 0x00, 0x18, 0x8f, 0x0f, 0x05, 0x69, + 0xd0, 0xfe, 0x90, 0x01, 0x41, 0xfe, 0x7c, 0x15, 0x3f, 0xee, 0xfe, 0x43, 0xf4, 0x90, 0xfe, 0x56, + 0xf0, 0xfe, 0x8e, 0x15, 0xfe, 0x04, 0xf4, 0x50, 0xfe, 0x43, 0xf4, 0x8e, 0xf3, 0xc7, 0x01, 0xfe, + 0x12, 0x14, 0x1c, 0x34, 0xf8, 0xfe, 0x00, 0x17, 0x87, 0x42, 0x41, 0xfe, 0xca, 0x15, 0x58, 0x42, + 0xfe, 0x1c, 0x10, 0xfe, 0x00, 0x17, 0x87, 0x79, 0x41, 0xfe, 0xca, 0x15, 0x58, 0x79, 0x69, 0x4a, + 0x22, 0xfe, 0x4d, 0xf4, 0x00, 0xf5, 0x3f, 0x0f, 0x05, 0xfe, 0xb4, 0x56, 0xfe, 0xc3, 0x58, 0x03, + 0x4a, 0x0f, 0x0a, 0x03, 0x4a, 0x32, 0x70, 0x49, 0x3f, 0x01, 0x06, 0x12, 0xa0, 0x23, 0x21, 0xb1, + 0xfe, 0x03, 0xea, 0xfe, 0x7e, 0x01, 0x01, 0x06, 0x12, 0xa0, 0x23, 0x21, 0xfe, 0xe9, 0x0a, 0x01, + 0x06, 0x12, 0xa0, 0x23, 0x21, 0xfe, 0xe9, 0x0a, 0xfe, 0x05, 0xea, 0xfe, 0x7f, 0x01, 0x01, 0x06, + 0x12, 0xa0, 0x23, 0x21, 0xfe, 0x69, 0x09, 0xfe, 0x02, 0xea, 0xfe, 0x80, 0x01, 0x01, 0x06, 0x12, + 0xa0, 0x23, 0x21, 0xfe, 0xe8, 0x08, 0x4c, 0xfe, 0x81, 0x01, 0x02, 0xaa, 0x1a, 0x54, 0x36, 0x08, + 0x20, 0x2c, 0x9c, 0x70, 0xb5, 0x71, 0x05, 0x30, 0xfe, 0x34, 0xf4, 0x34, 0x9b, 0x70, 0x02, 0x94, + 0x1a, 0x54, 0x36, 0x08, 0x0e, 0x2c, 0xed, 0x49, 0x3f, 0xfe, 0x90, 0x10, 0xfe, 0x40, 0x5a, 0x1c, + 0x34, 0xf7, 0x87, 0x42, 0x41, 0xfe, 0x96, 0x16, 0x58, 0x42, 0x69, 0x87, 0x79, 0x41, 0xfe, 0x96, + 0x16, 0x58, 0x79, 0xfe, 0xb4, 0x56, 0xfe, 0x40, 0x5d, 0x01, 0xba, 0x01, 0xfe, 0x6e, 0x1b, 0xfe, + 0x02, 0x17, 0xfe, 0xc8, 0x45, 0xfe, 0x5a, 0xf0, 0xfe, 0xac, 0x16, 0xfe, 0x43, 0x48, 0x28, 0x8d, + 0x30, 0xfe, 0x34, 0xf4, 0xf4, 0xfe, 0x40, 0x10, 0x28, 0xa9, 0x30, 0xfe, 0x34, 0xf4, 0x2f, 0xfe, + 0x34, 0x10, 0x28, 0xfe, 0x0b, 0x00, 0x30, 0x40, 0x59, 0xfe, 0x28, 0x10, 0xfe, 0xc0, 0x49, 0xff, + 0x02, 0x00, 0x54, 0xcf, 0xfe, 0x90, 0x01, 0x41, 0xfe, 0xe6, 0x16, 0x3f, 0xfe, 0x1c, 0xf4, 0x34, + 0xee, 0xfe, 0x40, 0xf4, 0x90, 0xfe, 0x56, 0xf0, 0xfe, 0xf8, 0x16, 0xfe, 0x04, 0xf4, 0x50, 0xfe, + 0x40, 0xf4, 0x8e, 0xf3, 0x32, 0x28, 0x8d, 0x48, 0xc9, 0x0a, 0x1b, 0xfe, 0x7f, 0x01, 0xfe, 0xc8, + 0x46, 0xfe, 0x24, 0x13, 0x87, 0x00, 0x54, 0x22, 0x1b, 0xfe, 0x7e, 0x01, 0xfe, 0xc8, 0x45, 0xfe, + 0x14, 0x13, 0x1b, 0xfe, 0x80, 0x01, 0xfe, 0x48, 0x45, 0xf6, 0x1b, 0xfe, 0x81, 0x01, 0xfe, 0xc8, + 0x44, 0x48, 0x22, 0x03, 0x0f, 0x05, 0x03, 0x70, 0x3f, 0x4a, 0x0f, 0x0a, 0x03, 0x10, 0x05, 0x01, + 0x06, 0x13, 0xfe, 0x6e, 0x17, 0x10, 0x0a, 0x01, 0x06, 0x13, 0xfe, 0x6e, 0x17, 0x10, 0x19, 0x01, + 0x06, 0x13, 0xfe, 0x6e, 0x17, 0x6e, 0xfe, 0x89, 0x49, 0x01, 0x06, 0x03, 0x10, 0x05, 0x01, 0x06, + 0x13, 0xb7, 0x10, 0x19, 0x01, 0x06, 0x13, 0xb7, 0x10, 0x05, 0x01, 0x06, 0x13, 0xb7, 0xfe, 0x89, + 0x49, 0x01, 0x06, 0x13, 0xb7, 0x6e, 0xfe, 0x89, 0x4a, 0x01, 0x06, 0x03, 0x4a, 0x03, 0x10, 0x05, + 0x01, 0x06, 0x13, 0x6d, 0x10, 0x78, 0x01, 0x06, 0x13, 0x6d, 0x10, 0x0e, 0x01, 0x06, 0x13, 0x6d, + 0xfe, 0x89, 0x49, 0x01, 0x06, 0x13, 0x6d, 0x10, 0x00, 0x01, 0x06, 0x13, 0x6d, 0xfe, 0x89, 0x4a, + 0x01, 0x06, 0x13, 0x6d, 0xfe, 0x09, 0x49, 0x01, 0x06, 0x13, 0x6d, 0x6e, 0xc2, 0x01, 0x06, 0x03, + 0x1b, 0xdf, 0x07, 0x05, 0xfe, 0x48, 0x13, 0xbe, 0x1e, 0xdf, 0xfe, 0x49, 0xf4, 0x00, 0x47, 0x6e, + 0x9b, 0x55, 0xfe, 0x01, 0xec, 0xfe, 0x27, 0x01, 0xc2, 0xff, 0x02, 0x00, 0x10, 0x2a, 0xfe, 0x2a, + 0x18, 0x35, 0x07, 0xfe, 0xe3, 0x00, 0xfe, 0x20, 0x13, 0x12, 0xfe, 0x4e, 0x18, 0x22, 0x1e, 0x98, + 0x01, 0x3c, 0x1b, 0x98, 0x07, 0x05, 0x6c, 0x0b, 0x57, 0x05, 0x3e, 0x03, 0x09, 0x52, 0x01, 0x16, + 0xfe, 0x00, 0x40, 0xa1, 0x07, 0x15, 0xb6, 0x09, 0x97, 0x01, 0x16, 0xa1, 0x09, 0x5e, 0x01, 0xb3, + 0x03, 0x09, 0x97, 0x01, 0x16, 0xa1, 0xfe, 0x80, 0xe7, 0x15, 0x07, 0x15, 0x54, 0xfe, 0x45, 0x58, + 0x01, 0xfc, 0xa1, 0x03, 0x09, 0x52, 0x01, 0x16, 0xa1, 0x09, 0x5e, 0x01, 0xb3, 0x03, 0x09, 0x52, + 0x01, 0x16, 0xfe, 0x80, 0x80, 0xfe, 0x80, 0x4c, 0xfe, 0x49, 0xe4, 0x15, 0xb6, 0x09, 0x97, 0x01, + 0x16, 0xfe, 0x80, 0x4c, 0x09, 0x5e, 0x01, 0x7b, 0x03, 0x18, 0x15, 0x81, 0x74, 0xe0, 0xfe, 0x18, + 0xdf, 0xfe, 0x19, 0xde, 0xfe, 0x24, 0x1c, 0xfe, 0x1d, 0xf7, 0x38, 0xa7, 0xfe, 0xea, 0x18, 0x01, + 0xfe, 0xf0, 0x19, 0xf6, 0xa8, 0x38, 0x74, 0xfe, 0x2c, 0x01, 0xfe, 0x2f, 0x19, 0x03, 0xbf, 0x26, + 0xfe, 0xda, 0x18, 0xfe, 0xda, 0x10, 0x18, 0x15, 0x81, 0x02, 0xfe, 0x64, 0x01, 0xfe, 0x00, 0xf4, + 0x20, 0xfe, 0x18, 0x58, 0x02, 0xfe, 0x66, 0x01, 0xfe, 0x19, 0x58, 0xa8, 0x20, 0xfe, 0x3c, 0x90, + 0xfe, 0x30, 0xf4, 0x05, 0xfe, 0x3c, 0x50, 0x74, 0xfe, 0x38, 0x00, 0xfe, 0x0f, 0x79, 0xfe, 0x1c, + 0xf7, 0x20, 0xa7, 0xfe, 0x34, 0x19, 0xfe, 0xb6, 0x14, 0x2c, 0x03, 0xbf, 0x26, 0xfe, 0x0c, 0x19, + 0xfe, 0x9c, 0x10, 0x18, 0x15, 0x81, 0xfe, 0x83, 0x5a, 0xfe, 0x18, 0xdf, 0xfe, 0x19, 0xde, 0xfe, + 0x1d, 0xf7, 0x4d, 0xa7, 0xfe, 0x56, 0x19, 0xfe, 0x94, 0x14, 0xf8, 0xa8, 0x4d, 0x74, 0x0e, 0xfe, + 0xaf, 0x19, 0xfe, 0x98, 0xe7, 0x00, 0x03, 0xbf, 0x26, 0xfe, 0x4a, 0x19, 0xfe, 0x6c, 0x10, 0x18, + 0x15, 0x81, 0xfe, 0x30, 0xbc, 0xfe, 0xb2, 0xbc, 0xa8, 0x43, 0x74, 0x0e, 0xfe, 0x0f, 0x79, 0xfe, + 0x1c, 0xf7, 0x43, 0xa7, 0xfe, 0x8e, 0x19, 0xfe, 0x5c, 0x14, 0x2c, 0x03, 0xbf, 0x26, 0xfe, 0x7a, + 0x19, 0xfe, 0x42, 0x10, 0xfe, 0x02, 0xf6, 0x15, 0x81, 0xfe, 0x18, 0xfe, 0x61, 0xfe, 0x19, 0xfe, + 0x62, 0xfe, 0x03, 0xa1, 0xfe, 0x1d, 0xf7, 0x5c, 0xa7, 0xfe, 0xb4, 0x19, 0xfe, 0x36, 0x14, 0xfe, + 0x1c, 0x13, 0xa8, 0x5c, 0x32, 0xfe, 0x83, 0x58, 0xfe, 0xaf, 0x19, 0xfe, 0x80, 0xe7, 0x15, 0xfe, + 0x81, 0xe7, 0x15, 0x11, 0xfe, 0xdd, 0x00, 0x72, 0x2b, 0x03, 0x72, 0x2b, 0xfe, 0x12, 0x45, 0x26, + 0xfe, 0xa4, 0x19, 0x1d, 0x05, 0x4c, 0xd8, 0xfe, 0x20, 0x1c, 0x04, 0x2e, 0xfe, 0x39, 0xf0, 0xfe, + 0xf8, 0x19, 0x22, 0x03, 0xb8, 0x1c, 0x19, 0x30, 0x0f, 0x0d, 0x03, 0x81, 0x02, 0xde, 0x1c, 0x05, + 0xfe, 0xef, 0x12, 0xfe, 0xe1, 0x10, 0x8b, 0x39, 0x6f, 0x35, 0x07, 0x4f, 0xfe, 0x3c, 0x13, 0xfe, + 0x7e, 0x14, 0xfe, 0x42, 0x13, 0x56, 0xc8, 0x09, 0x52, 0x01, 0x16, 0xc0, 0xfe, 0x3e, 0x12, 0xc1, + 0xfe, 0x45, 0x48, 0x01, 0xfc, 0xfe, 0x00, 0xcc, 0xc0, 0xfe, 0xf3, 0x13, 0x34, 0x84, 0x07, 0x15, + 0x9e, 0x09, 0x97, 0x01, 0x16, 0xfe, 0x80, 0x4c, 0x01, 0x7e, 0xfe, 0x16, 0x10, 0x07, 0x95, 0x48, + 0xfe, 0x3c, 0x14, 0xfe, 0x24, 0x12, 0xfe, 0x14, 0x56, 0xfe, 0xd6, 0xf0, 0xfe, 0x18, 0x1a, 0x18, + 0x0a, 0x03, 0xfe, 0x9c, 0xe7, 0x0a, 0x14, 0xfe, 0x15, 0x00, 0x67, 0x88, 0x2b, 0x01, 0xec, 0x18, + 0x05, 0x03, 0x0b, 0x57, 0x38, 0x3e, 0x11, 0x4f, 0x01, 0x7e, 0x18, 0x05, 0x03, 0xfe, 0x38, 0x90, + 0xfe, 0xba, 0x90, 0x8c, 0xd9, 0x76, 0xda, 0xfe, 0x48, 0x55, 0x2c, 0xfe, 0xc9, 0x55, 0x03, 0x1b, + 0xad, 0x82, 0x1e, 0xad, 0x03, 0x09, 0xae, 0x01, 0x16, 0xc1, 0x09, 0x44, 0x01, 0x16, 0xfe, 0x49, + 0x44, 0x17, 0xfe, 0xe0, 0x1a, 0x82, 0x84, 0x03, 0x09, 0x52, 0x01, 0x16, 0x07, 0x15, 0x6c, 0x09, + 0x5e, 0x01, 0xb3, 0x09, 0x44, 0x01, 0x16, 0x82, 0x84, 0x03, 0xfe, 0x4e, 0xe4, 0x19, 0x73, 0xfe, + 0x14, 0x1b, 0x02, 0xfe, 0x90, 0x00, 0xfe, 0x3a, 0x45, 0xfe, 0x2c, 0x10, 0xfe, 0x4e, 0xe4, 0xd7, + 0x73, 0xfe, 0x26, 0x1b, 0x02, 0xfe, 0x92, 0x00, 0xca, 0x0e, 0xef, 0xfe, 0x4e, 0xe4, 0xfe, 0x0b, + 0x00, 0x73, 0xfe, 0x38, 0x1b, 0x02, 0xfe, 0x94, 0x00, 0xca, 0x20, 0xfe, 0x08, 0x10, 0x02, 0xfe, + 0x96, 0x00, 0xca, 0x59, 0xfe, 0x4e, 0x45, 0x9d, 0xfe, 0x0a, 0x45, 0xff, 0x04, 0x68, 0x54, 0xf2, + 0x1c, 0x42, 0xfe, 0x08, 0x1c, 0xfe, 0x67, 0x19, 0xfe, 0x0a, 0x1c, 0xfe, 0x1a, 0xf4, 0xfe, 0x00, + 0x04, 0x9d, 0xcf, 0x19, 0x41, 0xfe, 0x6c, 0x1b, 0x0f, 0x19, 0x03, 0x07, 0x77, 0xfe, 0x5a, 0xf0, + 0xfe, 0x7c, 0x1b, 0x29, 0x8d, 0xfe, 0x34, 0x10, 0x07, 0x0e, 0xfe, 0x5a, 0xf0, 0xfe, 0x8a, 0x1b, + 0x29, 0xa9, 0xfe, 0x26, 0x10, 0x07, 0x19, 0x30, 0x29, 0x59, 0xef, 0x07, 0x0a, 0x30, 0x29, 0x8e, + 0xb5, 0x07, 0x05, 0x30, 0x29, 0x8f, 0x9b, 0xbe, 0x03, 0x1d, 0x8d, 0x01, 0x3d, 0xfe, 0x04, 0xfe, + 0x93, 0x02, 0x96, 0xc7, 0x03, 0x25, 0xfe, 0xde, 0x1b, 0xfe, 0x14, 0xf0, 0x06, 0x2a, 0xfe, 0xce, + 0x1b, 0x25, 0xfe, 0xde, 0x1b, 0x8a, 0xfe, 0xde, 0x1b, 0xfe, 0x82, 0xf0, 0xfe, 0xd2, 0x1b, 0x03, + 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0x12, 0x00, 0x00, }; -u_int16_t adv_asc38C0800_mcode_size = sizeof(adv_asc38C0800_mcode); /* 0x14F1 */ +u_int16_t adv_asc38C1600_mcode_size = sizeof(adv_asc38C1600_mcode); /* 0x164C */ /* * This checksum is used to compare with that one that will be calculated * at run time. * This is performed to ensure the uCode is correctly loaded into the Lram. */ -u_int32_t adv_asc38C0800_mcode_chksum = 0x053503A5; +u_int32_t adv_asc38C1600_mcode_chksum = 0x0572AE4FUL; /* Expanded checksum. */ diff --git a/sys/dev/ic/adwmcode.h b/sys/dev/ic/adwmcode.h index 61f1d7c1bd0..4aca58a3f6e 100644 --- a/sys/dev/ic/adwmcode.h +++ b/sys/dev/ic/adwmcode.h @@ -1,4 +1,4 @@ -/* $NetBSD: adwmcode.h,v 1.2 2000/02/03 20:29:17 dante Exp $ */ +/* $NetBSD: adwmcode.h,v 1.3 2000/04/30 18:52:15 dante Exp $ */ /* * Generic driver definitions and exported functions for the Advanced @@ -49,4 +49,8 @@ extern u_int8_t adv_asc38C0800_mcode[]; extern u_int16_t adv_asc38C0800_mcode_size; extern u_int32_t adv_asc38C0800_mcode_chksum; +extern u_int8_t adv_asc38C1600_mcode[]; +extern u_int16_t adv_asc38C1600_mcode_size; +extern u_int32_t adv_asc38C1600_mcode_chksum; + #endif /* ADV_MCODE_H */ diff --git a/sys/dev/pci/adw_pci.c b/sys/dev/pci/adw_pci.c index cadc7384f2f..4e7926605c4 100644 --- a/sys/dev/pci/adw_pci.c +++ b/sys/dev/pci/adw_pci.c @@ -1,4 +1,4 @@ -/* $NetBSD: adw_pci.c,v 1.4 2000/02/04 13:16:22 dante Exp $ */ +/* $NetBSD: adw_pci.c,v 1.5 2000/04/30 18:52:14 dante Exp $ */ /* * Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc. @@ -38,12 +38,13 @@ * Device probe and attach routines for the following * Advanced Systems Inc. SCSI controllers: * - * ABP-940UW - Bus-Master PCI Ultra-Wide (240 CDB) - * ABP-940UW (68) - Bus-Master PCI Ultra-Wide (240 CDB) - * ABP-940UWD - Bus-Master PCI Ultra-Wide (240 CDB) - * ABP-970UW - Bus-Master PCI Ultra-Wide (240 CDB) - * ASB-3940UW - Bus-Master PCI Ultra-Wide (240 CDB) - * ASB-3940U2W-00 - Bus-Master PCI Ultra2-Wide (240 CDB) + * ABP-940UW - Bus-Master PCI Ultra-Wide (253 CDB) + * ABP-940UW (68) - Bus-Master PCI Ultra-Wide (253 CDB) + * ABP-940UWD - Bus-Master PCI Ultra-Wide (253 CDB) + * ABP-970UW - Bus-Master PCI Ultra-Wide (253 CDB) + * ASB-3940UW - Bus-Master PCI Ultra-Wide (253 CDB) + * ASB-3940U2W-00 - Bus-Master PCI Ultra2-Wide (253 CDB) + * ASB-3940U3W-00 - Bus-Master PCI Ultra3-Wide (253 CDB) */ #include <sys/types.h> @@ -102,6 +103,8 @@ adw_pci_match(parent, match, aux) return (1); case PCI_PRODUCT_ADVSYS_U2W: return (1); + case PCI_PRODUCT_ADVSYS_U3W: + return (1); } return 0; @@ -135,6 +138,11 @@ adw_pci_attach(parent, self, aux) printf(": AdvanSys ASB-3940U2W SCSI adapter\n"); break; + case PCI_PRODUCT_ADVSYS_U3W: + sc->chip_type = ADV_CHIP_ASC38C1600; + printf(": AdvanSys ASB-3940U3W SCSI adapter\n"); + break; + default: printf(": unknown model!\n"); return; @@ -162,7 +170,8 @@ adw_pci_attach(parent, self, aux) bhlcr = pci_conf_read(pa->pa_pc, pa->pa_tag, PCI_BHLC_REG); if( ((PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_ADVSYS_WIDE) || - (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_ADVSYS_U2W)) && + (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_ADVSYS_U2W) || + (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_ADVSYS_U3W)) && (PCI_LATTIMER(bhlcr) < 0x20)) { bhlcr &= 0xFFFF00FFUL; bhlcr |= 0x00002000UL; @@ -173,7 +182,8 @@ adw_pci_attach(parent, self, aux) if (((PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_ADVSYS_WIDE) || - (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_ADVSYS_U2W)) && + (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_ADVSYS_U2W) || + (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_ADVSYS_U3W)) && (command & PCI_COMMAND_PARITY_ENABLE) == 0) { sc->cfg.control_flag |= CONTROL_FLAG_IGNORE_PERR; } |
